add competition service (it`s broken, I will fix it later)

This commit is contained in:
Timur Kh.
2025-12-16 23:14:01 +03:00
parent 7499a14024
commit 69d99e08ea
13 changed files with 1116 additions and 5 deletions
@@ -0,0 +1,26 @@
package repository
import (
"context"
"datarush/internal/competition/domain"
"github.com/google/uuid"
)
type ListCompetitionsOptions struct {
Page int
PageSize int
State *domain.CompetitionState
IsParticipating *bool
SearchQuery *string
}
type CompetitionRepository interface {
Create(ctx context.Context, competition *domain.Competition) error
Get(ctx context.Context, id uuid.UUID) (*domain.Competition, error)
Update(ctx context.Context, competition *domain.Competition) error
Delete(ctx context.Context, id uuid.UUID) error
List(ctx context.Context, opts ListCompetitionsOptions) ([]domain.Competition, int, error)
ChangeState(ctx context.Context, id uuid.UUID, state domain.CompetitionState) (*domain.Competition, error)
}