Files
omnex/control-plane/api/internal/sub/models.go
T
Xor290 0f28d4757e
ci-web / test (push) Canceled after 0s
ci-api / test (push) Canceled after 24s
chore: build
2026-08-22 21:58:39 +02:00

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"`
}