import { SimpleGrantsAddress, SummaryNumbers } from '@yourcause/common'; import { ApplicantOrganization, OrganizationInfo } from './organization.typing'; export interface Applicant { id: number; firstName: string; lastName: string; email: string; phoneNumber: string; profileImageUrl: string; requirePasswordReset: boolean; isNewUser: boolean; address: string; address2: string; city: string; country: string; state: string; postalCode: string; culture: string; organizations: ApplicantOrganization[]; acceptedTermsOfService: boolean; lastSelectedCurrency?: string; passwordExpirationDate?: string; isSso: boolean; hasAwards: boolean; } export interface AddApplicantModalComponentReturn { firstName: string; lastName: string; email: string; addApplicantAddress: boolean; notifyApplicant: boolean; isEmployeeOfClient: boolean; address: { address: string; address2: string; city: string; stateProvRegCode: string; countryCode: string; postalCode: string; }; } export interface SearchApplicantsPayload { exactMatch: boolean; email: boolean; searchText: string; } export interface ApplicantFromSearch { id?: number; firstName: string; lastName: string; email: string; phoneNumber: string; address?: SimpleGrantsAddress; notifyApplicant?: boolean; profileImageUrl?: string; isEmployeeOfClient?: boolean; } export interface ApplicantForApi { firstName: string; lastName: string; email: string; phoneNumber: string; address: string; address2: string; country: string; state: string; city: string; postalCode: string; sendEmail: boolean; clientId: number; isEmployeeOfClient: boolean; } export interface AppliedApplicant { id: number; firstName: string; lastName: string; fullName: string; email: string; address: string; address2: null; country: string; state: string; city: string; postalCode: string; phoneNumber: string; totalApplications: number; lastApplicationDate: string; totalPaymentValue: number; organizations: { id: number; name: string; orgIdentification: string; nonprofitGuid: string; }[]; vendorId: string; } export interface AppliedNominee { id: number; fullName: string; email: string; phoneNumber: string; position: string; totalNominations: number; lastNominationDate: string; organizations: { id: number; name: string; orgIdentification: string; nonprofitGuid: string; }[]; vendorId: string; } export interface ApplicantResetPasswordPayload { token: string; password: string; confirmPassword: string; } export interface LinkSSOApplicantPayload { externalEmployeeId: string; applicationId: number; applicantId: number; affiliateEmployeeId: number; }; export interface ApplicantsPageRow { id: number; firstName: string; lastName: string; email: string; address: string; address2: string; country: string; state: string; city: string; postalCode: string; phoneNumber: string; totalApplications: number; lastApplicationDate: string; totalPaymentValue: number; organizations: { id: number; name: string; orgIdentification: string; }[]; } export interface ApplicantForInfoPanel { firstName: string; lastName: string; address: string; email: string; profileImage: string; phoneNumber: string; } export interface CreateApplicant { firstName: string; lastName: string; email: string; address: string; address2: string; country: string; state: string; city: string; postalCode: string; phoneNumber: string; password: string; acceptedTermsOfService: boolean; profileImageName?: string; culture?: string; clientId?: number; grantProgramGuid?: string; } export interface UpdateProfile { firstName: string; lastName: string; profileImageName?: string; existingPassword?: string; password?: string; confirmPassword?: string; address: string; address2?: string; country: string; state: string; city: string; postalCode: string; phoneNumber?: string; culture?: string; } export interface SimpleApplicant { id: number; firstName: string; lastName: string; email: string; profileImageUrl: string; } export interface ApplicantProfileData { applicant: ApplicantSummaryApi; additionalData: SummaryNumbers; } export interface ApplicantSummaryApi { id: number; firstName: string; lastName: string; email: string; address: string; address2: string; city: string; state: string; postalCode: string; country: string; phoneNumber: string; profileImage?: string; } export interface ApplicantForOrg { applicantInfo: ApplicantInfoForOrg; applicationCount: number; nominationsCount: number; } export interface ApplicantInfoForOrg { id: number; firstName: string; lastName: string; fullName: string; email: string; address: string; address2: string; city: string; state: string; postalCode: string; country: string; phoneNumber: string; profileImage: string; } export interface ProfileRouterLink { [x: string]: { fromInsights: string; fromAppManager: string; fromAppView: string; fromProcessing: string; }; } export type RouterLinkAttr = 'fromInsights'|'fromAppView'|'fromAppManager'|'fromProcessing'; export interface ApplicantTopLevelStats { totalApplicants: number; awardsTotal: number; paymentsTotal: number; numberOfApplications: number; numberOfAwards: number; numberOfPayments: number; } export interface ApplicantTop10 { applicantId: number; fullName: string; requestAmount: number; awardsTotal: number; numberOfAwards: number; awardNumberAndTotal?: string; } export interface ApplicantFromGCOrCSR extends ApplicantInfo { firstName: string; lastName: string; affiliateEmployeeId: number; } export interface ApplicantForDash { applicantInfo: ApplicantInfo; organizationInfos: OrganizationInfo[]; numberOfApplications: number; amountRequested: number; numberOfAwards: number; amountAwardedTotal: number; numberOfPayments: number; paymentsTotal: number; lastApplicationDate: string; } export interface ApplicantInfo { id: number; fullName: string; email: string; phoneNumber: string; address1: string; address2: string; city: string; state: string; postalCode: string; country: string; } export interface ApplicantAdminUser { createdDate?: string; updatedDate?: string; emailConfirmed?: boolean; isDeactivated?: boolean; id: number; firstName: string; lastName: string; fullName?: string; phoneNumber: string; email: string; profileImageUrl?: string; languageCulture?: string; userId?: number; address1: string; address2: string; city: string; state: string; postalCode: string; country: string; lastSelectedCurrency: string; ssoId: string; active: boolean; } export interface CreateApplicantResponse { applicantId: number; userId: number; } export interface ApplicantExistsResponse { accountCreated: boolean; isConfirmed: boolean; }