package services import ( "learnsteam/cslms-api/internal/models" "learnsteam/cslms-api/internal/repositories" "github.com/google/uuid" ) type userQuizPaperService struct { repository repositories.UserQuizPaperRepository } type UserQuizPaperService interface { List(string, int, int) (*[]models.UserQuizPaper, error) Total(string) (int64, error) Find(int64) (*models.UserQuizPaper, error) Create(*models.UserQuizPaper) (*models.UserQuizPaper, error) Insert([]models.UserQuizPaper) ([]models.UserQuizPaper, error) Update(*models.UserQuizPaper) (*models.UserQuizPaper, error) Delete(string) error Generate([]int64, *models.QuizPaper) []models.UserQuizPaper } func NewUserQuizPaperService(repository repositories.UserQuizPaperRepository) UserQuizPaperService { return &userQuizPaperService{ repository: repository, } } func (s *userQuizPaperService) List(q string, page int, limit int) (*[]models.UserQuizPaper, error) { return s.repository.List(q, page, limit) } func (s *userQuizPaperService) Total(q string) (int64, error) { return s.repository.Total(q) } func (s *userQuizPaperService) Find(id int64) (*models.UserQuizPaper, error) { return s.repository.Find(id) } func (s *userQuizPaperService) Create(userQuizPaper *models.UserQuizPaper) (*models.UserQuizPaper, error) { result, err := s.repository.Create(userQuizPaper) return result, err } func (s *userQuizPaperService) Insert(items []models.UserQuizPaper) ([]models.UserQuizPaper, error) { result, err := s.repository.Insert(items) return result, err } func (s *userQuizPaperService) Update(userQuizPaper *models.UserQuizPaper) (*models.UserQuizPaper, error) { result, err := s.repository.Update(userQuizPaper) return result, err } func (s *userQuizPaperService) Delete(id string) error { err := s.repository.Delete(id) return err } func (s *userQuizPaperService) Generate(users []int64, quizPaper *models.QuizPaper) []models.UserQuizPaper { var userQuizPapers []models.UserQuizPaper for _, user_id := range users { userQuizPaper := models.UserQuizPaper{ GUID: uuid.NewString(), CenterID: quizPaper.CenterID, UserID: user_id, QuizPaperID: quizPaper.ID, } userQuizPapers = append(userQuizPapers, userQuizPaper) } return userQuizPapers }