// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================

package service

import (
	"context"
	"kami/internal/model"
	"kami/internal/model/entity"
)

type (
	IStealRule interface {
		Create(ctx context.Context, input *model.MerchantHiddenConfigInput) (err error)
		Update(ctx context.Context, id uint, input *model.MerchantHiddenConfigInput) (err error)
		// UpdateStatus 更新某条记录的状态
		UpdateStatus(ctx context.Context, id uint, status int) (err error)
		// Delete 删除
		Delete(ctx context.Context, id uint) (err error)
		List(ctx context.Context, input *model.MerchantHiddenConfigList) (list []*model.MerchantHiddenConfigOutput, total int, err error)
		Record(ctx context.Context, input *model.MerchantHiddenRecordList) (list []*entity.V1MerchantHiddenRecord, total int, err error)
		Stats(ctx context.Context, input *model.MerchantHiddenConfigStatsInput) (list []*model.MerchantHiddenConfigStatsOutput, total int, err error)
	}
)

var (
	localStealRule IStealRule
)

func StealRule() IStealRule {
	if localStealRule == nil {
		panic("implement not found for interface IStealRule, forgot register?")
	}
	return localStealRule
}

func RegisterStealRule(i IStealRule) {
	localStealRule = i
}
