package usecase

import (
	"context"
	"lune/talentscale/internal/domain"
	"time"

	"github.com/google/uuid"
)

type usageRecordUsecase struct {
	repo domain.UsageRecordRepository
}

func NewUsageRecordUsecase(repo domain.UsageRecordRepository) domain.UsageRecordUsecase {
	return &usageRecordUsecase{repo: repo}
}

func (u *usageRecordUsecase) GetMonthlyUsage(ctx context.Context, companyID uuid.UUID, year, month int) (*domain.UsageRecord, error) {
	return u.repo.GetByCompanyAndPeriod(ctx, companyID, year, month)
}

func (u *usageRecordUsecase) TrackUsage(ctx context.Context, companyID uuid.UUID, count int) error {
	now := time.Now()
	return u.repo.IncrementUsage(ctx, companyID, now.Year(), int(now.Month()), count)
}
