29 lines
1.1 KiB
Go
29 lines
1.1 KiB
Go
package sub
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// CodeBuySub représente un code de souscription associé à un utilisateur.
|
|
type CodeBuySub struct {
|
|
ID string `gorm:"type:uuid;primaryKey" json:"id"`
|
|
Username string `gorm:"size:64;not null" json:"username"`
|
|
CodeBuy string `gorm:"uniqueIndex;type:varchar(50);not null" json:"code_verif"`
|
|
CreatedAt time.Time `gorm:"index;autoCreateTime" json:"created_at"`
|
|
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
|
|
}
|
|
|
|
// TableName définit explicitement le nom de la table.
|
|
func (CodeBuySub) TableName() string { return "code_buy_subs" }
|
|
|
|
// PremiumUser : client actuellement en abonnement premium, tel qu'affiché
|
|
// à l'admin sur la page des codes. ActivatedAt (date de saisie du code)
|
|
// n'est pas stockée telle quelle — le code est supprimé une fois consommé
|
|
// (voir Store.AddCodeForSub) — mais l'abonnement dure toujours exactement
|
|
// PremiumDuration, donc on la déduit de ExpiredAt (voir GormStore).
|
|
type PremiumUser struct {
|
|
Username string `json:"username"`
|
|
ActivatedAt time.Time `json:"activated_at"`
|
|
ExpiredAt time.Time `json:"expired_at"`
|
|
}
|