package tester

import (
	testerv1 "git.sch9.ru/new_gate/ms-tester/proto/tester/v1"
	"github.com/gofiber/fiber/v2"
)

type Handlers interface {
	ListContests(c *fiber.Ctx, params testerv1.ListContestsParams) error
	CreateContest(c *fiber.Ctx) error
	DeleteContest(c *fiber.Ctx, id int32) error
	GetContest(c *fiber.Ctx, id int32) error
	UpdateContest(c *fiber.Ctx, id int32) error
	DeleteParticipant(c *fiber.Ctx, params testerv1.DeleteParticipantParams) error
	ListParticipants(c *fiber.Ctx, params testerv1.ListParticipantsParams) error
	UpdateParticipant(c *fiber.Ctx, params testerv1.UpdateParticipantParams) error
	AddParticipant(c *fiber.Ctx, params testerv1.AddParticipantParams) error
	ListProblems(c *fiber.Ctx, params testerv1.ListProblemsParams) error
	CreateProblem(c *fiber.Ctx) error
	DeleteProblem(c *fiber.Ctx, id int32) error
	GetProblem(c *fiber.Ctx, id int32) error
	UpdateProblem(c *fiber.Ctx, id int32) error
	ListSolutions(c *fiber.Ctx, params testerv1.ListSolutionsParams) error
	CreateSolution(c *fiber.Ctx, params testerv1.CreateSolutionParams) error
	GetSolution(c *fiber.Ctx, id int32) error
	DeleteTask(c *fiber.Ctx, id int32) error
	AddTask(c *fiber.Ctx, params testerv1.AddTaskParams) error
	GetMonitor(c *fiber.Ctx, params testerv1.GetMonitorParams) error
	GetTask(c *fiber.Ctx, id int32) error
}