import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; export class ClaimListItemV2Dto { @ApiProperty({ description: 'Claim case ID', example: '507f1f77bcf86cd799439011' }) claimRequestId: string; @ApiProperty({ description: 'Public ID shared across blame and claim', example: 'A14235' }) publicId: string; @ApiProperty({ description: 'Claim request number', example: 'CL12345' }) requestNo: string; @ApiProperty({ description: "ClaimCaseStatus. New V2–V5 priced-only claims become COMPLETED after expert work. Factor claims use INSURER_REVIEW_MIXED_FACTORS_PENDING (priced-line acceptance before factor uploads), OWNER_REPAIR_FACTOR_UPLOAD_PENDING, and EXPERT_VALIDATING_REPAIR_FACTORS. V5 then waits at WAITING_FOR_FILE_MAKER_APPROVAL. Legacy DB rows may still use WAITING_FOR_INSURER_APPROVAL or INSURER_REVIEW_AWAITING_OWNER_SIGN.", example: "COMPLETED", }) status: string; @ApiProperty({ description: 'Claim damage determination status', example: 'PENDING' }) claimStatus: string; @ApiProperty({ description: 'Current workflow step', example: 'USER_SUBMISSION_COMPLETE' }) currentStep: string; @ApiProperty({ description: 'Creation date', example: '2026-02-22T10:00:00.000Z' }) createdAt: string; @ApiProperty({ description: 'Blame request ID this claim originated from' }) blameRequestId?: string; @ApiPropertyOptional({ description: 'Blame file type: THIRD_PARTY or CAR_BODY', example: 'THIRD_PARTY', }) blameType?: string; @ApiPropertyOptional({ description: 'How the blame file was initiated: IN_PERSON or LINK', example: 'IN_PERSON', }) creationMethod?: string; @ApiPropertyOptional({ description: 'Calculated combined blame and claim lifecycle status', example: 'WAITING_FOR_DAMAGE_EXPERT', }) unifiedFileStatus?: string; } export class GetMyClaimsV2ResponseDto { @ApiProperty({ description: 'List of user claims', type: [ClaimListItemV2Dto] }) list: ClaimListItemV2Dto[]; @ApiProperty({ description: 'Total count after search filter', example: 5 }) total: number; @ApiPropertyOptional({ description: 'Current page when `page` or `limit` query params were sent', }) page?: number; @ApiPropertyOptional({ description: 'Page size when paginating' }) limit?: number; @ApiPropertyOptional({ description: 'Total pages when paginating' }) totalPages?: number; }