Initial commit: 商品售卖网站
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Lottery struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
Name string `gorm:"size:100;not null" json:"name"`
|
||||
Description string `json:"description"`
|
||||
StartTime time.Time `json:"start_time"`
|
||||
EndTime time.Time `json:"end_time"`
|
||||
Cycle string `gorm:"size:20" json:"cycle"`
|
||||
DailyQuota *int `json:"daily_quota"`
|
||||
TotalQuota *int `json:"total_quota"`
|
||||
RegistrationValidity *int `json:"registration_validity"`
|
||||
IsActive bool `gorm:"default:true" json:"is_active"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
|
||||
Prizes []LotteryPrize `json:"prizes,omitempty"`
|
||||
}
|
||||
|
||||
func (Lottery) TableName() string {
|
||||
return "lotteries"
|
||||
}
|
||||
|
||||
type LotteryPrize struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
LotteryID uint `gorm:"index;not null" json:"lottery_id"`
|
||||
Name string `gorm:"size:100;not null" json:"name"`
|
||||
Type string `gorm:"size:20;not null" json:"type"`
|
||||
Quantity int `gorm:"not null" json:"quantity"`
|
||||
Weight int `gorm:"default:1" json:"weight"`
|
||||
CreditReward *int `json:"credit_reward"`
|
||||
DrawMode string `gorm:"size:20;default:'random'" json:"draw_mode"`
|
||||
}
|
||||
|
||||
func (LotteryPrize) TableName() string {
|
||||
return "lottery_prizes"
|
||||
}
|
||||
|
||||
type LotteryParticipant struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
LotteryID uint `gorm:"index;not null" json:"lottery_id"`
|
||||
UserID uint `gorm:"index;not null" json:"user_id"`
|
||||
PurchaseWeight int `gorm:"default:0" json:"purchase_weight"`
|
||||
RegisteredAt time.Time `json:"registered_at"`
|
||||
}
|
||||
|
||||
func (LotteryParticipant) TableName() string {
|
||||
return "lottery_participants"
|
||||
}
|
||||
|
||||
type LotteryWinner struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
LotteryID uint `gorm:"index;not null" json:"lottery_id"`
|
||||
PrizeID uint `gorm:"index;not null" json:"prize_id"`
|
||||
UserID uint `gorm:"index;not null" json:"user_id"`
|
||||
DrawnAt time.Time `json:"drawn_at"`
|
||||
}
|
||||
|
||||
func (LotteryWinner) TableName() string {
|
||||
return "lottery_winners"
|
||||
}
|
||||
|
||||
const (
|
||||
PrizeTypePhysical = "physical"
|
||||
PrizeTypeVirtual = "virtual"
|
||||
PrizeTypeCredit = "credit"
|
||||
|
||||
DrawModeRandom = "random"
|
||||
DrawModeWeight = "weight"
|
||||
|
||||
CycleDaily = "daily"
|
||||
CycleWeekly = "weekly"
|
||||
CycleMonthly = "monthly"
|
||||
)
|
||||
Reference in New Issue
Block a user