package skill import ( "context" "github.com/rs/zerolog" "go.uber.org/fx" domainSkill "base/internal/domain/skill" "base/internal/dto" ) type Service interface { List(ctx context.Context) ([]dto.Skill, error) } type service struct { logger zerolog.Logger repo domainSkill.Repository } type Param struct { Logger zerolog.Logger Repo domainSkill.Repository fx.In } func New(param Param) Service { return &service{ logger: param.Logger, repo: param.Repo, } } func (s *service) List(ctx context.Context) ([]dto.Skill, error) { skills, err := s.repo.FindAll(ctx) if err != nil { return nil, err } out := make([]dto.Skill, len(skills)) for i, sk := range skills { out[i] = dto.Skill{ID: sk.ID.String(), Name: sk.Name} } return out, nil }