import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { BlameRequestType } from 'src/Types&Enums/blame-request-management/blameRequestType.enum'; export class ClaimDetailV2ResponseDto { @ApiProperty() claimRequestId: string; @ApiProperty() publicId: string; @ApiProperty() status: string; @ApiProperty() claimStatus: string; @ApiProperty() currentStep: string; @ApiPropertyOptional() nextStep?: string; @ApiProperty({ description: 'Whether claim is locked' }) locked: boolean; @ApiPropertyOptional() lockedBy?: { actorId: string; actorName: string; lockedAt: string; }; @ApiPropertyOptional() owner?: { userId: string; fullName?: string; }; @ApiPropertyOptional() vehicle?: { carName?: string; carModel?: string; carType?: string; plate?: any; }; @ApiPropertyOptional({ description: 'Blame file type from linked blame case', enum: BlameRequestType, }) blameRequestType?: BlameRequestType; @ApiPropertyOptional({ description: 'CAR_BODY only: first-step flags — another car (`car`) and/or object (`object`)', example: { car: true, object: false }, }) carBodyFirstForm?: { car?: boolean; object?: boolean }; @ApiPropertyOptional({ description: 'Blame request ID', example: '507f...' }) blameRequestId?: string; @ApiPropertyOptional({ description: 'Blame request number', example: 'BL12345' }) blameRequestNo?: string; @ApiPropertyOptional({ description: 'Selected outer damaged parts' }) selectedParts?: string[]; @ApiPropertyOptional({ description: 'Selected other damaged parts' }) otherParts?: string[]; @ApiPropertyOptional({ description: 'Required documents status' }) requiredDocuments?: Record; @ApiPropertyOptional({ description: 'Car angles captured' }) carAngles?: Record; @ApiPropertyOptional({ description: 'Damaged parts captured' }) damagedParts?: Record; @ApiPropertyOptional({ description: 'True when user uploaded all required factors and the case awaits expert approve/reject.', }) awaitingFactorValidation?: boolean; @ApiPropertyOptional({ description: 'Expert reply payloads (first and/or final) when awaiting factor validation.', }) evaluation?: { damageExpertReply?: unknown; damageExpertReplyFinal?: unknown; }; @ApiProperty() createdAt: string; @ApiProperty() updatedAt: string; }