package user import ( "resume-platform/internal/model" "resume-platform/internal/repository" "github.com/google/uuid" ) type UserService interface { CreateUser(user *model.User) error GetUserByUsername(username string) (*model.User, error) GetUserByID(id string) (*model.User, error) GetAllUsers() ([]*model.User, error) GetUsersWithPagination(page, pageSize int) ([]*model.User, int, error) UpdateUser(id string, user *model.User) error DeleteUser(id string) error } type userService struct { repo repository.ResumeRepository } func NewUserService(repo repository.ResumeRepository) UserService { return &userService{repo: repo} } func (s *userService) CreateUser(user *model.User) error { if user.ID == "" { user.ID = uuid.New().String() } return s.repo.CreateUser(user) } func (s *userService) GetUserByUsername(username string) (*model.User, error) { return s.repo.GetUserByUsername(username) } func (s *userService) GetUserByID(id string) (*model.User, error) { return s.repo.GetUserByID(id) } func (s *userService) GetAllUsers() ([]*model.User, error) { return s.repo.GetAllUsers() } func (s *userService) GetUsersWithPagination(page, pageSize int) ([]*model.User, int, error) { return s.repo.GetUsersWithPagination(page, pageSize) } func (s *userService) UpdateUser(id string, user *model.User) error { return s.repo.UpdateUser(id, user) } func (s *userService) DeleteUser(id string) error { return s.repo.DeleteUser(id) }