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. Post-expert owner phase includes: INSURER_REVIEW_AWAITING_OWNER_SIGN (priced lines only → final owner sign); INSURER_REVIEW_MIXED_FACTORS_PENDING (priced + factor lines); OWNER_REPAIR_FACTOR_UPLOAD_PENDING (all lines factor-needed); EXPERT_VALIDATING_REPAIR_FACTORS (all factors uploaded, expert validating). Legacy DB rows may still use WAITING_FOR_INSURER_APPROVAL for those flows.", example: "INSURER_REVIEW_AWAITING_OWNER_SIGN", }) 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; } 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; }