package auth import ( "context" "shared-album/internal/models" ) // Repository is the persistence contract for the auth domain. type Repository interface { CreateUser(ctx context.Context, u *models.User) error GetUserByEmail(ctx context.Context, email string) (*models.User, error) GetUserByID(ctx context.Context, id string) (*models.User, error) UpdatePreferences(ctx context.Context, userID string, raw []byte) error CreateRefreshToken(ctx context.Context, t *models.RefreshToken) error GetRefreshToken(ctx context.Context, hash string) (*models.RefreshToken, error) RevokeRefreshToken(ctx context.Context, id string) error RevokeAllUserTokens(ctx context.Context, userID string) error }