Merge branch 'IDTEAM-1.26.0' into 'main'
[ProtonMail-WebClient.git] / packages / shared / lib / subscription / freePlans.ts
blob3656e741d05e8f69fd7407972bf960e9a86d3149
1 import { type Currency, DEFAULT_CURRENCY, PLANS, PLAN_NAMES, PLAN_SERVICES, PLAN_TYPES } from '@proton/payments';
3 import { CYCLE, DEFAULT_CYCLE } from '../constants';
4 import type { Cycle, FreePlanDefault, SubscriptionCheckResponse } from '../interfaces';
6 export const FREE_PLAN: FreePlanDefault = {
7     ID: 'free',
8     Name: PLANS.FREE,
9     PeriodEnd: {
10         '1': 1702849536,
11         '12': 1731879936,
12         '24': 1763415936,
13     },
14     ParentMetaPlanID: '',
15     Title: PLAN_NAMES[PLANS.FREE],
16     Type: PLAN_TYPES.PLAN,
17     Currency: DEFAULT_CURRENCY,
18     Cycle: DEFAULT_CYCLE,
19     Amount: 0,
20     MaxDomains: 0,
21     MaxAddresses: 1,
22     MaxCalendars: 3,
23     MaxSpace: 524288000,
24     MaxBaseSpace: 524288000,
25     MaxDriveSpace: 1073741824,
26     MaxRewardSpace: 6442450944,
27     MaxBaseRewardSpace: 1073741824,
28     MaxDriveRewardSpace: 5368709120,
29     MaxMembers: 0,
30     Offers: [],
31     MaxVPN: 1,
32     MaxTier: 0,
33     Services: PLAN_SERVICES.MAIL + PLAN_SERVICES.VPN,
34     Quantity: 1,
35     State: 1,
36     Features: 0,
37     Pricing: {
38         [CYCLE.MONTHLY]: 0,
39         [CYCLE.YEARLY]: 0,
40         [CYCLE.TWO_YEARS]: 0,
41         [CYCLE.THIRTY]: 0,
42         [CYCLE.FIFTEEN]: 0,
43     },
46 export const getFreeCheckResult = (
47     currency: Currency = DEFAULT_CURRENCY,
48     cycle: Cycle = DEFAULT_CYCLE
49 ): SubscriptionCheckResponse => {
50     return {
51         Amount: 0,
52         AmountDue: 0,
53         Proration: 0,
54         Credit: 0,
55         Currency: currency,
56         Cycle: cycle,
57         Gift: 0,
58         CouponDiscount: 0,
59         Coupon: null,
60         PeriodEnd: 0,
61         optimistic: true,
62     };