forked from Yara724/api
feat: complete in-person claims without final sign
This commit is contained in:
@@ -1364,14 +1364,15 @@
|
||||
<div class="step-num teal">10</div>
|
||||
<div class="step-body">
|
||||
<div class="step-label">
|
||||
Owner sign on expert pricing (FileReviewer acts on
|
||||
behalf of user)
|
||||
Claim completes after expert work (no final owner
|
||||
signature)
|
||||
</div>
|
||||
<div class="step-route">
|
||||
PUT /claim-sign/:claimId
|
||||
Expert submits to Fanavaran manually when ready
|
||||
</div>
|
||||
<div class="step-note">
|
||||
Submits agree + branchId + signature image
|
||||
Mixed priced/factor claims still require priced-line
|
||||
acceptance before factor uploads
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1395,11 +1396,13 @@
|
||||
FileMaker steps are identical to V4 except
|
||||
<code>requiresFileMakerApproval=true</code> is set at creation. The
|
||||
FileReviewer steps are also identical to V4. The only difference is the
|
||||
tail: after the damage expert completes their review and the owner signs,
|
||||
tail: after the damage expert completes their review (and any required factors
|
||||
are validated),
|
||||
the claim moves to
|
||||
<strong>WAITING_FOR_FILE_MAKER_APPROVAL</strong> instead of proceeding
|
||||
directly to fanavaran submission. The FileMaker then approves (→ fanavaran)
|
||||
or rejects (→ back to WAITING_FOR_DAMAGE_EXPERT, max 2 rejections).
|
||||
directly to completion. The FileMaker then approves (→ COMPLETED; manual
|
||||
Fanavaran submission) or rejects (→ back to WAITING_FOR_DAMAGE_EXPERT,
|
||||
max 2 rejections).
|
||||
</p>
|
||||
<div class="card">
|
||||
<div class="roles-row">
|
||||
@@ -1468,7 +1471,7 @@
|
||||
Claim → WAITING_FOR_FILE_MAKER_APPROVAL
|
||||
</div>
|
||||
<div class="step-note">
|
||||
(instead of direct fanavaran submit)
|
||||
(before final completion; no owner signature)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1496,7 +1499,7 @@
|
||||
<div class="step-num orange">✓</div>
|
||||
<div class="step-body">
|
||||
<div class="step-label">
|
||||
Fanavaran submission (on approve)
|
||||
Claim COMPLETED (on approve)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1845,8 +1848,8 @@
|
||||
<td>DAMAGE_EXPERT</td>
|
||||
<td>DAMAGE_EXPERT</td>
|
||||
<td>DAMAGE_EXPERT</td>
|
||||
<td>DAMAGE_EXPERT → owner sign (FileReviewer)</td>
|
||||
<td>DAMAGE_EXPERT → owner sign → FileMaker approval</td>
|
||||
<td>DAMAGE_EXPERT → COMPLETED (manual Fanavaran submit)</td>
|
||||
<td>DAMAGE_EXPERT → FileMaker approval → COMPLETED (manual Fanavaran submit)</td>
|
||||
<td>DAMAGE_EXPERT (standard V2)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
<td><code>file_maker</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ارزیابی خسارت V4/V5 (فیلدهای تصادف، قطعات، عکسها، امضای مالک)</td>
|
||||
<td>ارزیابی خسارت V4/V5 (فیلدهای تصادف، قطعات و عکسها؛ تأیید خطوط قیمتگذاریشده در جریان ترکیبیِ فاکتور در صورت نیاز)</td>
|
||||
<td>فایلهای تخصیصیافته</td>
|
||||
<td>پنل بازبین فایل</td>
|
||||
<td><code>file_reviewer</code></td>
|
||||
@@ -451,7 +451,8 @@
|
||||
OTPها، استعلامها، موقعیت/توضیحات/صدا و امضاها برای هر دو طرف.
|
||||
همچنین اسناد اولیه خسارت (گواهینامهها، کارتهای خودرو) را بارگذاری میکند. پس از
|
||||
امضای دوم، فایل برای تحویل به بازبین فایل «مهرومومه» میشود. در V5، فایلساز
|
||||
در انتها بازمیگردد تا خسارت تکمیلشده را قبل از ارسال به فناوران تأیید یا رد کند.
|
||||
در انتها بازمیگردد تا خسارت تکمیلشده را تأیید یا رد کند. پس از تأیید،
|
||||
کارشناس پرونده را بهصورت دستی به فناوران ارسال میکند.
|
||||
</p>
|
||||
|
||||
<div class="card card-purple">
|
||||
@@ -475,10 +476,10 @@
|
||||
|
||||
<div class="card card-purple">
|
||||
<h3>تأیید خسارت V5 — <code>v5/file-maker/claim-approval/</code></h3>
|
||||
<p class="note">فقط در V5 استفاده میشود. پس از بررسی کارشناس خسارت و امضای مالک، خسارت وارد <code>WAITING_FOR_FILE_MAKER_APPROVAL</code> میشود.</p>
|
||||
<p class="note">فقط در V5 استفاده میشود. پس از بررسی کارشناس خسارت و اعتبارسنجی فاکتورهای لازم، خسارت وارد <code>WAITING_FOR_FILE_MAKER_APPROVAL</code> میشود؛ امضای نهایی مالک لازم نیست.</p>
|
||||
<table>
|
||||
<tr><th style="width:70px">متد</th><th>مسیر</th><th>توضیح</th></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>approve/:claimId</code></td><td>تأیید خسارت تکمیلشده ← ارسال SMS امضای مالک را فعال میکند ← پس از امضای مالک به فناوران ارسال میشود.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>approve/:claimId</code></td><td>تأیید خسارت تکمیلشده ← وضعیت خسارت <code>COMPLETED</code> میشود. کارشناس در زمان مناسب آن را بهصورت دستی به فناوران ارسال میکند.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>reject/:claimId</code></td><td>رد به بازبین فایل ← خسارت به WAITING_FOR_DAMAGE_EXPERT برمیگردد. محدودیت: حداکثر ۲ رد در هر خسارت؛ تلاش سوم ۴۲۲ با کد <code>FILE_MAKER_REJECTION_LIMIT_EXCEEDED</code> برمیگرداند.</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -489,7 +490,7 @@
|
||||
دومین اکتور در تقسیم V4/V5. بازبین فایل فایلهای مهرومومهشده (پس از اتمام کار
|
||||
فایلساز) را تحویل میگیرد و مرحله کامل ارزیابی خسارت را انجام میدهد: فیلدهای
|
||||
تصادف، دریافت الزامات عکسبرداری، بارگذاری اسناد (شاسی/موتور)، انتخاب قطعات،
|
||||
عکسهای قطعات، ویدیوی دور زدن خودرو، امضای مالک. تقصیر با car-capture به
|
||||
عکسهای قطعات و ویدیوی دور زدن خودرو. تقصیر با car-capture به
|
||||
COMPLETED علامتگذاری میشود. بازبین فایل همچنین دسترسی خواندن به پنل expert-claim
|
||||
برای خسارتهایی که بررسی میکند دارد.
|
||||
</p>
|
||||
@@ -499,8 +500,8 @@
|
||||
<p class="note">اندپوینتهای V4 و V5 یکسان هستند — فقط پیشوند تغییر میکند.</p>
|
||||
<table>
|
||||
<tr><th style="width:70px">متد</th><th>مسیر</th><th>توضیح</th></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files</code></td><td>فهرست تمام فایلهای تخصیصیافته به این بازبین فایل.</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files/:requestId</code></td><td>جزئیات کامل یک فایل (طرفین، گردش کار، فیلدهای کارشناس، شناسه خسارت مرتبط).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files</code></td><td>فهرست فایلهای مهرومومشدهٔ فایلساز که در شرکت بیمهٔ این بازبین برای دریافت آمادهاند، بهعلاوهٔ فایلهای تخصیصیافته به خود او.</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files/:requestId</code></td><td>جزئیات کامل یک فایل آماده برای دریافت یا تخصیصیافته، در شرکت بیمهٔ همین بازبین (طرفین، گردش کار، فیلدهای کارشناس، شناسه خسارت مرتبط).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>claim-id/:requestId</code></td><td>دریافت شناسه خسارت ایجادشده بهصورت خودکار (از استعلام طرف مقصر فایلساز).</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>accident-fields/:requestId</code></td><td>مرحله ۱ (بازبین): ذخیره فیلدهای تصادف (accidentWay، accidentReason، accidentType).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>capture-requirements/:claimId</code></td><td>الزامات عکسبرداری آگاه از مرحله (فاز اسناد پیش از عکسبرداری در مقابل فاز عکسبرداری قطعات).</td></tr>
|
||||
@@ -509,7 +510,7 @@
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>select-other-parts/:claimId</code></td><td>انتخاب سایر قطعات آسیبدیده (غیر بدنه).</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>capture-part/:claimId</code></td><td>عکسبرداری از قطعات + زوایا برای هر قطعه آسیبدیده انتخابشده.</td></tr>
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>car-capture/:claimId</code></td><td>ویدیوی دور زدن خودرو (آخرین مرحله عکسبرداری بازبین). خسارت ← <code>WAITING_FOR_DAMAGE_EXPERT</code>، تقصیر ← <code>COMPLETED</code>.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>claim-sign/:claimId</code></td><td>ثبت امضای مالک روی قیمتگذاری کارشناس به نمایندگی از طرف زیاندیده (موافقت + branchId + تصویر امضا).</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>claim-sign/:claimId</code></td><td>فقط برای خسارتهای ترکیبیِ قیمت/فاکتور: ثبت موافقت با خطوط قیمتگذاریشده پیش از بارگذاری فاکتور. امضای نهایی مالک دیگر لازم نیست.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>upload-video/:requestId</code></td><td class="dep">در V4/V5 بیاثر است — تقصیر از قبل توسط car-capture COMPLETED شده. موفقیت idempotent برمیگرداند.</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
<td><code>file_reviewer</code></td>
|
||||
<td>FileReviewer panel</td>
|
||||
<td>Assigned files</td>
|
||||
<td>V4/V5 damage assessment (accident fields, parts, captures, owner sign)</td>
|
||||
<td>V4/V5 damage assessment (accident fields, parts, captures; mixed-factor priced-line acceptance when needed)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>registrar</code></td>
|
||||
@@ -367,7 +367,7 @@
|
||||
<tr><td><span class="method post">POST</span></td><td><code>v2/expert-claim/assign/:claimRequestId</code></td><td>Lock claim to this expert. Returns <code>assigned</code>, <code>already_assigned_to_you</code>, or 409.</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>v2/expert-claim/request/:claimRequestId/price-drop</code></td><td>Price-drop context: severity labels, coefficient catalog, damaged parts + mapping, suggested car year from blame inquiry.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>v2/expert-claim/request/:claimRequestId/price-drop</code></td><td>Calculate and persist price-drop: carPrice × yearCoeff × sumOfCoeffs ÷ 400.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>v2/expert-claim/reply/submit/:claimRequestId</code></td><td>Submit damage assessment reply (priced parts list, daghi, branchId). Cap: total ≤ 53 000 000 Toman. Depending on factorNeeded flags moves claim to owner-sign, mixed-factors-pending, or factor-validation queue.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>v2/expert-claim/reply/submit/:claimRequestId</code></td><td>Submit damage assessment reply (priced parts list, daghi, branchId). Cap: total ≤ 53 000 000 Toman. A priced-only claim completes immediately; factor claims continue through factor collection/validation. No final owner signature or automatic Fanavaran submission.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>v2/expert-claim/reply/resend/:claimRequestId</code></td><td>Request user to resend documents/photos. One resend per claim lifecycle; returns 422 if already fulfilled.</td></tr>
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>v2/expert-claim/:claimRequestId/visit</code></td><td>Ask user to come in person. Unlocks claim, sets claimStatus to NEEDS_REVISION.</td></tr>
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>v2/expert-claim/validate-factors/:claimRequestId</code></td><td>Validate uploaded repair factor invoices. Approve or reject each factor line with totalPayment. Cap applies across all lines (≤ 53 000 000 Toman). Auto-completes when all lines are decided.</td></tr>
|
||||
@@ -444,7 +444,8 @@
|
||||
OTPs, inquiries, location/description/voice, and signatures for both parties.
|
||||
They also upload the initial claim documents (licences, car cards). After the second
|
||||
signature the file is "sealed" for FileReviewer pickup. In V5, FileMaker comes
|
||||
back at the end to approve or reject the completed claim before fanavaran submission.
|
||||
back at the end to approve or reject the completed claim. After approval, an
|
||||
expert submits the case to Fanavaran manually.
|
||||
</p>
|
||||
|
||||
<div class="card card-purple">
|
||||
@@ -468,10 +469,10 @@
|
||||
|
||||
<div class="card card-purple">
|
||||
<h3>V5 claim approval — <code>v5/file-maker/claim-approval/</code></h3>
|
||||
<p class="note">Used only in V5. After damage expert review and owner sign, claim enters <code>WAITING_FOR_FILE_MAKER_APPROVAL</code>.</p>
|
||||
<p class="note">Used only in V5. After damage expert review and any required factor validation, claim enters <code>WAITING_FOR_FILE_MAKER_APPROVAL</code>; no final owner signature is needed.</p>
|
||||
<table>
|
||||
<tr><th style="width:70px">Method</th><th>Route</th><th>What it does</th></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>approve/:claimId</code></td><td>Approve the completed claim → triggers owner sign SMS → fanavaran submission after owner signs.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>approve/:claimId</code></td><td>Approve the completed claim → claim becomes <code>COMPLETED</code>. An expert submits to Fanavaran manually when ready.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>reject/:claimId</code></td><td>Reject back to FileReviewer → claim returns to WAITING_FOR_DAMAGE_EXPERT. Limit: max 2 rejections per claim; 3rd attempt returns 422 <code>FILE_MAKER_REJECTION_LIMIT_EXCEEDED</code>.</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
@@ -482,7 +483,7 @@
|
||||
The second actor in the V4/V5 split. FileReviewer picks up sealed files (after
|
||||
FileMaker is done) and performs the full damage assessment pass: accident fields,
|
||||
capture requirements lookup, document upload (chassis/engine), part selection,
|
||||
part photos, walk-around video, owner signature. The blame is marked COMPLETED
|
||||
part photos and walk-around video. The blame is marked COMPLETED
|
||||
by car-capture. FileReviewer also has read access to the expert-claim panel for
|
||||
claims they are reviewing.
|
||||
</p>
|
||||
@@ -492,8 +493,8 @@
|
||||
<p class="note">V4 and V5 endpoints are identical — only the prefix changes.</p>
|
||||
<table>
|
||||
<tr><th style="width:70px">Method</th><th>Route</th><th>What it does</th></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files</code></td><td>List all files assigned to this FileReviewer.</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files/:requestId</code></td><td>Full detail for one file (parties, workflow, expert fields, linked claim ID).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files</code></td><td>List FileMaker-sealed files available to claim in this reviewer’s insurer, plus files already assigned to this FileReviewer.</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>my-files/:requestId</code></td><td>Full detail for one available or assigned file in this reviewer’s insurer (parties, workflow, expert fields, linked claim ID).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>claim-id/:requestId</code></td><td>Get the auto-created claim ID (from FileMaker's guilty-party inquiry).</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>accident-fields/:requestId</code></td><td>Step 1 (FileReviewer): save accident fields (accidentWay, accidentReason, accidentType).</td></tr>
|
||||
<tr><td><span class="method get">GET</span></td><td><code>capture-requirements/:claimId</code></td><td>Step-aware capture requirements (pre-capture docs phase vs capture-parts phase).</td></tr>
|
||||
@@ -502,7 +503,7 @@
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>select-other-parts/:claimId</code></td><td>Select other (non-body) damaged parts.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>capture-part/:claimId</code></td><td>Capture part photos + angles for each selected damaged part.</td></tr>
|
||||
<tr><td><span class="method patch">PATCH</span></td><td><code>car-capture/:claimId</code></td><td>Walk-around video (final FileReviewer capture step). Claim → <code>WAITING_FOR_DAMAGE_EXPERT</code>, blame → <code>COMPLETED</code>.</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>claim-sign/:claimId</code></td><td>Submit owner signature on expert pricing on behalf of the damaged party (agree + branchId + signature image).</td></tr>
|
||||
<tr><td><span class="method put">PUT</span></td><td><code>claim-sign/:claimId</code></td><td>For mixed priced/factor claims only: record acceptance of priced lines before factor uploads. A final owner signature is no longer required.</td></tr>
|
||||
<tr><td><span class="method post">POST</span></td><td><code>upload-video/:requestId</code></td><td class="dep">No-op in V4/V5 — blame already COMPLETED by car-capture. Returns idempotent success.</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user