import { MultiLanguageString, Timestamp, } from './common'; import {UserId} from './user'; import {SchoolId} from './school'; export type ClientId = string; export enum ClientStatus { OK = "ok", PENDING = "pending", } export enum ClientPlanType { STANDARD = "standard", TRIAL = "trial", } export enum BillingPaymentCycle { NONE = "none", MONTHLY = "monthly", ANNUALLY = "annually", OTHER = "other", } export enum BillingPaymentType { NONE = "none", MONTHLY = "monthly", ANNUALLY = "annually", OTHER = "other", } // customer/{cid}/billingProfile export interface ClientBillingProfileV2 { address: { [lang: string]: { addressCity?: string; // V2 addressLine1?: string; // V2 addressLine2?: string; // V2 addressPostCode?: string; // V2 addressPrefecture? : string; // V2 city?: string; country?: string; line1?: string; line2?: string; postCode?: string; prefecture?: string; }; }; billingNameEn: string; billingNameJa: string; billingPaymentCycle: BillingPaymentCycle; billingPaymentInvoiceDueDate: Timestamp; billingPaymentInvoiceIssueDate: Timestamp; billingPaymentType: BillingPaymentType; name: MultiLanguageString, // V3 paymentCycle: BillingPaymentCycle; // V3 invoiceDueDate: Timestamp; // V3 invoiceIssueDate: Timestamp; // V3 paymentType: BillingPaymentType; // V3 } // customer/{cid}/CompanyProfile export interface ClientCompanyProfileV2 { address: { [lang: string]: { addressCity?: string; // V2 addressLine1?: string; // V2 addressLine2?: string; // V2 addressPostCode?: string; // V2 addressPrefecture?: string; // V2 city?: string; country?: string; line1?: string; line2?: string; postCode?: string; prefecture?: string; }; }; companyEmail: string; companyInitials: string; companyNameEn: string; companyNameJa: string; companyPhone: string; companyWebsite: string; contactEmail: string; contactFirstNameFurigana: string; contactFirstNameKanji: string; contactFirstNameRomaji: string; contactLastNameFurigana: string; contactLastNameKanji: string; contactLastNameRomaji: string; contactPhoneMobile: string; contactPhoneOffice: string; initials: string; // V3 email: string; // V3 phone: string; // V3 website: string; // V3 contact: { fName: MultiLanguageString; // V3 lName: MultiLanguageString; // V3 email: string; // V3 phone: { mobile: string; // V3 office: string; // V3 }, position?: string; } } // customer/{cid}/metadata export interface ClientMetadataV2 { active: boolean; activeClasses: number; activeFamilies: number; activeGuardians: number; activeManagers: number; activeStudents: number; activeTeachers: number; activeUsers: number; createdAt: Timestamp; createdBy: UserId; newCustomer: boolean; nextInvoiceIssueDate: Timestamp; nextPaymentDueDate: Timestamp; planDateStart: Timestamp; planId: string; planIsTrial: boolean; planTrialDateEnd: Timestamp; planTrialDateStart: Timestamp; planType: ClientPlanType; schools: { [sid: SchoolId]: boolean; }; status: ClientStatus; totalSchools: number; updatedAt: Timestamp; updatedBy: UserId; } // customer/{cid} export interface ClientV2 { billingProfile: ClientBillingProfileV2; cid: ClientId; companyProfile: ClientCompanyProfileV2; metadata: ClientMetadataV2; sCode: string; uid: UserId; }