11 KiB
Fanavaran intake design — user vs inquiry (proposal)
This file is a proposed product design, not a description of every current default. Use it to decide which YARA screens should collect data and which calls should stay automatic.
Two intake channels only:
- Inquiries & lookups (Fanavaran / ESG / SandHub — no extra typing when they succeed)
- User input (owner, expert, file-maker, file-reviewer)
Persian titles match Fanavaran field captions where known. Types are what we send on the wire.
Related: third-party-stage-fields.md, car-body-stage-fields.md.
Shared identity (both products)
Collect once on the blame file. Inquiries reuse these keys.
| Persian | Field / storage | Type | Channel | Why |
|---|---|---|---|---|
| کد ملی بیمهگذار | nationalCodeOfInsurer |
string(10) | user | Policy inquiry key |
| تاریخ تولد (جلالی) | birthday |
string yyyy/mm/dd or yyyyMMdd |
user | Parties inquiry + GEN.44 |
| کد ملی راننده | nationalCodeOfDriver |
string(10) | user if driverIsInsurer=false |
Parties inquiry |
| راننده همان بیمهگذار است؟ | driverIsInsurer |
boolean | user | Chooses which national code / GEN.44 |
| شماره موبایل | phone | string | user | OTP / SMS, not Fanavaran |
| VIN / شماره شاسی | vin, chassis | string | inquiry first, user if miss | VIN inquiry, vehicle GET |
| شماره موتور | motorNo | string | inquiry, else user | GEN.06 / GEN.12 |
| پلاک (۲ رقم، حرف، ۳ رقم، ایران) | plate parts | string/number | user (photo/OCR later) then inquiry confirm | Plaque + policy match |
| سال ساخت | builtYear | number | inquiry, else user | GEN.12 / GEN.06 |
| نوع بدنه خودرو (سواری/شاسیبلند/…) | vehicle.carType |
enum string | user | Fallback VehicleKindId lookup |
Auto after identity
| Persian | Fanavaran field | Type | Call |
|---|---|---|---|
| شناسه بیمهنامه ثالث | PolicyId (ثالث) |
number | my-policies / processed-third-party-policy |
| شناسه بیمهنامه بدنه | PolicyId (بدنه) |
number | processed-body-policy / body-policy/{id} |
| شناسه شخص فناوران | DriverId / AccidentCulpritId |
number | inquiry-by-unique-identifier → else GEN.44 |
| شناسه مشتری بیمهنامه | CustomerId |
number | hull policy GET |
| حق بیمه | ActualPremium |
number | hull TotalPremium |
| ارزش روز خودرو (بیمهنامه) | VehicleCurrentValue seed |
number | hull VehicleValue → vehicle.carPrice |
| رنگ | ColorId |
number | vehicle GET |
| نوع کاربری | AccidentVehicleUsedId |
number | vehicle UsedId + vehicle-use-types |
| نوع خودرو فناوران | VehicleKindId |
number | VIN VehicleKindId or vehicle-kinds |
| مشخصات پلاک فناوران | PlaqueKindId / SampleId / … | number/string | VIN / vehicle GET |
Accident facts (both) — mostly user
| Persian | Field | Type | Channel |
|---|---|---|---|
| تاریخ حادثه | AccidentDate | Jalali date | user |
| ساعت حادثه | AccidentTime | HH:mm |
user |
| نشانی محل حادثه | AccidentLocationAddress | string | user (today hardcoded تهران) |
| شهر محل حادثه | AccidentCityId | number | user pick from cities (today 701) |
| علت حادثه | AccidentCauseId | number | user pick from accident-causes (today 6) |
| نحوه اعلام حادثه | AccidentReportTypeId | number | user or default from accident-report-type |
| کروکی — سری / سریال / شرح | PoliceReport* | string | user optional; null ok |
| خارج از مرز؟ | IsAccidentOutOfBorder | ans number | user default خیر |
Third-party only — proposed screens
File create (مقصر + زیاندیده)
| Persian | Field | Type | Channel |
|---|---|---|---|
| نقش طرفین | FIRST / SECOND | enum | user |
| مقصر کیست | guiltyPartyId | id | user expert decision |
| نوع مقصر | CulpritTypeId | number | user or default accident-culprit-type |
| شماره گواهینامه مقصر | CulpritLicenceNo | string | user (stop dummy when captured) |
| نوع گواهینامه مقصر | CulpritLicenceTypeId | number | user from driving-licence-types |
| تاریخ صدور گواهینامه | CulpritLicenceIssuDate | Jalali date | user |
| گواهینامه تعویضی؟ | IsLicenseReplacement | ans | user default خیر |
| قطعات آسیبدیده زیاندیده | selectedParts | catalog ids | user · car-components |
| نوع خودرو زیاندیده | carType | enum | user |
Expert pricing (ثالث)
| Persian | Field | Type | Channel |
|---|---|---|---|
| قیمت قطعه | parts[].price | money | user |
| اجرت | parts[].salary | money | user |
| داغی | parts[].daghi | money/object | user |
| شدت آسیب | AccidentLevel / typeOfDamage | number | user · accident-level |
| افت قیمت — دارد/ندارد + مبلغ | DropAmount* | number | user · drop-amount-status |
| محل بازدید | InspectionPlaceId | number | user or branch default · inspection-place |
| قیمت روز خودرو (اختیاری ثالث) | DamagedVehicleCurrentPrice | money | user |
Staff (V4/V5)
| Persian | Field | Type | Channel |
|---|---|---|---|
| کد کارشناس پرونده ثالث | FileMaker.ThirdPartyClaimExpertId | string/number | staff admin |
| کد ارزیاب ثالث | FileReviewer.ThirdPartyExpertiseClaim | string/number | staff admin |
Do not ask the owner for these.
Car-body only — proposed screens
Hull is first party. One vehicle, one policy.
File create
| Persian | Field | Type | Channel |
|---|---|---|---|
| نوع حادثه بدنه | AccidentTypeId | number | user from vehicle-hull-accident-types (default تصادف = 2) |
| نوع مقصر بدنه | CulpritTypeId | number | user from vehicle-hull-accident-culprit-type (default بیمهگذار = 300) |
| مرجع تعیین مقصر | AuthorityCulpritId | number | user from detection-accident-culprits (default بیمهگذار) |
| درصد تقصیر بیمهگذار | CustomerFaultPercent | number 0–100 | user if not 100%; today always 100 |
| تفکیک هزینه به نقاط | CostSeparationToDmgSections | ans | user default خیر |
| مالک تغییر یافته؟ | IsOwnerChanged | ans | user default خیر |
| گواهینامه تعویضی؟ | IsLicenseReplaced | ans or empty | must stay empty/null unless Fanavaran later requires a value |
| قطعات آسیبدیده | selectedParts | catalog ids | user |
Expert pricing (بدنه)
| Persian | Field | Type | Channel |
|---|---|---|---|
| قیمت قطعه / اجرت / داغی | price, salary, daghi | money | user |
| قیمت روز خودرو | vehicle.carPrice | money | user required; seed from policy VehicleValue |
| افت قیمت | DropAmount / priceDrop.total | money | user |
| مدت تعمیر (روز) | RepairDuration | number | system 3 unless product wants user |
| نوع آسیب ردیف | DmgKindId | number | default تخریب; optional user · vehicle-hull-dmg-kind |
| نوع هزینه ردیف | DmgCostKindId | number | default مجموع لوازم · vehicle-hull-dmg-cost-kinds |
| لوازم فابریک | VehicleHullAccessoryId | number | system 3043330 (do not ask user) |
Staff (V4/V5)
| Persian | Field | Type | Channel |
|---|---|---|---|
| کد کارشناس پرونده بدنه | FileMaker.CarBodyClaimExpertId | string/number | staff admin |
| کد ارزیاب بدنه | FileReviewer.CarBodyExpertiseClaim | string/number | staff admin |
If the matching code is missing, YARA must not create/review that product line.
Documents (both) — user files
| Persian | Typical key | Channel |
|---|---|---|
| کارت ملی / گواهینامه / کارت خودرو / پلاک فلزی | requiredDocuments | user photos |
| عکس زاویه خودرو / قطعه | damage + car-angle captures | user |
| فاکتور تعمیر | factor images | user when factorNeeded |
FileTypeId is lookup (file-types), not typed by the owner.
Lookups catalogue (for UI dropdowns)
Expose these as select lists; store the numeric Id.
| Persian UI | Lookup route | Used on |
|---|---|---|
| علت حادثه | /lookups/accident-causes |
GEN.03 |
| نوع اعلام حادثه | /lookups/accident-report-type |
GEN.03 |
| شهر | /lookups/cities |
GEN.03 city |
| بله/خیر | /lookups/ans |
hull flags |
| نوع مقصر ثالث | /lookups/accident-culprit-type |
ثالث GEN.03 |
| نوع مقصر بدنه | /lookups/vehicle-hull-accident-culprit-type |
بدنه GEN.03 |
| نوع حادثه بدنه | /lookups/vehicle-hull-accident-types |
بدنه GEN.03 |
| مرجع تعیین مقصر | /lookups/detection-accident-culprits |
بدنه GEN.03 |
| نوع گواهینامه | /lookups/driving-licence-types |
GEN.03 / GEN.12 |
| کاربری خودرو | /lookups/vehicle-use-types |
GEN.03 / GEN.12 |
| نوع خودرو | /lookups/vehicle-kinds |
GEN.12 |
| قطعات | /lookups/car-components |
parts / DmgSectionId |
| شدت آسیب | /lookups/accident-level |
ثالث expertise |
| محل بازدید | /lookups/inspection-place |
ثالث expertise |
| وضعیت افت | /lookups/drop-amount-status |
ثالث expertise |
| نوع آسیب بدنه | /lookups/vehicle-hull-dmg-kind |
بدنه expertise |
| نوع هزینه بدنه | /lookups/vehicle-hull-dmg-cost-kinds |
بدنه expertise |
| نوع فایل | /lookups/file-types |
attachments |
| جنسیت / تأهل / تابعیت / نوع شخص | gender, marital-status, countries, person-kind, ans | GEN.44 only if inquiry misses |
Inquiry helpers (not dropdowns): inquiry-by-vin, inquiry-by-unique-identifier, my-policies, processed-third-party-policy, processed-body-policy, third-party-policy/:id, body-policy/:id.
Suggested flow (what to collect, in order)
1. User: phone + national code + birthday + plate (and VIN if known)
2. Inquiry: policy + vehicle + person Id
3. If person missing → GEN.44 using user national code + birthday (submit time)
4. User: accident date/time/address + (بدنه) accident type / culprit authority
5. User: damaged parts
6. Expert: prices, daghi, carPrice (بدنه)
7. System: ClaimExpertId / expertise ClaimExpertId from staff profiles
8. System: POST stages in order (ثالث 1→2→3→4, بدنه 1→3→4)
Do not ask the user for: Fanavaran PolicyId, DriverId, CustomerId, ColorId, VehicleKindId, VehicleHullAccessoryId (فابریک), ActualPremium, FileTypeId, expert numeric ids.
Stop using dummies when the screen exists: CulpritLicenceNo, CulpritLicenceIssuDate, AccidentLocationAddress, AccidentCityId, AccidentCauseId. Until then, current defaults keep Fanavaran from rejecting the create.