package model

// User 用户模型
type User struct {
	BaseModel
	OpenID   string  `json:"openid" gorm:"uniqueIndex;size:64;not null"`
	Nickname string  `json:"nickname" gorm:"size:64"`
	Avatar   string  `json:"avatar" gorm:"size:512"`
	Phone    string  `json:"phone" gorm:"size:20"`
	IsVIP    bool    `json:"is_vip" gorm:"default:false"`
	Balance  float64 `json:"balance" gorm:"type:decimal(10,2);default:0"`
	Status   int     `json:"status" gorm:"default:1"` // 1正常 0冻结
}

func (User) TableName() string {
	return "users"
}

// RechargeRecord 充值记录
type RechargeRecord struct {
	BaseModel
	UserID    uint    `json:"user_id" gorm:"index;not null"`
	Amount    float64 `json:"amount" gorm:"type:decimal(10,2)"`
	Bonus     float64 `json:"bonus" gorm:"type:decimal(10,2);default:0"`
	Total     float64 `json:"total" gorm:"type:decimal(10,2)"`
	RechargePlanID uint `json:"recharge_plan_id" gorm:"default:0"`
}

func (RechargeRecord) TableName() string {
	return "recharge_records"
}

// RechargePlan 充值档位配置
type RechargePlan struct {
	BaseModel
	Name   string  `json:"name" gorm:"size:64;not null"`
	Amount float64 `json:"amount" gorm:"type:decimal(10,2);not null"`
	Bonus  float64 `json:"bonus" gorm:"type:decimal(10,2);default:0"`
	IsVIP  bool    `json:"is_vip" gorm:"default:false"` // 充值该档位是否成为VIP
	Status int     `json:"status" gorm:"default:1"`
}

func (RechargePlan) TableName() string {
	return "recharge_plans"
}
