package repository import ( "context" "git.kirlllll.ru/volontery/backend/internal/database" ) // UserRepository предоставляет методы для работы с пользователями type UserRepository struct { queries *database.Queries } // NewUserRepository создает новый UserRepository func NewUserRepository(queries *database.Queries) *UserRepository { return &UserRepository{queries: queries} } // GetByID получает пользователя по ID func (r *UserRepository) GetByID(ctx context.Context, id int64) (*database.GetUserByIDRow, error) { result, err := r.queries.GetUserByID(ctx, id) if err != nil { return nil, err } return &result, nil } // GetByEmail получает пользователя по email func (r *UserRepository) GetByEmail(ctx context.Context, email string) (*database.GetUserByEmailRow, error) { result, err := r.queries.GetUserByEmail(ctx, email) if err != nil { return nil, err } return &result, nil } // Create создает нового пользователя func (r *UserRepository) Create(ctx context.Context, params database.CreateUserParams) (*database.CreateUserRow, error) { result, err := r.queries.CreateUser(ctx, params) if err != nil { return nil, err } return &result, nil } // EmailExists проверяет существование email func (r *UserRepository) EmailExists(ctx context.Context, email string) (bool, error) { return r.queries.EmailExists(ctx, email) } // UpdateLastLogin обновляет время последнего входа func (r *UserRepository) UpdateLastLogin(ctx context.Context, id int64) error { return r.queries.UpdateLastLogin(ctx, id) } // GetProfile получает профиль пользователя func (r *UserRepository) GetProfile(ctx context.Context, id int64) (*database.GetUserProfileRow, error) { result, err := r.queries.GetUserProfile(ctx, id) if err != nil { return nil, err } return &result, nil } // UpdateProfile обновляет профиль пользователя func (r *UserRepository) UpdateProfile(ctx context.Context, params database.UpdateUserProfileParams) error { return r.queries.UpdateUserProfile(ctx, params) } // UpdateLocation обновляет геолокацию пользователя func (r *UserRepository) UpdateLocation(ctx context.Context, params database.UpdateUserLocationParams) error { return r.queries.UpdateUserLocation(ctx, params) } // VerifyEmail подтверждает email пользователя func (r *UserRepository) VerifyEmail(ctx context.Context, id int64) error { return r.queries.VerifyUserEmail(ctx, id) }