package repo

import (
	"context"
	"time"

	"github.com/tidbcloud/cluster-service-ng/pkg/storage/mysql/schema"
)

type ScaleTikvDecisionFilter struct {
	SharedPoolID    string
	BizType         string
	BizID           string
	IncludeStatuses []string
	IncludeDeleted  bool
	StartTime       *time.Time
}

type ScaleTikvDecisionRepo interface {
	Create(ctx context.Context, scaleTikvDecision *schema.ScaleTikvDecision) error
	Save(ctx context.Context, scaleTikvDecision *schema.ScaleTikvDecision) error
	Load(ctx context.Context, id uint, includeDeleted bool) (*schema.ScaleTikvDecision, error)
	Delete(ctx context.Context, id uint) error
	List(ctx context.Context, filter *ScaleTikvDecisionFilter) ([]*schema.ScaleTikvDecision, error)
}
