package store

import (
	"context"
	"time"

	v1 "github.com/pingcap-inc/pchub/model/v1"
)

type CloudBudgetStore interface {
	Create(ctx context.Context, cloudResource *v1.CloudResourceBudget) (*v1.CloudResourceBudget, error)
	Update(ctx context.Context, cloudResource *v1.CloudResourceBudget) error
	ListByResourecID(ctx context.Context, lit int, rid uint64) (*[]v1.BudgetWithDate, error)
	ListPlanningByResourceID(ctx context.Context, rid uint64) (*[]v1.CloudResourceBudget, error)
	ListResourceBudgets(ctx context.Context, timeRange []time.Time, rid uint64) ([]*v1.BudgetCalcItem, error)
	ListLatestFYResourceBudgets(ctx context.Context, rid uint64, years int) ([]*v1.BudgetCalcItem, error)
	UpdateBudget(_ context.Context, rid uint64, mon string, amount float64) error
	GetMonthlyBudgetByResourecID(ctx context.Context, m string, rid uint64) (float64, error)
}
