package model

import "time"

// 公户流水类型常量
const (
	FundTypeEnergizeTax      = "energize_tax"         // 赋能税收（入公户）
	FundTypeRenameDeduction  = "rename_deduction"     // 改名扣费（入公户）
	FundTypeRenameRefund     = "rename_refund"        // 改名退款（出公户）
	FundTypeDeletePost       = "delete_post_deduction" // 删稿扣费（入公户）
	FundTypeAdminTransfer    = "admin_transfer"       // 管理员转账（出公户，受余额约束）
	FundTypeSystemOperation  = "system_operation"     // 站长直调（双向，不受余额约束）
)

// FundLog 公户流水记录
type FundLog struct {
	ID          uint      `gorm:"primarykey" json:"id"`
	Amount      int       `gorm:"not null" json:"amount"`                     // +入公户 / –出公户（×10）
	Type        string    `gorm:"type:varchar(50);index;not null" json:"type"` // 日志类型
	RelatedType string    `gorm:"type:varchar(50);default:''" json:"related_type,omitempty"`
	RelatedID   uint      `gorm:"default:0" json:"related_id,omitempty"`
	OperatorUID *uint     `gorm:"default:null" json:"operator_uid,omitempty"`
	Description string    `gorm:"type:text;not null" json:"description"`
	CreatedAt   time.Time `json:"created_at"`
}

// FundLogDisplayNames 公户流水类型 → 中文名
var FundLogDisplayNames = map[string]string{
	FundTypeEnergizeTax:     "赋能税收",
	FundTypeRenameDeduction: "改名扣费",
	FundTypeRenameRefund:    "改名退款",
	FundTypeDeletePost:      "删稿扣费",
	FundTypeAdminTransfer:   "管理转出",
	FundTypeSystemOperation: "系统操作",
}
