Files
yara724api/docs/fanavaran/flow-design-user-vs-inquiry.md
2026-09-21 10:05:49 +03:30

11 KiB
Raw Blame History

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:

  1. Inquiries & lookups (Fanavaran / ESG / SandHub — no extra typing when they succeed)
  2. 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.