diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts
index d935bd84e..0dda5f294 100644
--- a/src/lib/sdk/billing.ts
+++ b/src/lib/sdk/billing.ts
@@ -261,6 +261,7 @@ export type Plan = {
storage: AdditionalResource;
users: AdditionalResource;
};
+ trialDays: number;
};
export type PlansInfo = {
diff --git a/src/lib/stores/billing.ts b/src/lib/stores/billing.ts
index 1462f5125..fcdb3ab83 100644
--- a/src/lib/stores/billing.ts
+++ b/src/lib/stores/billing.ts
@@ -10,7 +10,7 @@ import type {
PlansMap,
PaymentMethodData
} from '$lib/sdk/billing';
-import { IS_TRIAL_DISABLED, isCloud } from '$lib/system';
+import { isCloud } from '$lib/system';
import { cachedStore } from '$lib/helpers/cache';
import { Query } from '@appwrite.io/console';
import { headerAlert } from './headerAlert';
@@ -169,7 +169,6 @@ export function isServiceLimited(serviceId: PlanServices, plan: Tier, total: num
}
export function calculateTrialDay(org: Organization) {
- if (IS_TRIAL_DISABLED) return;
if (org?.billingPlan === BillingPlan.STARTER) return false;
const endDate = new Date(org?.billingStartDate);
const today = new Date();
diff --git a/src/lib/system.ts b/src/lib/system.ts
index adc04027e..5cb998dca 100644
--- a/src/lib/system.ts
+++ b/src/lib/system.ts
@@ -24,4 +24,3 @@ export const isCloud = MODE === Mode.CLOUD;
export const isSelfHosted = MODE !== Mode.CLOUD;
export const hasStripePublicKey = !!VARS.STRIPE_PUBLIC_KEY;
export const GRACE_PERIOD_OVERRIDE = false;
-export const IS_TRIAL_DISABLED = true;
diff --git a/src/routes/console/account/organizations/+page.svelte b/src/routes/console/account/organizations/+page.svelte
index be2b778a2..33811a134 100644
--- a/src/routes/console/account/organizations/+page.svelte
+++ b/src/routes/console/account/organizations/+page.svelte
@@ -13,11 +13,11 @@
import CreateOrganization from '../../createOrganization.svelte';
import { sdk } from '$lib/stores/sdk';
import type { PageData } from './$types';
- import { IS_TRIAL_DISABLED, isCloud } from '$lib/system';
+ import { isCloud } from '$lib/system';
import { Pill } from '$lib/elements';
import type { Models } from '@appwrite.io/console';
import type { Organization } from '$lib/stores/organization';
- import { daysLeftInTrial } from '$lib/stores/billing';
+ import { daysLeftInTrial, plansInfo } from '$lib/stores/billing';
import { tooltip } from '$lib/actions/tooltip';
import { toLocaleDate } from '$lib/helpers/date';
import { wizard } from '$lib/stores/wizard';
@@ -82,7 +82,7 @@
FREE
{/if}
- {#if organization?.billingTrialStartDate && $daysLeftInTrial > 0 && organization.billingPlan !== BillingPlan.STARTER && !IS_TRIAL_DISABLED}
+ {#if organization?.billingTrialStartDate && $daysLeftInTrial > 0 && organization.billingPlan !== BillingPlan.STARTER && $plansInfo.get(organization.billingPlan)?.trialDays}
0 &&
- !IS_TRIAL_DISABLED;
+ $plansInfo.get($organization.billingPlan)?.trialDays;
{#if $organization}
@@ -56,7 +55,7 @@
{tierToPlan($organization?.billingPlan)?.name} plan
- {#if $organization?.billingPlan !== BillingPlan.STARTER && isTrial && !IS_TRIAL_DISABLED}
+ {#if $organization?.billingPlan !== BillingPlan.STARTER && isTrial}
TRIAL
{/if}
diff --git a/src/routes/console/organization-[organization]/header.svelte b/src/routes/console/organization-[organization]/header.svelte
index c77fecedf..9b600ea44 100644
--- a/src/routes/console/organization-[organization]/header.svelte
+++ b/src/routes/console/organization-[organization]/header.svelte
@@ -9,7 +9,13 @@
import { toLocaleDate } from '$lib/helpers/date';
import { isTabSelected } from '$lib/helpers/load';
import { Cover } from '$lib/layout';
- import { daysLeftInTrial, getServiceLimit, readOnly, tierToPlan } from '$lib/stores/billing';
+ import {
+ daysLeftInTrial,
+ getServiceLimit,
+ plansInfo,
+ readOnly,
+ tierToPlan
+ } from '$lib/stores/billing';
import {
members,
newMemberModal,
@@ -18,7 +24,7 @@
organizationList
} from '$lib/stores/organization';
import { wizard } from '$lib/stores/wizard';
- import { GRACE_PERIOD_OVERRIDE, IS_TRIAL_DISABLED, isCloud } from '$lib/system';
+ import { GRACE_PERIOD_OVERRIDE, isCloud } from '$lib/system';
import CreateOrganizationCloud from '../createOrganizationCloud.svelte';
let areMembersLimited: boolean;
@@ -94,7 +100,7 @@
{#if isCloud && $organization?.billingPlan === BillingPlan.STARTER}
FREE
{/if}
- {#if isCloud && $organization?.billingTrialStartDate && $daysLeftInTrial > 0 && $organization.billingPlan !== BillingPlan.STARTER && !IS_TRIAL_DISABLED}
+ {#if isCloud && $organization?.billingTrialStartDate && $daysLeftInTrial > 0 && $organization.billingPlan !== BillingPlan.STARTER && $plansInfo.get($organization.billingPlan)?.trialDays}
Confirm your details
- Confirm the details of your new organization{IS_TRIAL_DISABLED
+ Confirm the details of your new organization{!plan.trialDays
? '.'
: ' and start your free trial.'}
@@ -126,7 +125,7 @@
{#if $createOrganization.billingPlan !== BillingPlan.STARTER}
This amount, and any additional usage fees, will be charged on a recurring 30-day
- billing cycle{IS_TRIAL_DISABLED
+ billing cycle{!plan.trialDays
? ''
: ` after your trial period ends on ${toLocaleDate(billingPayDate.toString())}`}.
diff --git a/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte b/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
index dfe8c80d6..67bed9a75 100644
--- a/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
+++ b/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
@@ -8,7 +8,6 @@
import { plansInfo, tierFree, tierPro, tierScale } from '$lib/stores/billing';
import { organizationList, type Organization } from '$lib/stores/organization';
import { updateStepStatus } from '$lib/stores/wizard';
- import { IS_TRIAL_DISABLED } from '$lib/system';
import { createOrganization, createOrgSteps } from './store';
let showCustomId = false;
@@ -109,7 +108,7 @@
{tierPro.description}
- {#if !IS_TRIAL_DISABLED}
+ {#if proPlan?.trialDays}
14 DAY FREE TRIAL
{/if}
diff --git a/src/routes/console/wizard/cloudOrganization/paymentDetails.svelte b/src/routes/console/wizard/cloudOrganization/paymentDetails.svelte
index 5b03cee1e..956064b66 100644
--- a/src/routes/console/wizard/cloudOrganization/paymentDetails.svelte
+++ b/src/routes/console/wizard/cloudOrganization/paymentDetails.svelte
@@ -10,9 +10,8 @@
import { initializeStripe, isStripeInitialized, submitStripeCard } from '$lib/stores/stripe';
import { sdk } from '$lib/stores/sdk';
import { toLocaleDate } from '$lib/helpers/date';
- import { showUsageRatesModal } from '$lib/stores/billing';
+ import { plansInfo, showUsageRatesModal } from '$lib/stores/billing';
import { PaymentBoxes } from '$lib/components/billing';
- import { IS_TRIAL_DISABLED } from '$lib/system';
const today = new Date();
const billingPayDate = new Date(today.getTime() + 44 * 24 * 60 * 60 * 1000);
@@ -75,8 +74,10 @@
Payment details
- Add a payment method to your organization. {#if !IS_TRIAL_DISABLED}You will not be charged
- until your trial ends on {toLocaleDate(billingPayDate.toString())}.
+ Add a payment method to your organization. {#if $plansInfo.get($createOrganization.billingPlan)?.trialDays}You
+ will not be charged until your trial ends on {toLocaleDate(billingPayDate.toString())}.
{/if}
diff --git a/src/routes/console/wizard/cloudOrganization/store.ts b/src/routes/console/wizard/cloudOrganization/store.ts
index 73b050b60..f25d7d5f8 100644
--- a/src/routes/console/wizard/cloudOrganization/store.ts
+++ b/src/routes/console/wizard/cloudOrganization/store.ts
@@ -1,12 +1,12 @@
import { BillingPlan } from '$lib/constants';
import type { WizardStepsType } from '$lib/layout/wizard.svelte';
-import type { Tier } from '$lib/stores/billing';
-import { IS_TRIAL_DISABLED } from '$lib/system';
-import { writable } from 'svelte/store';
+import { plansInfo, type Tier } from '$lib/stores/billing';
+import { organization } from '$lib/stores/organization';
+import { get, writable } from 'svelte/store';
export const createOrgSteps = writable(new Map());
export const createOrganizationFinalAction = writable(
- IS_TRIAL_DISABLED ? 'Create' : 'Start trial'
+ get(plansInfo)?.get(get(organization)?.billingPlan)?.trialDays ? 'Start trial' : 'Create'
);
export const createOrganization = writable<{
diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
index ad1d62aa1..84b9ff788 100644
--- a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
+++ b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
@@ -13,7 +13,6 @@
import { Pill } from '$lib/elements';
import { BillingPlan } from '$lib/constants';
import { formatCurrency } from '$lib/helpers/numbers';
- import { IS_TRIAL_DISABLED } from '$lib/system';
let usage: OrganizationUsage = null;
let members: Models.MembershipList = null;
@@ -162,8 +161,8 @@
{#if $organization.billingPlan === BillingPlan.PRO}
CURRENT PLAN
- {:else if !IS_TRIAL_DISABLED}
-
14 DAY FREE TRIAL
+ {:else if proPlan?.trialDays}
+
{proPlan?.trialDays} DAY FREE TRIAL
{/if}
diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
index dc5e16fb1..9b87670bf 100644
--- a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
+++ b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
@@ -16,7 +16,6 @@
feedbackDowngradeOptions,
isUpgrade
} from './store';
- import { IS_TRIAL_DISABLED } from '$lib/system';
const plan = $plansInfo.get($changeOrganizationTier.billingPlan);
const collaboratorPrice = plan?.addons.member?.price ?? 0;
@@ -78,7 +77,9 @@
Confirm your details
- Confirm the details of your new organization{IS_TRIAL_DISABLED
+ Confirm the details of your new organization{!$plansInfo.get(
+ $changeOrganizationTier.billingPlan
+ )?.trialDays
? '.'
: ' and start your free trial.'}
@@ -147,7 +148,7 @@
This amount, and any additional usage fees, will be charged on a recurring 30-day
- billing cycle{IS_TRIAL_DISABLED
+ billing cycle{!$plansInfo.get($changeOrganizationTier.billingPlan)?.trialDays
? ''
: ` after your trial period ends on ${toLocaleDate(billingPayDate.toString())}`}.
diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/store.ts b/src/routes/console/wizard/cloudOrganizationChangeTier/store.ts
index 2c3ae0501..8d5fad783 100644
--- a/src/routes/console/wizard/cloudOrganizationChangeTier/store.ts
+++ b/src/routes/console/wizard/cloudOrganizationChangeTier/store.ts
@@ -1,13 +1,13 @@
import { BillingPlan } from '$lib/constants';
import type { WizardStepsType } from '$lib/layout/wizard.svelte';
-import type { Tier } from '$lib/stores/billing';
-import { IS_TRIAL_DISABLED } from '$lib/system';
-import { writable } from 'svelte/store';
+import { plansInfo, type Tier } from '$lib/stores/billing';
+import { organization } from '$lib/stores/organization';
+import { get, writable } from 'svelte/store';
export const changeTierSteps = writable(new Map());
export const isUpgrade = writable(false);
export const changeOrganizationFinalAction = writable(
- IS_TRIAL_DISABLED ? 'Create' : 'Start trial'
+ get(plansInfo)?.get(get(organization)?.billingPlan)?.trialDays ? 'Start trial' : 'Create'
);
export const changeOrganizationTier = writable<{