import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; /** Active damage-expert resend request (owner must upload or acknowledge). */ export class ExpertResendDetailsV2Dto { @ApiPropertyOptional() resendDescription?: string; @ApiPropertyOptional({ type: [String] }) resendDocuments?: string[]; @ApiPropertyOptional({ type: [Object] }) resendCarParts?: Array<{ key?: string; label_fa?: string; label_en?: string }>; @ApiPropertyOptional({ description: 'Set when the owner satisfied the resend request' }) fulfilledAt?: Date; } export class ClaimDetailsV2ResponseDto { @ApiProperty({ description: 'Claim case ID' }) claimRequestId: string; @ApiProperty({ description: 'Public ID' }) publicId: string; @ApiProperty({ description: 'Request number' }) requestNo: string; @ApiProperty({ description: 'Overall case status' }) status: string; @ApiProperty({ description: 'Claim damage status' }) claimStatus: string; @ApiProperty({ description: 'Current workflow step' }) currentStep: string; @ApiPropertyOptional({ description: 'Next workflow step' }) nextStep?: string; @ApiPropertyOptional({ description: 'Blame request ID' }) blameRequestId?: string; @ApiPropertyOptional({ description: 'Blame request number' }) blameRequestNo?: string; @ApiPropertyOptional({ description: 'Owner info' }) owner?: { userId: string; fullName?: string; }; @ApiPropertyOptional({ description: 'Vehicle snapshot' }) vehicle?: { carName?: string; carModel?: string; carType?: string; plate?: any; }; @ApiPropertyOptional({ description: 'Selected outer damaged parts' }) selectedParts?: string[]; @ApiPropertyOptional({ description: 'Selected other damaged parts' }) otherParts?: string[]; @ApiPropertyOptional({ description: 'Bank info (masked)' }) money?: { sheba?: string; nationalCodeOfOwner?: string; }; @ApiPropertyOptional({ description: 'Required documents status' }) requiredDocuments?: Record; @ApiPropertyOptional({ description: 'Car angles captured' }) carAngles?: Record; @ApiPropertyOptional({ description: 'Damaged parts captured' }) damagedParts?: Record; @ApiPropertyOptional({ description: 'Damage expert resend instructions and progress (when status is WAITING_FOR_USER_RESEND).', }) expertResend?: ExpertResendDetailsV2Dto; @ApiPropertyOptional({ description: 'User satisfaction rating (if submitted)' }) userRating?: { progressSpeed: number; registrationEase: number; overallEvaluation: number; comment?: string; createdAt?: Date; }; @ApiProperty({ description: 'Created at' }) createdAt: string; @ApiProperty({ description: 'Updated at' }) updatedAt: string; }