forked from Yara724/api
102 lines
2.8 KiB
TypeScript
102 lines
2.8 KiB
TypeScript
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<string, { uploaded: boolean; fileId?: string }>;
|
|
|
|
@ApiPropertyOptional({ description: 'Car angles captured' })
|
|
carAngles?: Record<string, { captured: boolean; url?: string }>;
|
|
|
|
@ApiPropertyOptional({ description: 'Damaged parts captured' })
|
|
damagedParts?: Record<string, { captured: boolean; url?: string }>;
|
|
|
|
@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;
|
|
}
|