package tester import ( "context" "git.sch9.ru/new_gate/ms-tester/internal/models" ) type ProblemUseCase interface { CreateProblem(ctx context.Context, title string) (int32, error) ReadProblemById(ctx context.Context, id int32) (*models.Problem, error) DeleteProblem(ctx context.Context, id int32) error ListProblems(ctx context.Context, page int32, pageSize int32) ([]*models.ProblemListItem, int32, error) UpdateProblem(ctx context.Context, id int32, problem models.ProblemUpdate) error } type ContestUseCase interface { CreateContest(ctx context.Context, title string) (int32, error) ReadContestById(ctx context.Context, id int32) (*models.Contest, error) DeleteContest(ctx context.Context, id int32) error AddTask(ctx context.Context, contestId int32, taskId int32) (int32, error) DeleteTask(ctx context.Context, taskId int32) error AddParticipant(ctx context.Context, contestId int32, userId int32) (int32, error) DeleteParticipant(ctx context.Context, participantId int32) error ReadRichTasks(ctx context.Context, contestId int32) ([]*models.TasksListItem, error) ListContests(ctx context.Context, page int32, pageSize int32) ([]*models.ContestsListItem, int32, error) ListParticipants(ctx context.Context, contestId int32, page int32, pageSize int32) ([]*models.ParticipantsListItem, int32, error) UpdateContest(ctx context.Context, id int32, contestUpdate models.ContestUpdate) error UpdateParticipant(ctx context.Context, id int32, participantUpdate models.ParticipantUpdate) error ReadSolution(ctx context.Context, id int32) (*models.Solution, error) CreateSolution(ctx context.Context, creation *models.SolutionCreation) (int32, error) ListSolutions(ctx context.Context, filters models.SolutionsFilter) ([]*models.SolutionsListItem, int32, error) ReadTask(ctx context.Context, id int32) (*models.Task, error) ReadMonitor(ctx context.Context, id int32) (*models.Monitor, error) }