package enricher

import (
	"context"

	tntent "github.com/tidbcloud/devops/entity/tenant"
	"github.com/tidbcloud/devops/pkg/infra/clients/billingcli"
)

type BillingEnricher struct {
	billingCli billingcli.Client
}

func NewBillingEnricher(billingCli billingcli.Client) *BillingEnricher {
	return &BillingEnricher{
		billingCli: billingCli,
	}
}

func (e *BillingEnricher) Enrich(ctx context.Context, origins []*tntent.Tenant) error {
	for _, origin := range origins {
		planTenant, err := e.billingCli.GetTenantPlanInfo(ctx, origin.Id)
		if err != nil {
			return err
		}
		origin.Plan = tntent.TenantPlan(planTenant.EffectivePlan)
	}

	return nil
}
