Procházet zdrojové kódy

Add billing_enabled feature flag

Mauricio Araujo před 2 roky
rodič
revize
577b942f9e
2 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 2 0
      api/types/project.go
  2. 8 1
      internal/models/project.go

+ 2 - 0
api/types/project.go

@@ -14,6 +14,7 @@ type ProjectList struct {
 	APITokensEnabled       bool   `json:"api_tokens_enabled"`
 	StacksEnabled          bool   `json:"stacks_enabled"`
 	CapiProvisionerEnabled bool   `json:"capi_provisioner_enabled"`
+	BillingEnabled         bool   `json:"billing_enabled"`
 	DBEnabled              bool   `json:"db_enabled"`
 	SimplifiedViewEnabled  bool   `json:"simplified_view_enabled"`
 	AzureEnabled           bool   `json:"azure_enabled"`
@@ -37,6 +38,7 @@ type Project struct {
 	AzureEnabled                    bool    `json:"azure_enabled"`
 	BetaFeaturesEnabled             bool    `json:"beta_features_enabled"`
 	CapiProvisionerEnabled          bool    `json:"capi_provisioner_enabled"`
+	BillingEnabled                  bool    `json:"billing_enabled"`
 	DBEnabled                       bool    `json:"db_enabled"`
 	EFSEnabled                      bool    `json:"efs_enabled"`
 	EnableReprovision               bool    `json:"enable_reprovision"`

+ 8 - 1
internal/models/project.go

@@ -25,6 +25,9 @@ const (
 	// CapiProvisionerEnabled enables the CAPI Provisioning flow
 	CapiProvisionerEnabled FeatureFlagLabel = "capi_provisioner_enabled"
 
+	// BillingEnabled enables the "Billing" tab and all Stripe integrations
+	BillingEnabled FeatureFlagLabel = "billing_enabled"
+
 	// DBEnabled enables the "Databases" tab
 	DBEnabled FeatureFlagLabel = "db_enabled"
 
@@ -93,6 +96,7 @@ var ProjectFeatureFlags = map[FeatureFlagLabel]bool{
 	AzureEnabled:                    false,
 	BetaFeaturesEnabled:             false,
 	CapiProvisionerEnabled:          true,
+	BillingEnabled:                  false,
 	DBEnabled:                       false,
 	EFSEnabled:                      false,
 	EnableReprovision:               false,
@@ -129,7 +133,9 @@ type Project struct {
 	Name  string `json:"name"`
 	Roles []Role `json:"roles"`
 
-	BillingID           string
+	// BillingID corresponds to the id generated by the billing provider
+	BillingID string
+
 	ProjectUsageID      uint
 	ProjectUsageCacheID uint
 
@@ -289,6 +295,7 @@ func (p *Project) ToProjectType(launchDarklyClient *features.Client) types.Proje
 		AzureEnabled:                    p.GetFeatureFlag(AzureEnabled, launchDarklyClient),
 		BetaFeaturesEnabled:             p.GetFeatureFlag(BetaFeaturesEnabled, launchDarklyClient),
 		CapiProvisionerEnabled:          p.GetFeatureFlag(CapiProvisionerEnabled, launchDarklyClient),
+		BillingEnabled:                  p.GetFeatureFlag(BillingEnabled, launchDarklyClient),
 		DBEnabled:                       p.GetFeatureFlag(DBEnabled, launchDarklyClient),
 		EFSEnabled:                      p.GetFeatureFlag(EFSEnabled, launchDarklyClient),
 		EnableReprovision:               p.GetFeatureFlag(EnableReprovision, launchDarklyClient),