package hr_analytics

import (
	"context"
	"github.com/google/uuid"
)

type Service struct {
	repo Repository
}

func NewService(repo Repository) *Service {
	return &Service{repo: repo}
}

func (s *Service) GetOverview(ctx context.Context, companyID uuid.UUID) (*AnalyticsOverview, error) {
	trend, err := s.repo.GetCompletionTrend(ctx, companyID)
	if err != nil { return nil, err }

	funnel, err := s.repo.GetHiringFunnel(ctx, companyID)
	if err != nil { return nil, err }

	persDist, err := s.repo.GetPersonalityDistribution(ctx, companyID)
	if err != nil { return nil, err }

	monthly, err := s.repo.GetMonthlyActivity(ctx, companyID)
	if err != nil { return nil, err }

	return &AnalyticsOverview{
		CompletionTrend:         trend,
		HiringFunnel:            *funnel,
		PersonalityDistribution: persDist,
		MonthlyActivity:         monthly,
	}, nil
}
