package crrf

import (
	"context"

	"github.com/tidbcloud/dataflow-service/app/repo/entity"
	"github.com/tidbcloud/pkgv2/bizerr"
	"gorm.io/gorm"
)

type (
	CRRFSettingFilter func(rdb *gorm.DB) *gorm.DB
)

// CRRFSettingRepo persists CRRFSetting entities.
type CRRFSettingRepo interface {
	ListByFilter(ctx context.Context, filter CRRFSettingFilter) ([]*entity.CRRFSetting, bizerr.BizError)
	GetByClusterID(ctx context.Context, clusterID uint64) (*entity.CRRFSetting, bizerr.BizError)
	Save(ctx context.Context, setting *entity.CRRFSetting) bizerr.BizError
	DeleteByClusterID(ctx context.Context, clusterID uint64) bizerr.BizError
}
