11 KiB
Car-body (بدنه) — Fanavaran stage bodies (current YARA)
Snapshot of what hull submit actually sends after toFanavaranHullBaseClaimPayload / toFanavaranHullExpertisePayload.
Staged flow (VHUD):
- Base:
POST /car/vehicle-hull-claims(GEN.03) - No dmg-cases (
vehicle-hull-claims/{id}/dmg-casesdoes not exist) - Attachments:
POST …/{Id}/files(GEN.05) - Expertise:
POST …/{Id}/expertise(GEN.06)
Use hull ContractId (hullContractId, else tenant contractId). Nested URLs use GEN.03 Id, never ClaimNo.
A PUT to /vehicle-hull-claims/{Id} may run before files/expertise; Parsian often has no PUT route. That PUT is best-effort and must not block GEN.05/06.
Send rule: send the hull whitelist only. Do not send ثالث-only keys (DamagedCount, HasOtherCulprit, CompensationReferenceId, DocReceivedDate, IsLicenseReplacement, plaque block on base, …).
Source tags: same as third-party-stage-fields.md (system / lookup / inquiry / user / staff / derived).
Stage 1 — Hull base claim (GEN.03)
Built by buildFanavaranSubmitPayload then enrichCarBodyHullBaseClaimPayload then toFanavaranHullBaseClaimPayload.
Fanavaran has rejected as required (must not be null):
CustomerFaultPercent, AuthorityCulpritId, AccidentTypeId, CostSeparationToDmgSections, IsOwnerChanged, PolicyId, ClaimExpertId, dates/time, CulpritTypeId.
Must be null: IsLicenseReplaced (error if 0 / mapped from ثالث IsLicenseReplacement).
| Field | Persian | Type | Null? | Current value / source |
|---|---|---|---|---|
| PolicyId | شناسه بیمهنامه بدنه | number | no | inquiry first-party hull policy (processed-body-policy / body-policy/{id} / stored inquiry policyId) |
| ClaimExpertId | کارشناس مسئول پرونده | number | no | staff FileMaker CarBodyClaimExpertId on V4/V5, else tenant |
| AccidentDate | تاریخ حادثه | string Jalali | no | user first-party statement.accidentDate, else createdAt |
| AccidentTime | ساعت حادثه | string HH:mm |
no | user statement.accidentTime if set |
| AnnouncementDate | تاریخ اعلام | string Jalali | no | derived = AccidentDate |
| AccidentLocationAddress | نشانی محل حادثه | string | no | system "استان تهران شهر تهران" |
| AccidentCauseId | علت حادثه | number | no | system 6 · lookup accident-causes |
| AccidentCityId | شهر حادثه | number | no | system 701 · lookup cities |
| AccidentReportTypeId | نحوه اعلام | number | no | system 155 · lookup accident-report-type |
| AccidentTypeId | نوع حادثه بدنه | number | no | system 2 تصادف(حادثه) · lookup GET /lookups/vehicle-hull-accident-types |
| CulpritTypeId | نوع مقصر بدنه | number | no | system 300 (ثالث 337 remapped) · lookup GET /lookups/vehicle-hull-accident-culprit-type |
| AuthorityCulpritId | مرجع تعیین مقصر | number | no | lookup GET /lookups/detection-accident-culprits (caption بیمهگذار, fallback 1) |
| AccidentCulpritId | شناسه مقصر فناوران | number | preferred | inquiry parties inquiry-by-unique-identifier, fallback hull policy CustomerId |
| CustomerFaultPercent | درصد تقصیر بیمهگذار | number | no | system 100 |
| CostSeparationToDmgSections | تفکیک هزینه به نقاط | number (ans) | no | system 0 خیر · lookup ans |
| IsOwnerChanged | مالک تغییر یافته؟ | number (ans) | no | system 0 · lookup ans |
| IsLicenseReplaced | گواهینامه تعویضی است؟ | number | must be null | never copy ثالث IsLicenseReplacement |
| ActualPremium | حق بیمه واقعی | number | preferred | inquiry hull policy TotalPremium via GET /lookups/body-policy/{PolicyId} |
| EstimateAmount | برآورد | number | no | user expert prices / provisional |
| CulpritLicenceNo | شماره گواهینامه | string | no | dummy / user |
| CulpritLicenceIssuDate | تاریخ صدور گواهینامه | string Jalali | no | system "1394/10/13" |
| CulpritLicenceTypeId | نوع گواهینامه | number | sent | tenant 2 · lookup driving-licence-types |
| AccidentVehicleUsedId | کاربری خودرو | number | no | inquiry VIN/policy, else tenant |
| PoliceOfficerId | افسر | number | sent | system 1 |
| IsAccidentOutOfBorder | خارج از مرز | number | sent | system 0 |
| ArchiveNo | بایگانی | string | yes | null |
| EntryDate | تاریخ ورود | string | yes | null |
| CulpritLicenceForeignCityName | شهر خارجی گواهینامه | string | yes | null |
| PoliceReportSeri / Serial / Desc | کروکی | string | yes | null until user |
| CulpritLevelTwoLicenceIssuDate | صدور گواهینامه پایه ۲ | string | yes | null |
| TrackingCode | کد پیگیری | string | yes | null |
| CourtArchiveNo | بایگانی دادگاه | string | yes | null |
| PlaqueReplacementDate | تاریخ تعویض پلاک | string | yes | null |
| StatusChangeDate | تغییر وضعیت | string | yes | null |
| ClaimCompletionDate | تکمیل پرونده | string | yes | null |
| DmgAssessorFirstCreationTime | زمان ارزیاب | string | yes | null |
| IsSurplusArticleEighthLaw | مازاد ماده ۸ | number | yes | null |
| GlassBreakReasonId | علت شکست شیشه | number | yes | null |
| CulpritLicenceCountryId / CityId | محل صدور گواهینامه | number | yes | null |
Also persisted locally (not a GEN.03 field): claimCase.vehicle.carPrice from hull policy VehicleValue.
Inquiries at this stage
- Hull policy:
GET /lookups/body-policy/{PolicyId}→TotalPremium,CustomerId,VehicleValue,VehicleId - Parties:
GET /lookups/inquiry-by-unique-identifier - Optional VIN / vehicle used-id
Stage 2 — Damage case
Skipped. YARA returns fanavaranSync.damageCase.status = skipped. Do not POST dmg-cases.
Stage 3 — Attachments (GEN.05)
Multipart Param + Param1. Proven FileTypeId=63.
| Field | Persian | Type | Null? | Source |
|---|---|---|---|---|
| FileName | نام فایل | string | no | user (exact match to binary) |
| FileTypeId | نوع مدرک | number | no | lookup file-types / tenant ClaimFileTypeId |
| ClaimId | کد رایانه پرونده بدنه | number | no | stage 1 Id |
Stage 4 — Expertise (GEN.06)
Not ثالث GEN.08: no DmgCaseId, InspectionPlaceId, RepairWage on the root. Uses Wage + vehicle identity.
ClaimExpertId = FileReviewer CarBodyExpertiseClaim on V4/V5, else tenant ExpertiseClaimExpertId.
| Field | Persian | Type | Null? | Current source |
|---|---|---|---|---|
| ClaimExpertId | کارشناس ارزیاب بدنه | number | no | staff / tenant |
| DmgAssessmentDate | تاریخ بازدید | string Jalali | no | derived expert submittedAt |
| InspectionTime | ساعت بازدید | string | no | derived |
| MotorNo | شماره موتور | string | preferred | inquiry hull vehicle / party mapped MtrNum |
| ChassisNo | شماره شاسی | string | preferred | inquiry ShsNum |
| BuiltYear | سال ساخت | number | preferred | inquiry BuiltYear / PrdDte |
| VIN | VIN | string | preferred | inquiry |
| PlaqueNo | پلاک رشتهای | string | preferred | inquiry plk1+letter+plk3 |
| PlaqueSerial | سریال پلاک (ایران) | string | preferred | inquiry |
| ColorId | رنگ | number | preferred | inquiry GET vehicle by policy VehicleId |
| Wage | اجرت کل | number | no | user sum salary |
| ComponentReplacementCost | قطعه کل | number | no | user sum price |
| WasteValue | داغی کل | number | no | user daghi |
| RepairDuration | مدت تعمیر (روز) | number | no | system 3 |
| VehicleCurrentValue | ارزش روز خودرو | number | preferred | user vehicle.carPrice / vehicle.price, else inquiry policy VehicleValue |
| DropAmount | افت قیمت | number | no | user price-drop total or 0 |
| CarryAndRescueCost | حمل و نجات | number | yes | null |
| WreckHighestValue | بالاترین ارزش لاشه | number | yes | null |
| InspectionDeduction | کسر بازدید | number | yes | null |
| DmgAndWasteDesc | شرح خسارت و داغی | string | yes | null |
| WentDistanceByExpert | مسافت | number | yes | null |
| IsDestruction | اسقاط؟ | number | yes | null |
| PlaqueDesignId | طرح پلاک | number | yes | null |
| PlaqueCityId | شهر پلاک | number | yes | null |
| AccidentPercent | درصد حادثه | number | yes | null |
| TheftCases | موارد سرقت | array | empty [] |
system |
| DmgSections[].Count | تعداد | number | no | system 1 |
| DmgSections[].Desc | شرح قطعه | string | no | user part label |
| DmgSections[].WasteValue | داغی ردیف | number | no | user |
| DmgSections[].AccessoryKindId | نوع قطعه کاتالوگ | number | preferred | user partId · lookup car-components |
| DmgSections[].DmgKindId | نوع آسیب بدنه | number | no | lookup vehicle-hull-dmg-kind caption تخریب, fallback 5485 |
| DmgSections[].VehicleHullAccessoryId | شناسه لوازم بدنه | number | no | system 3043330 (فابریک) for every row |
| DmgSections[].DmgSectionCosts[].Caption | عنوان هزینه | string | no | user label |
| DmgSections[].DmgSectionCosts[].Amount | مبلغ (قطعه+اجرت) | number | no | user |
| DmgSections[].DmgSectionCosts[].DmgCostKindId | نوع هزینه | number | no | lookup vehicle-hull-dmg-cost-kinds caption مجموع لوازم, fallback 1 |
Lookups used: vehicle-hull-dmg-kind, vehicle-hull-dmg-cost-kinds, detection-accident-culprits, vehicle-hull-accident-types, vehicle-hull-accident-culprit-type, ans, optional vehicle-hull-policies/{id}/dmg-accessories (no longer used for AccessoryId).
Inquiries: body-policy/{PolicyId}, vehicleById (color + identity), parties inquiry, VIN/plate inquiry on blame.
YARA preview / submit
Same routes as ثالث (/base-claim, /attachments, /expertise).
/damage-case preview/submit skips for CAR_BODY.