package listing import "log/slog" type Repository interface { GetAll() ([]Listing, error) GetByCategory(category string) ([]Listing, error) } type Service struct { repository Repository } func New(r Repository) *Service { return &Service{repository: r} } func (s *Service) GetAll() ([]Listing, error) { listings, err := s.repository.GetAll() if err != nil { slog.Error("listing service", "error", err) return nil, err } return listings, nil } func (s *Service) GetByCategory(c string) ([]Listing, error) { listings, err := s.repository.GetByCategory(c) if err != nil { slog.Error("listing service", "error", err) return nil, err } return listings, nil }