package service import ( "context" "fmt" "gitea.dwysokinski.me/twhelp/sessions/internal/domain" ) type UserRepository interface { Create(ctx context.Context, params domain.CreateUserParams) (domain.User, error) Get(ctx context.Context, id int64) (domain.User, error) } type User struct { repo UserRepository } func NewUser(repo UserRepository) *User { return &User{repo: repo} } func (u *User) Create(ctx context.Context, params domain.CreateUserParams) (domain.User, error) { user, err := u.repo.Create(ctx, params) if err != nil { return domain.User{}, fmt.Errorf("UserRepository.Create: %w", err) } return user, nil } func (u *User) Get(ctx context.Context, id int64) (domain.User, error) { user, err := u.repo.Get(ctx, id) if err != nil { return domain.User{}, fmt.Errorf("UserRepository.Get: %w", err) } return user, nil }