From f851e61124d323b8a856500c68da58398b613128 Mon Sep 17 00:00:00 2001
From: Arman
Date: Fri, 22 Dec 2023 17:47:49 +0100
Subject: [PATCH] refactor: tiers into enum
---
src/lib/components/support.svelte | 7 +++-
src/lib/constants.ts | 6 +++
src/lib/layout/activity.svelte | 3 +-
src/lib/layout/containerButton.svelte | 3 +-
src/lib/layout/containerHeader.svelte | 9 +++--
src/lib/layout/header.svelte | 3 +-
src/lib/layout/logs.svelte | 3 +-
src/lib/layout/navigation.svelte | 3 +-
src/lib/stores/billing.ts | 13 ++++---
src/routes/console/+layout.svelte | 4 +-
.../account/organizations/+page.svelte | 3 +-
.../changeOrganizationTierCloud.svelte | 6 +--
.../console/createOrganizationCloud.svelte | 6 +--
src/routes/console/onboarding/+page.svelte | 4 +-
.../billing/+page.svelte | 3 +-
.../billing/budgetCap.svelte | 4 +-
.../billing/planSummary.svelte | 7 ++--
.../createMember.svelte | 6 +--
.../excesLimitModal.svelte | 3 +-
.../organization-[organization]/header.svelte | 5 ++-
.../usage/[[invoice]]/+page.svelte | 9 +++--
.../auth/templates/+page.svelte | 3 +-
.../executions/+page.svelte | 4 +-
.../settings/smtp/+page.svelte | 7 ++--
.../settings/usage/[[invoice]]/+page.svelte | 9 +++--
.../bucket-[bucket]/create-file/step1.svelte | 5 ++-
.../settings/updateMaxFileSize.svelte | 5 ++-
.../cloudOrganization/confirmDetails.svelte | 11 +++---
.../cloudOrganization/inviteMembers.svelte | 9 +++--
.../organizationDetails.svelte | 15 ++++----
.../console/wizard/cloudOrganization/store.ts | 3 +-
.../cloudOrganization/usageRates.svelte | 7 ++--
.../choosePlan.svelte | 37 ++++++++++---------
.../confirmDetails.svelte | 7 ++--
.../inviteMembers.svelte | 9 +++--
.../planExcess.svelte | 11 +++---
.../cloudOrganizationChangeTier/store.ts | 3 +-
37 files changed, 146 insertions(+), 109 deletions(-)
diff --git a/src/lib/components/support.svelte b/src/lib/components/support.svelte
index 06bf93f2aa..c63200f733 100644
--- a/src/lib/components/support.svelte
+++ b/src/lib/components/support.svelte
@@ -10,10 +10,13 @@
import { isSupportOnline, showSupportModal } from '../../routes/console/wizard/support/store';
import { isCloud } from '$lib/system';
import { organization } from '$lib/stores/organization';
+ import { BillingPlan } from '$lib/constants';
export let show = false;
- $: isPaid = $organization?.billingPlan === 'tier-1' || $organization?.billingPlan === 'tier-2';
+ $: isPaid =
+ $organization?.billingPlan === BillingPlan.PRO ||
+ $organization?.billingPlan === BillingPlan.SCALE;
{#if isCloud}
@@ -39,7 +42,7 @@
{/if}
- {#if $organization?.billingPlan === 'tier-0'}
+ {#if $organization?.billingPlan === BillingPlan.STARTER}
- {#if $createOrganization.billingPlan !== 'tier-0'}
+ {#if $createOrganization.billingPlan !== BillingPlan.STARTER}
{plan.name} plan
${plan.price}
@@ -91,7 +92,7 @@
${totalExpences}
- {#if $createOrganization.billingPlan !== 'tier-0'}
+ {#if $createOrganization.billingPlan !== BillingPlan.STARTER}
This amount, and any additional usage fees, will be charged on a recurring 30-day
billing cycle after your trial period ends on
import { Alert } from '$lib/components';
+ import { BillingPlan } from '$lib/constants';
import { Button, Form, FormList, InputEmail } from '$lib/elements/forms';
import {
Table,
@@ -41,10 +42,10 @@
- {#if $createOrganization.billingPlan === 'tier-2'}
+ {#if $createOrganization.billingPlan === BillingPlan.SCALE}
You can add unlimited organization members on the {plan.name} plan at no cost. Each member
added will receive an email invite to your organization on completion.
- {:else if $createOrganization.billingPlan === 'tier-1'}
+ {:else if $createOrganization.billingPlan === BillingPlan.PRO}
You can add unlimited organization members on the {plan.name} plan for
${plan.addons.member.price} each per month. Each member added will receive an
email invite to your organization on completion.
@@ -70,7 +71,7 @@
Collaborator
- {#if $createOrganization.billingPlan === 'tier-1'}
+ {#if $createOrganization.billingPlan === BillingPlan.PRO}
Cost
{/if}
@@ -79,7 +80,7 @@
{#each $createOrganization.collaborators as collaborator}
{collaborator}
- {#if $createOrganization.billingPlan === 'tier-1'}
+ {#if $createOrganization.billingPlan === BillingPlan.PRO}
15$
{/if}
diff --git a/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte b/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
index 8cedbdafeb..785b748625 100644
--- a/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
+++ b/src/routes/console/wizard/cloudOrganization/organizationDetails.svelte
@@ -1,5 +1,6 @@
diff --git a/src/routes/console/wizard/cloudOrganization/store.ts b/src/routes/console/wizard/cloudOrganization/store.ts
index 481924e9de..0c2e71e7ad 100644
--- a/src/routes/console/wizard/cloudOrganization/store.ts
+++ b/src/routes/console/wizard/cloudOrganization/store.ts
@@ -1,3 +1,4 @@
+import { BillingPlan } from '$lib/constants';
import type { WizardStepsType } from '$lib/layout/wizard.svelte';
import type { Tier } from '$lib/stores/billing';
import { writable } from 'svelte/store';
@@ -17,7 +18,7 @@ export const createOrganization = writable<{
}>({
id: null,
name: null,
- billingPlan: 'tier-1',
+ billingPlan: BillingPlan.PRO,
paymentMethodId: null,
collaborators: [],
billingAddressId: null,
diff --git a/src/routes/console/wizard/cloudOrganization/usageRates.svelte b/src/routes/console/wizard/cloudOrganization/usageRates.svelte
index 55d94d6a3b..7810b8e3ec 100644
--- a/src/routes/console/wizard/cloudOrganization/usageRates.svelte
+++ b/src/routes/console/wizard/cloudOrganization/usageRates.svelte
@@ -14,6 +14,7 @@
import { createOrganization } from './store';
import { plansInfo } from '$lib/stores/billing';
import { abbreviateNumber } from '$lib/helpers/numbers';
+ import { BillingPlan } from '$lib/constants';
export let show = false;
export let tier: string;
@@ -49,7 +50,7 @@
}
];
- $: isFree = tier === 'tier-0';
+ $: isFree = tier === BillingPlan.STARTER;
@@ -57,12 +58,12 @@
Usage on the Starter plan is limited for the following resources. Next billing period: {toLocaleDate(
nextDate
)}.
- {:else if tier === 'tier-1'}
+ {:else if tier === BillingPlan.PRO}
Usage on the Pro plan will be charged at the end of each billing period at the following
rates. Next billing period: {toLocaleDate(nextDate)}.
- {:else if tier === 'tier-2'}
+ {:else if tier === BillingPlan.SCALE}
Usage on the Scale plan will be charged at the end of each billing period at the
following rates. Next billing period: {toLocaleDate(nextDate)}.
diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
index 058651b907..7c3095dddc 100644
--- a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
+++ b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte
@@ -11,19 +11,20 @@
import type { Models } from '@appwrite.io/console';
import { sizeToBytes } from '$lib/helpers/sizeConvertion';
import { Pill } from '$lib/elements';
+ import { BillingPlan } from '$lib/constants';
let usage: OrganizationUsage = null;
let members: Models.MembershipList = null;
- $: if ($changeOrganizationTier.billingPlan === 'tier-0' && $changeTierSteps) {
+ $: if ($changeOrganizationTier.billingPlan === BillingPlan.STARTER && $changeTierSteps) {
$changeTierSteps = updateStepStatus($changeTierSteps, 2, true);
$changeTierSteps = updateStepStatus($changeTierSteps, 3, true);
$changeTierSteps = updateStepStatus($changeTierSteps, 4, true);
}
$: if (
- $changeOrganizationTier.billingPlan === 'tier-2' ||
- $changeOrganizationTier.billingPlan === 'tier-1'
+ $changeOrganizationTier.billingPlan === BillingPlan.SCALE ||
+ $changeOrganizationTier.billingPlan === BillingPlan.PRO
) {
$changeTierSteps = updateStepStatus($changeTierSteps, 2, false);
$changeTierSteps = updateStepStatus($changeTierSteps, 3, false);
@@ -62,7 +63,7 @@
$changeOrganizationTier.limitOverflow.users > 0 ||
$changeOrganizationTier.limitOverflow.executions > 0 ||
$changeOrganizationTier.limitOverflow.members > 0) &&
- $changeOrganizationTier.billingPlan === 'tier-0'
+ $changeOrganizationTier.billingPlan === BillingPlan.STARTER
) {
$changeOrganizationTier.isOverLimit = true;
$changeTierSteps = updateStepStatus($changeTierSteps, 5, false);
@@ -77,14 +78,14 @@
members = await sdk.forConsole.teams.listMemberships($organization.$id);
//Select closest tier from starting one
- // if ($organization.billingPlan === 'tier-2') {
- // $changeOrganizationTier.billingPlan = 'tier-1';
+ // if ($organization.billingPlan === BillingPlan.SCALE) {
+ // $changeOrganizationTier.billingPlan = BillingPlan.PRO;
// }
// else
- if ($organization.billingPlan === 'tier-1') {
- $changeOrganizationTier.billingPlan = 'tier-0';
- } else if ($organization.billingPlan === 'tier-0') {
- $changeOrganizationTier.billingPlan = 'tier-1';
+ if ($organization.billingPlan === BillingPlan.PRO) {
+ $changeOrganizationTier.billingPlan = BillingPlan.STARTER;
+ } else if ($organization.billingPlan === BillingPlan.STARTER) {
+ $changeOrganizationTier.billingPlan = BillingPlan.PRO;
}
});
@@ -92,14 +93,14 @@
if (!$changeOrganizationTier.billingPlan) {
throw new Error('Please select a plan.');
}
- if ($changeOrganizationTier.billingPlan === 'tier-0') {
+ if ($changeOrganizationTier.billingPlan === BillingPlan.STARTER) {
$changeOrganizationTier.collaborators = [];
}
}
- $: freePlan = $plansInfo.plans.find((p) => p.$id === 'tier-0');
- $: proPlan = $plansInfo.plans.find((p) => p.$id === 'tier-1');
- $: scalePlan = $plansInfo.plans.find((p) => p.$id === 'tier-2');
+ $: freePlan = $plansInfo.plans.find((p) => p.$id === BillingPlan.STARTER);
+ $: proPlan = $plansInfo.plans.find((p) => p.$id === BillingPlan.PRO);
+ $: scalePlan = $plansInfo.plans.find((p) => p.$id === BillingPlan.SCALE);
@@ -122,7 +123,7 @@
name="plan"
bind:group={$changeOrganizationTier.billingPlan}
value="tier-0"
- disabled={$organization.billingPlan === 'tier-0'}>
+ disabled={$organization.billingPlan === BillingPlan.STARTER}>
{tierFree.description}
- {#if $organization.billingPlan === 'tier-0'}
+ {#if $organization.billingPlan === BillingPlan.STARTER}
CURRENT PLAN
{/if}
@@ -145,7 +146,7 @@
name="plan"
bind:group={$changeOrganizationTier.billingPlan}
value="tier-1"
- disabled={$organization.billingPlan === 'tier-1'}>
+ disabled={$organization.billingPlan === BillingPlan.PRO}>
- {#if $organization.billingPlan === 'tier-1'}
+ {#if $organization.billingPlan === BillingPlan.PRO}
CURRENT PLAN
{:else}
14 DAY FREE TRIAL
diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
index f6095b62f4..0b8f053444 100644
--- a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
+++ b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte
@@ -1,6 +1,7 @@