package problem import ( "git.0x7f.app/WOJ/woj-server/internal/e" "git.0x7f.app/WOJ/woj-server/internal/misc/log" "git.0x7f.app/WOJ/woj-server/internal/model" "git.0x7f.app/WOJ/woj-server/internal/repo/db" "github.com/samber/do" "go.uber.org/zap" ) var _ Service = (*service)(nil) type Service interface { Create(data *CreateData) (*model.Problem, e.Status) Update(problem *model.Problem) (*model.Problem, e.Status) Query(pid uint, associations bool, shouldEnable bool) (*model.Problem, e.Status) QueryFuzz(search string, associations bool, shouldEnable bool) ([]*model.Problem, e.Status) CreateVersion(data *CreateVersionData) (*model.ProblemVersion, e.Status) UpdateVersion(pvid uint, values interface{}) e.Status QueryVersion(pvid uint, shouldEnable bool) (*model.ProblemVersion, e.Status) QueryLatestVersion(pid uint) (*model.ProblemVersion, e.Status) HealthCheck() error } func NewService(i *do.Injector) (Service, error) { return &service{ log: do.MustInvoke[log.Service](i).GetLogger("problem"), db: do.MustInvoke[db.Service](i), }, nil } type service struct { log *zap.Logger db db.Service } func (s *service) HealthCheck() error { return nil }