import { AggregatorName, BankConnectionMode, CustomerDashboardState, CustomerStorageType, MaritalStatusV2 } from './Customer.enum'; export interface Customer { organizationId: string; projectId: string; userId?: string; customIdentifier: string; aggregationDetails: AggregationDetails; personalDetails?: PersonalDetails; isArchived?: boolean; dashboard?: CustomerDashboard; owner?: Project; shares?: SharedProject[]; storage?: CustomerStorage; } export interface AggregationDetails { userId?: string; aggregatorName?: AggregatorName; callbackUrl?: string; token?: string; mode?: BankConnectionMode; redirectUrl?: string; apiUrl?: string; iframeUrl?: string; clientId?: string; } export interface PersonalDetails { identity?: CustomerIdentity; contact?: CustomerContact; household?: Household; } export interface CustomerIdentity { nationality?: string; firstName?: string; lastName?: string; birthName?: string; birthDate?: string; birthCity?: string; birthZipCode?: string; birthCountry?: string; } export interface CustomerContact { email?: string; phoneNumber?: string; street?: string; additionalInformation?: string; city?: string; zipCode?: string; country?: string; } export interface Household { maritalStatus?: MaritalStatusV2; numberOfDependentChildren?: number; numberOfOtherDependents?: number; } export interface CustomerDashboard { currentState: CustomerDashboardState; historyState: HistoryState[]; numberOfViews: number; numberOfAnalyses: number; newWithAnalysis?: boolean; onboarding?: Record; team?: string; customizedMonthlyAmount?: number; analysesConfig?: Record>; createdAt?: string; } export interface HistoryState { createdAt: string; state: CustomerDashboardState; userId: string; } export interface CashFlowConfig { isIncludedInRemainderToLive: boolean; } export interface Project { organizationId: string; projectId: string; } export interface SharedProject { organizationId: string; projectId: string; sharedAt: string; } export interface CustomerStorage { type?: CustomerStorageType; expiresAt?: string; }