chore: build
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
// Package projects : cycle de vie des projets vitrine déployés pour un client
|
||||
// sur abonnement de 1 à 12 mois (un projet = un namespace isolé).
|
||||
//
|
||||
// Contrairement aux démos (TTL fixe de 30 jours, détruites à l'échéance), un
|
||||
// projet payé est suspendu à l'échéance puis supprimé seulement après un
|
||||
// délai de grâce : un renouvellement en retard ne détruit pas les données du
|
||||
// client. Le paiement est hors périmètre : l'admin Omnex saisit la durée
|
||||
// souscrite au déploiement puis à chaque renouvellement.
|
||||
// Contrairement aux démos (TTL fixe de 30 jours), la durée d'un projet payé est
|
||||
// choisie au déploiement puis prolongée à chaque renouvellement ; à l'échéance
|
||||
// il est supprimé, sans délai de grâce. Le paiement est hors périmètre :
|
||||
// l'admin Omnex saisit la durée souscrite au déploiement puis à chaque
|
||||
// renouvellement.
|
||||
package projects
|
||||
|
||||
import "time"
|
||||
@@ -26,16 +26,15 @@ const (
|
||||
StatusPending Status = "pending" // créé, pas encore pris par le worker
|
||||
StatusProvisioning Status = "provisioning" // déploiement en cours
|
||||
StatusReady Status = "ready" // en ligne
|
||||
StatusSuspended Status = "suspended" // abonnement échu : arrêté, données conservées jusqu'à DeleteAt
|
||||
StatusDeleting Status = "deleting" // suppression en cours
|
||||
StatusDeleted Status = "deleted" // supprimé
|
||||
StatusFailed Status = "failed" // échec du déploiement
|
||||
)
|
||||
|
||||
// Extendable : un abonnement peut être prolongé (et un projet suspendu relancé).
|
||||
// Extendable : un abonnement peut être prolongé.
|
||||
func (s Status) Extendable() bool {
|
||||
switch s {
|
||||
case StatusProvisioning, StatusReady, StatusSuspended:
|
||||
case StatusProvisioning, StatusReady:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -58,12 +57,8 @@ type Project struct {
|
||||
MonthsPurchased int `json:"months_purchased"`
|
||||
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
// ExpiresAt : fin de l'abonnement (le projet est alors suspendu).
|
||||
// ExpiresAt : fin de l'abonnement (le projet est alors supprimé).
|
||||
ExpiresAt time.Time `json:"expires_at"`
|
||||
// DeleteAt : suppression définitive si l'abonnement n'est pas renouvelé
|
||||
// (ExpiresAt + délai de grâce).
|
||||
DeleteAt time.Time `json:"delete_at"`
|
||||
SuspendedAt *time.Time `json:"suspended_at,omitempty"`
|
||||
}
|
||||
|
||||
func (Project) TableName() string { return "projects" }
|
||||
|
||||
Reference in New Issue
Block a user