41 lines
1.8 KiB
Go
41 lines
1.8 KiB
Go
package redemption
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type RedemptionCode struct {
|
|
Id int64 `gorm:"primaryKey"`
|
|
Code string `gorm:"type:varchar(255);not null;unique;comment:Redemption Code"`
|
|
TotalCount int64 `gorm:"type:int;not null;default:0;comment:Total Redemption Count"`
|
|
UsedCount int64 `gorm:"type:int;not null;default:0;comment:Used Redemption Count"`
|
|
SubscribePlan int64 `gorm:"type:bigint;not null;default:0;comment:Subscribe Plan"`
|
|
UnitTime string `gorm:"type:varchar(50);not null;default:'month';comment:Unit Time: day, month, quarter, half_year, year"`
|
|
Quantity int64 `gorm:"type:int;not null;default:1;comment:Quantity"`
|
|
Status int64 `gorm:"type:tinyint;not null;default:1;comment:Status: 1=enabled, 0=disabled"`
|
|
CreatedAt time.Time `gorm:"<-:create;comment:Create Time"`
|
|
UpdatedAt time.Time `gorm:"comment:Update Time"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index;comment:Delete Time"`
|
|
}
|
|
|
|
type RedemptionRecord struct {
|
|
Id int64 `gorm:"primaryKey"`
|
|
RedemptionCodeId int64 `gorm:"type:bigint;not null;default:0;comment:Redemption Code Id;index"`
|
|
UserId int64 `gorm:"type:bigint;not null;default:0;comment:User Id;index"`
|
|
SubscribeId int64 `gorm:"type:bigint;not null;default:0;comment:Subscribe Id"`
|
|
UnitTime string `gorm:"type:varchar(50);not null;default:'month';comment:Unit Time"`
|
|
Quantity int64 `gorm:"type:int;not null;default:1;comment:Quantity"`
|
|
RedeemedAt time.Time `gorm:"<-:create;comment:Redeemed Time"`
|
|
CreatedAt time.Time `gorm:"<-:create;comment:Create Time"`
|
|
}
|
|
|
|
func (RedemptionCode) TableName() string {
|
|
return "redemption_code"
|
|
}
|
|
|
|
func (RedemptionRecord) TableName() string {
|
|
return "redemption_record"
|
|
}
|