import { MultiLanguageString, Timestamp } from './common'; import { UserId } from './user'; import { SchoolId } from './school'; export declare type ClientId = string; export declare enum ClientStatus { OK = "ok", PENDING = "pending" } export declare enum ClientPlanType { STANDARD = "standard", TRIAL = "trial" } export declare enum BillingPaymentCycle { NONE = "none", MONTHLY = "monthly", ANNUALLY = "annually", OTHER = "other" } export declare enum BillingPaymentType { NONE = "none", MONTHLY = "monthly", ANNUALLY = "annually", OTHER = "other" } export interface ClientBillingProfileV2 { address: { [lang: string]: { addressCity?: string; addressLine1?: string; addressLine2?: string; addressPostCode?: string; addressPrefecture?: string; 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; paymentCycle: BillingPaymentCycle; invoiceDueDate: Timestamp; invoiceIssueDate: Timestamp; paymentType: BillingPaymentType; } export interface ClientCompanyProfileV2 { address: { [lang: string]: { addressCity?: string; addressLine1?: string; addressLine2?: string; addressPostCode?: string; addressPrefecture?: string; 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; email: string; phone: string; website: string; contact: { fName: MultiLanguageString; lName: MultiLanguageString; email: string; phone: { mobile: string; office: string; }; position?: string; }; } 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; } export interface ClientV2 { billingProfile: ClientBillingProfileV2; cid: ClientId; companyProfile: ClientCompanyProfileV2; metadata: ClientMetadataV2; sCode: string; uid: UserId; }