import { ApiProperty } from '@nestjs/swagger'; import { Expose, Transform } from 'class-transformer'; export class InquireApplicationResponse { @Transform(({ obj }) => obj.ApplicationDetails?.ApplicationNumber) @Expose() @ApiProperty() applicationNumber!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ExternalApplicationNumber) @Expose() @ApiProperty() externalApplicationNumber!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ApplicationStatus) @Expose() @ApiProperty() applicationStatus!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Organization) @Expose() @ApiProperty() organization!: number; @Transform(({ obj }) => obj.ApplicationDetails?.Product) @Expose() @ApiProperty() product!: string; // this typo is from neoleap, so we keep it as is @Transform(({ obj }) => obj.ApplicationDetails?.ApplicatonDate) @Expose() @ApiProperty() applicationDate!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ApplicationSource) @Expose() @ApiProperty() applicationSource!: string; @Transform(({ obj }) => obj.ApplicationDetails?.SalesSource) @Expose() @ApiProperty() salesSource!: string; @Transform(({ obj }) => obj.ApplicationDetails?.DeliveryMethod) @Expose() @ApiProperty() deliveryMethod!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ProgramCode) @Expose() @ApiProperty() ProgramCode!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Plastic) @Expose() @ApiProperty() plastic!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Design) @Expose() @ApiProperty() design!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ProcessStage) @Expose() @ApiProperty() processStage!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ProcessStageStatus) @Expose() @ApiProperty() processStageStatus!: string; @Transform(({ obj }) => obj.ApplicationDetails?.EligibilityCheckResult) @Expose() @ApiProperty() eligibilityCheckResult!: string; @Transform(({ obj }) => obj.ApplicationDetails?.EligibilityCheckDescription) @Expose() @ApiProperty() eligibilityCheckDescription!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Title) @Expose() @ApiProperty() title!: string; @Transform(({ obj }) => obj.ApplicationDetails?.FirstName) @Expose() @ApiProperty() firstName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.SecondName) @Expose() @ApiProperty() secondName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.ThirdName) @Expose() @ApiProperty() thirdName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.LastName) @Expose() @ApiProperty() lastName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.FullName) @Expose() @ApiProperty() fullName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.EmbossName) @Expose() @ApiProperty() embossName!: string; @Transform(({ obj }) => obj.ApplicationDetails?.PlaceOfBirth) @Expose() @ApiProperty() placeOfBirth!: string; @Transform(({ obj }) => obj.ApplicationDetails?.DateOfBirth) @Expose() @ApiProperty() dateOfBirth!: string; @Transform(({ obj }) => obj.ApplicationDetails?.LocalizedDateOfBirth) @Expose() @ApiProperty() localizedDateOfBirth!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Age) @Expose() @ApiProperty() age!: number; @Transform(({ obj }) => obj.ApplicationDetails?.Gender) @Expose() @ApiProperty() gender!: string; @Transform(({ obj }) => obj.ApplicationDetails?.Married) @Expose() @ApiProperty() married!: string; @Transform(({ obj }) => obj.ApplicationDetails.Nationality) @Expose() @ApiProperty() nationality!: string; @Transform(({ obj }) => obj.ApplicationDetails.IdType) @Expose() @ApiProperty() idType!: string; @Transform(({ obj }) => obj.ApplicationDetails.IdNumber) @Expose() @ApiProperty() idNumber!: string; @Transform(({ obj }) => obj.ApplicationDetails.IdExpiryDate) @Expose() @ApiProperty() idExpiryDate!: string; @Transform(({ obj }) => obj.ApplicationStatusDetails?.Description) @Expose() @ApiProperty() applicationStatusDescription!: string; @Transform(({ obj }) => obj.ApplicationStatusDetails?.Canceled) @Expose() @ApiProperty() canceled!: boolean; }