package dto

type CreateWithdrawalSettingReq struct {
	DailyWithdrawalLimit int   `json:"daily_withdrawal_limit" validate:"required,min=1,max=100" required:"true" minimum:"1" maximum:"100" description:"每日提现次数限制"`
	MinWithdrawalAmount  int64 `json:"min_withdrawal_amount" validate:"required,min=1" required:"true" minimum:"1" description:"最低提现金额（分）"`
	FeeRate              int64 `json:"fee_rate" validate:"required,min=0,max=10000" required:"true" minimum:"0" maximum:"10000" description:"手续费比率（基点，100=1%）"`
}

type WithdrawalSettingListReq struct {
	Page     int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" description:"页码（默认1）"`
	PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" description:"每页数量（默认20，最大100）"`
}

type WithdrawalSettingItem struct {
	ID                   uint   `json:"id" description:"配置ID"`
	DailyWithdrawalLimit int    `json:"daily_withdrawal_limit" description:"每日提现次数限制"`
	MinWithdrawalAmount  int64  `json:"min_withdrawal_amount" description:"最低提现金额（分）"`
	FeeRate              int64  `json:"fee_rate" description:"手续费比率（基点，100=1%）"`
	ArrivalDays          int    `json:"arrival_days" description:"到账天数"`
	IsActive             bool   `json:"is_active" description:"是否生效"`
	CreatorID            uint   `json:"creator_id" description:"创建人ID"`
	CreatorName          string `json:"creator_name" description:"创建人用户名"`
	CreatedAt            string `json:"created_at" description:"创建时间"`
}

type WithdrawalSettingPageResult struct {
	Items []WithdrawalSettingItem `json:"items" description:"配置列表"`
	Total int64                   `json:"total" description:"总记录数"`
	Page  int                     `json:"page" description:"当前页码"`
	Size  int                     `json:"size" description:"每页数量"`
}
