Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / shared / lib / interfaces / Organization.ts
blob85f02e1de1b2aa837ad41b82bd5e0b4e6842baba
1 import { type PLANS } from '@proton/payments';
2 import type { ORGANIZATION_STATE, ORGANIZATION_TWOFA_SETTING } from '@proton/shared/lib/constants';
4 export interface Organization {
5     ID: string;
6     Name: string;
7     DisplayName: string; // DEPRECATED
8     PlanName: PLANS;
9     VPNPlanName: string;
10     TwoFactorRequired: ORGANIZATION_TWOFA_SETTING; // If 0, 2FA not required, if 1, 2FA required for admins only, if 2, 2FA required for all
11     TwoFactorGracePeriod: number; // If non-null, number of seconds until 2FA setup enforced
12     Theme: string;
13     ToMigrate: 0 | 1 | 2;
14     BrokenSKL: 0 | 1;
15     Email: string;
16     MaxDomains: number;
17     MaxAddresses: number;
18     MaxCalendars: number;
19     MaxSpace: number;
20     MaxMembers: number;
21     MaxAI: number;
22     MaxWallets: number;
23     MaxSubWallets: number;
24     IsScimEnabled: boolean;
25     MaxVPN: number;
26     Features: number; // bits: 1 = catch-all addresses
27     Flags: number; // bits: 1 = loyalty, 2 = covid, 4 = smtp_submission, 8 = no_cycle_scheduled, 64 = dissident, 128 = proton, 256 = has phone support
28     UsedDomains: number;
29     UsedCalendars: number;
30     RequiresKey: number; // greater than 0 if the organization requires a key to be setup
31     RequiresDomain: number; // greater than 0 of the organization requires custom domain
32     UsedAddresses: number;
33     UsedSpace: number;
34     AssignedSpace: number;
35     UsedMembers: number;
36     UsedVPN: number;
37     UsedAI: number;
38     InvitationsRemaining: number;
39     HasKeys: number;
40     CreateTime: number;
41     LoyaltyCounter: number;
42     LoyaltyIncrementTime: number;
43     BonusDomains: number;
44     BonusAddresses: number;
45     BonusSpace: number;
46     BonusMembers: number;
47     BonusVPN: number;
48     Permissions: number;
49     State: ORGANIZATION_STATE;
52 export interface OrganizationIdentityOutput {
53     PublicKey: string | null;
54     FingerprintSignature: string | null;
55     FingerprintSignatureAddress: string | null;
58 export interface OrganizationSettings {
59     ShowName: boolean;
60     LogoID: string | null;
61     ShowScribeWritingAssistant: boolean;
62     VideoConferencingEnabled: boolean;
65 export interface OrganizationWithSettings extends Organization {
66     Settings: OrganizationSettings;