package model

import (
	"gorm.io/gorm"
)

// ShopSeriesOneTimeCommissionTier 一次性佣金梯度配置模型
// 记录基于销售业绩的一次性佣金梯度档位
// 当系列分配的累计销量或销售额达到不同阈值时，返不同的一次性佣金金额
type ShopSeriesOneTimeCommissionTier struct {
	gorm.Model
	BaseModel       `gorm:"embedded"`
	AllocationID    uint   `gorm:"column:allocation_id;index;not null;comment:系列分配ID" json:"allocation_id"`
	TierType        string `gorm:"column:tier_type;type:varchar(20);not null;comment:梯度类型 sales_count-销量 sales_amount-销售额" json:"tier_type"`
	ThresholdValue  int64  `gorm:"column:threshold_value;type:bigint;not null;comment:梯度阈值(销量或销售额分)" json:"threshold_value"`
	CommissionMode  string `gorm:"column:commission_mode;type:varchar(20);not null;default:fixed;comment:返佣模式 fixed-固定金额 percent-百分比" json:"commission_mode"`
	CommissionValue int64  `gorm:"column:commission_value;type:bigint;not null;comment:返佣值(分或千分比)" json:"commission_value"`
	Status          int    `gorm:"column:status;type:int;default:1;not null;comment:状态 1-启用 2-停用" json:"status"`
}

// TableName 指定表名
func (ShopSeriesOneTimeCommissionTier) TableName() string {
	return "tb_shop_series_one_time_commission_tier"
}

// 梯度类型常量
const (
	// TierTypeSalesCount 销量梯度
	TierTypeSalesCount = "sales_count"
	// TierTypeSalesAmount 销售额梯度
	TierTypeSalesAmount = "sales_amount"
)

// 返佣模式常量在 shop_series_allocation.go 中定义
// CommissionModeFixed = "fixed"
// CommissionModePercent = "percent"
