package user 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/cache" "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.User, e.Status) Login(data *LoginData) (*model.User, e.Status) IncrVersion(uid uint) (int64, e.Status) Profile(uid uint) (*model.User, e.Status) ProfileOrCreate(data *CreateData) (*model.User, e.Status) HealthCheck() error } func NewService(i *do.Injector) (Service, error) { return &service{ log: do.MustInvoke[log.Service](i).GetLogger("user"), db: do.MustInvoke[db.Service](i), cache: do.MustInvoke[cache.Service](i), }, nil } type service struct { log *zap.Logger db db.Service cache cache.Service } func (s *service) HealthCheck() error { return nil }