// ================================================================================
// 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/consts"
	"kami/internal/model/entity"
)

type (
	ISysUserChannelConfig interface {
		// GetAll 获取所有用户渠道配置
		GetAll(ctx context.Context) (data []*entity.V1SysUserConfigChannel, err error)
		// GetOneByUserID 根据用户ID获取用户渠道配置
		GetOneByUserID(ctx context.Context, userID string) (data *entity.V1SysUserConfigChannel, err error)
		// GetOneByChannelID 根据渠道ID获取用户渠道配置
		GetOneByChannelID(ctx context.Context, channelName consts.CardRedeemAccountCategory, userID string) (data *entity.V1SysUserConfigChannel, err error)
		// DeleteOne 删除用户渠道配置
		DeleteOne(ctx context.Context, userID string, channelName consts.CardRedeemAccountCategory) (err error)
		// Init 新建用户后初始化用户渠道配置
		Init(ctx context.Context, userID string) (err error)
		// AddOrUpdateOne 添加一个用户渠道配置
		AddOrUpdateOne(ctx context.Context, userID string, channelName consts.CardRedeemAccountCategory, num int) (err error)
	}
)

var (
	localSysUserChannelConfig ISysUserChannelConfig
)

func SysUserChannelConfig() ISysUserChannelConfig {
	if localSysUserChannelConfig == nil {
		panic("implement not found for interface ISysUserChannelConfig, forgot register?")
	}
	return localSysUserChannelConfig
}

func RegisterSysUserChannelConfig(i ISysUserChannelConfig) {
	localSysUserChannelConfig = i
}
