import { IPicture } from 'gallery/entities'; import { ISubscriptionLocation } from 'order/entities'; import { IOrganization } from 'organization/entities'; import { IAddress } from 'shared-entities/address.entity'; export interface IPerson { address: IAddress; affiliation?: IAffiliation; birthDate?: string; consumerId: string; createdAt?: string; email: string; faxNumber?: string; firstName: string; gender?: string; type?: string; stripe?: any; id: string; jobTitle?: string; lastName?: string; latitude?: number; longitude?: number; mangopayCards: IMangopayCard[]; mangopayUserId: string; mangopayWalletId: string; mobilePhoneNumber?: string; nationality?: string; organizationFavorites?: string[]; phoneNumber?: string; picture?: IPicture; settings: ISettings; subscriptionLocation: ISubscriptionLocation; updatedAt: string; uri: string; userId: string; enabled?: boolean; metadatas?: T; frequentedEstablishments?: IFrequentedEstablishment[]; legalNotice?: { version: string; dateOfAcceptance: string; }; myAddresses?: IAddress[]; lemonway?: ILemonwayCards; statistics?: { lastVisit?: Date; firstVisit?: Date; totalVisit?: number; amountLastOrder?: number; amountTotalOrder?: number; frequentedEstablishments?: IFrequentedEstablishment[]; loyalCustomer?: boolean; opinion?: number; }; } export interface ILemonwayCards { cards: ICard[]; } export interface ICard { id: number; is3DS: boolean; country: string; authorizationNumber: string; maskedNumber: string; expiration: string; type: string; default: boolean; } export interface IFrequentedEstablishment { organizationName?: string; organizationId: string; isCustomer: boolean; firstVisit: string; lastVisit?: string; } export interface IMangopayCard { Active: boolean | null; Alias: string; BankCode: string | null; CardProvider: string; CardType: string; Country: string; Currency: string | null; default?: boolean; defaults?: IMangopayCard; ExpirationDate: null | string; Fingerprint: string | null; Id: string; Product: string | null; Tag?: null; UserId: null | string; Validity: string | null; } export interface INotifications { emailEnable: boolean; pushEnable: boolean; smsEnable: boolean; } export interface ISettings { notifications?: INotifications; notification?: INotifications; } export interface IAffiliation extends IOrganization { calendarId: string; uri: string; legalName: string; } export interface IStatistics { lastVisit?: Date; firstVisit?: Date; totalVisit?: number; amountLastOrder?: number; amountTotalOrder?: number; frequentedEstablishments?: IFrequentedEstablishment[]; loyalCustomer?: boolean; }