مرجع نقش‌های پنل

آنچه هر نقش می‌تواند ببیند و انجام دهد — اندپوینت‌ها، مسئولیت‌ها و مراحل فرآیند. سوپر ادمین در این مستند نیست.

نقش‌های پوشش‌داده‌شده
  1. بیمه‌گر (COMPANY) — ادمین تنانت شرکت بیمه
  2. کارشناس تقصیر (EXPERT) — صف بررسی اختلاف
  3. کارشناس خسارت (DAMAGE_EXPERT) — قیمت‌گذاری خسارت
  4. کارشناس میدانی (FIELD_EXPERT) — ثبت حضوری در صحنه
  5. فایل‌ساز (FILE_MAKER) — روایت طرفین در V4/V5
  6. بازبین فایل (FILE_REVIEWER) — ارزیابی خسارت V4/V5
  7. ثبات (REGISTRAR) — ثبت اداری حضوری
  8. مرکز تماس (CALL_CENTER) — ثبت تلفنی V6

نمای کلی نقش‌ها

وظیفه اصلی محدوده پنل ورود enum نقش
مشاهده تمام فایل‌ها؛ مدیریت شعب و کارشناسان؛ گزارش‌گیری؛ امتیازدهی به کارشناسان سطح تنانت پورتال بیمه‌گر company
قفل‌کردن پرونده‌های تقصیر، بررسی اسناد طرفین، صدور رأی یا درخواست ارسال مجدد صف DISAGREEMENT تنانت پنل کارشناس تقصیر expert
قفل‌کردن خسارت، قیمت‌گذاری، اعتبارسنجی فاکتورها، درخواست ارسال مجدد/بازدید صف خسارت تنانت پنل خسارت damage_expert
ثبت حضوری تقصیر + خسارت در V2/V3؛ دسترسی به پنل‌های تقصیر/خسارت فایل‌های ساخته‌شده توسط خود پنل کارشناس میدانی field_expert
روایت طرفین V4/V5 (OTP، استعلام، جزئیات، امضا)؛ تأیید خسارت در V5 فایل‌های ساخته‌شده توسط خود پنل فایل‌ساز file_maker
ارزیابی خسارت V4/V5 (فیلدهای تصادف، قطعات، عکس‌ها، امضای مالک) فایل‌های تخصیص‌یافته پنل بازبین فایل file_reviewer
ثبت حضوری اداری تقصیر + خسارت به نمایندگی از طرفین فایل‌های ساخته‌شده توسط خود پنل ثبات registrar
ثبت تلفنی V6: اجرای استعلام، ارسال لینک؛ کاربر بقیه را تکمیل می‌کند فایل‌های ساخته‌شده توسط خود پنل مرکز تماس call_center

۱ — بیمه‌گر company

به ازای هر تنانت شرکت بیمه یک اکتور company وجود دارد. پورتال بیمه‌گر لایه مدیریتی است: می‌تواند همه چیز زیر تنانت خود را ببیند، لیست کارشناسان را مدیریت کند، شعب را اداره کند، تنظیمات رسانه‌ای هر تنانت را پیکربندی کند و گزارش‌های آماری استخراج کند. بیمه‌گر هرگز مستقیماً با مراحل تقصیر/خسارت درگیر نمی‌شود — فقط نظاره‌گر و امتیازدهنده است.

مدیریت فایل — expert-insurer/

متدمسیرتوضیح
GETexpert-insurer/filesفهرست تمام فایل‌های تقصیر + خسارت تنانت (ادغام‌شده بر اساس publicId). فیلترپذیر بر اساس وضعیت، نوع فایل، جستجو، مرتب‌سازی، صفحه.
GETexpert-insurer/files/:publicIdجزئیات کامل یک فایل بر اساس publicId.
GETexpert-insurer/files/:publicId/timelineتایم‌لاین فعالیت به ترتیب زمانی (تمام رویدادهای تاریخچه: منبع، نوع، اکتور، متادیتا).
GETexpert-insurer/files/:publicId/reportداده‌های ساختاریافته گزارش برای تولید PDF (بخش‌های مالک، راننده، بیمه، خودرو، تصادف).
PUTexpert-insurer/files/:publicId/ratingامتیازدهی به کارشناسان یک فایل (۱–۵ در هر بُعد: روش تصادف، به‌موقع‌بودن، دقت علت، دقت شناسایی مقصر، امتیاز ربات).
GETexpert-insurer/report/unified-file-statusesکاتالوگ وضعیت یکپارچه + تعداد به ازای هر وضعیت برای کل پرتفولیوی تنانت. فیلترپذیر بر اساس fileType و بازه تاریخ.
GETexpert-insurer/report/status-countsمنسوخ‌شده — از unified-file-statuses استفاده کنید.

مدیریت شعب — expert-insurer/branches

متدمسیرتوضیح
GETexpert-insurer/branchesفهرست تمام شعب این بیمه‌گر. پارامترها: جستجو، بازه تاریخ from/to، فیلتر isActive.
POSTexpert-insurer/branchesافزودن شعبه جدید (نام، کد، آدرس، شهر، تلفن و غیره).
PUTexpert-insurer/branches/:branchId/statusفعال یا غیرفعال کردن یک شعبه.

مدیریت لیست کارشناسان — expert-insurer/experts

متدمسیرتوضیح
POSTexpert-insurer/experts/blameایجاد حساب کارشناس تقصیر جدید زیر این بیمه‌گر.
POSTexpert-insurer/experts/claimایجاد حساب کارشناس خسارت جدید زیر این بیمه‌گر.
POSTexpert-insurer/experts/file-makerایجاد حساب فایل‌ساز جدید زیر این بیمه‌گر.
POSTexpert-insurer/experts/file-reviewerایجاد حساب بازبین فایل جدید زیر این بیمه‌گر.
GETexpert-insurer/experts/listفهرست صفحه‌بندی‌شده تمام حساب‌های کارشناس در این تنانت.
GETexpert-insurer/experts/topبرترین کارشناسان تقصیر و خسارت رتبه‌بندی‌شده بر اساس میانگین امتیاز کلی (حداکثر ۱۰ نفر از هر نوع).
GETexpert-insurer/top-expertsنام مستعار experts/top (سازگاری با فرانت‌اند).
GETexpert-insurer/:expertIdفایل‌های رسیدگی‌شده توسط یک کارشناس (ردیف‌های خلاصه — تقصیر یا خسارت بسته به نوع کارشناس).

آمار و گزارش‌ها

متدمسیرتوضیح
GETexpert-insurer/statisticsکارت‌های KPI: totalFilesReviewed، averageUserRating، inPersonCount، filesThisMonth، objectionPercentage و غیره. فیلترپذیر بر اساس بازه تاریخ.
GETexpert-insurer/top-files۱۰ فایل خسارت برتر بر اساس بالاترین امتیاز (ترکیبی از امتیاز بیمه‌گر + کاربر).
GETexpert-insurer/expert-work-logلاگ کاری هر کارشناس: totalHandled، currentlyChecking، distinctFilesCheckedInPeriod. فیلترپذیر بر اساس expertKind و بازه تاریخ.
GETreports/report/insurer/requestsتعداد خسارت + وضعیت تقصیر + تعداد فایل یکپارچه برای تنانت.
GETreports/report/insurer/per-month-requestsهمان خلاصه، تفکیک‌شده بر اساس ۵ ماه تقویمی اخیر.
GETreports/report/insurer/checked-requestsهمان خلاصه، فیلترشده بر اساس بازه زمانی اختیاری createdAt.
GETreports/report/insurer/expert-work-logلاگ کاری کارشناسان (مجموعه‌های کارشناس تقصیر و خسارت، نه کارشناسان میدانی).
GETreports/report/insurer/expert-work-log/per-monthهمان لاگ کاری تفکیک‌شده بر اساس ماه تقویمی (۵ ماه اخیر).

تنظیمات تنانت — client-panel/

متدمسیرتوضیح
GETclient-panel/settingsدریافت محدودیت‌های رسانه‌ای هر تنانت (حداکثر بایت ویدیو/تصویر/صوت) و پنجره زمانی تصادف CAR_BODY (روز).
PATCHclient-panel/settingsبه‌روزرسانی جزئی این تنظیمات. نمی‌تواند از سقف‌های سطح سیستم تجاوز کند.

۲ — کارشناس تقصیر expert

فایل‌های تقصیر در صف DISAGREEMENT را بررسی می‌کند — پرونده‌هایی که دو طرف درباره مقصر بودن توافق ندارند. پس از بررسی اسناد و اظهارات طرفین، کارشناس پرونده را قفل می‌کند، سپس یا رأی صادر می‌کند، درخواست ارسال مجدد اسناد می‌دهد، یا نتیجه بازدید حضوری را ثبت می‌کند. تمام اندپوینت‌ها زیر v2/expert-blame/ هستند.

فرآیند

۱ مرور فهرست ← ۲ تخصیص (قفل) پرونده ← ۳ بررسی مدارک طرفین (ویدیو، صدا، اسناد) ← ۴الف صدور رأی یا ۴ب درخواست ارسال مجدد اسناد یا ۴پ ثبت بازدید حضوری.

اندپوینت‌ها — v2/expert-blame/

متدمسیرتوضیح
GETv2/expert-blame/فهرست پرونده‌های تقصیر در صف DISAGREEMENT (موجود، قفل‌شده توسط من، یا تصمیم‌گرفته‌شده توسط من). پارامترها: search، sortBy، sortOrder، page، limit، unifiedStatus، fileType.
GETv2/expert-blame/:idجزئیات کامل یک پرونده تقصیر (اظهارات، عکس، صدا، ویدیو طرفین).
POSTv2/expert-blame/:id/assignبررسی در دسترس بودن و قفل پرونده برای این کارشناس. بازمی‌گرداند: assigned، already_assigned_to_you، یا ۴۰۹ در صورتی که شخص دیگری آن را نگه داشته باشد.
PUTv2/expert-blame/reply/submit/:idارسال رأی (accidentWay، accidentReason، accidentType، تصمیم طرف مقصر). پرونده را آزاد می‌کند و به COMPLETED منتقل می‌کند.
PUTv2/expert-blame/reply/resend/:idدرخواست از طرفین برای بارگذاری مجدد اسناد. تقصیر را به WAITING_FOR_RESEND تنظیم می‌کند. یک درخواست ارسال مجدد در هر چرخه عمر.
PUTv2/expert-blame/reply/inPerson/:idثبت اینکه بازدید حضوری انجام شده و صدور رأی.
GETv2/expert-blame/report/unified-file-statusesکاتالوگ وضعیت + تعداد به ازای هر وضعیت برای پرتفولیوی این کارشناس.
GETv2/expert-blame/report/status-countsمنسوخ‌شده — از unified-file-statuses استفاده کنید.
PUTv2/expert-blame/lock/:idاندپوینت قفل منسوخ‌شده — از POST assign استفاده کنید.

۳ — کارشناس خسارت damage_expert

فایل‌های خسارت را پس از ارسال مدارک خسارت توسط کاربر بررسی می‌کند. کارشناس هر قطعه آسیب‌دیده را قیمت‌گذاری می‌کند، به‌صورت اختیاری کاهش قیمت (استهلاک) محاسبه می‌کند، و می‌تواند از کاربر بخواهد مدارک را مجدداً ارسال کند، حضوری مراجعه کند، یا فاکتورهای تعمیرگاه را هنگام نیاز به قیمت‌گذاری کارگاهی بارگذاری کند. تمام اندپوینت‌ها زیر v2/expert-claim/ هستند.

فرآیند

۱ مرور فهرست ← ۲ تخصیص (قفل) خسارت ← ۳ بررسی عکس‌ها و اسناد خسارت ← ۴ ویرایش اختیاری قطعات انتخاب‌شده یا محاسبه کاهش قیمت ← ۵الف ارسال پاسخ قیمت‌گذاری‌شده یا ۵ب درخواست ارسال مجدد یا ۵پ درخواست بازدید حضوری ← ۶ در صورت وجود قطعات فاکتوردار: اعتبارسنجی فاکتورهای تعمیرگاه بارگذاری‌شده.

اندپوینت‌ها — v2/expert-claim/

متدمسیرتوضیح
GETv2/expert-claim/requestsفهرست خسارت‌ها در صف WAITING_FOR_DAMAGE_EXPERT + صف اعتبارسنجی فاکتور. پارامترها: search، sortBy، page، limit، unifiedStatus، fileType.
GETv2/expert-claim/request/:claimRequestIdجزئیات کامل خسارت: قطعات آسیب‌دیده، تصاویر گرفته‌شده، اسناد، priceDrop، داده طرف بلیم، آدرس‌های ویدیو.
POSTv2/expert-claim/assign/:claimRequestIdقفل خسارت برای این کارشناس. بازمی‌گرداند: assigned، already_assigned_to_you، یا ۴۰۹.
GETv2/expert-claim/request/:claimRequestId/price-dropمحتوای کاهش قیمت: برچسب‌های شدت، کاتالوگ ضریب، قطعات آسیب‌دیده + نگاشت، سال پیشنهادی خودرو از استعلام تقصیر.
PUTv2/expert-claim/request/:claimRequestId/price-dropمحاسبه و ذخیره کاهش قیمت: قیمت خودرو × ضریب سال × مجموع ضرایب ÷ ۴۰۰.
PUTv2/expert-claim/reply/submit/:claimRequestIdارسال پاسخ ارزیابی خسارت (لیست قطعات قیمت‌گذاری‌شده، داغی، branchId). سقف: کل ≤ ۵۳،۰۰۰،۰۰۰ تومان. بسته به پرچم‌های factorNeeded، خسارت را به owner-sign، mixed-factors-pending، یا صف اعتبارسنجی فاکتور منتقل می‌کند.
PUTv2/expert-claim/reply/resend/:claimRequestIdدرخواست از کاربر برای ارسال مجدد اسناد/عکس‌ها. یک ارسال مجدد در هر چرخه خسارت؛ در صورت تکمیل قبلی ۴۲۲ برمی‌گرداند.
PATCHv2/expert-claim/:claimRequestId/visitدرخواست از کاربر برای مراجعه حضوری. خسارت را آزاد می‌کند، وضعیت claimStatus را به NEEDS_REVISION تنظیم می‌کند.
PATCHv2/expert-claim/validate-factors/:claimRequestIdاعتبارسنجی فاکتورهای تعمیرگاه بارگذاری‌شده. تأیید یا رد هر خط فاکتور با totalPayment. سقف برای تمام خطوط اعمال می‌شود (≤ ۵۳،۰۰۰،۰۰۰ تومان). پس از تصمیم‌گیری درباره تمام خطوط، به‌صورت خودکار تکمیل می‌شود.
PATCHv2/expert-claim/request/:claimRequestId/damaged-partsویرایش قطعات آسیب‌دیده انتخاب‌شده در حالی که خسارت توسط این کارشناس قفل است (EXPERT_REVIEWING).
GETv2/expert-claim/outer-parts-catalogکاتالوگ قطعات بیرونی خودرو فناوران (مشترک با جریان کاربر).
GETv2/expert-claim/inner-parts-catalogJSON ثابت کاتالوگ قطعات داخلی خودرو.
GETv2/expert-claim/branchesشعب بیمه‌گر برای تنانت این کارشناس (برای انتخاب داغی/شعبه در پیلود پاسخ).
GETv2/expert-claim/stream/:id/videoپخش ویدیوی خسارت (ویدیوی دور زدن خودرو یا ویدیوی تصادف). پارامتر: query=car-capture|accident.
GETv2/expert-claim/report/unified-file-statusesکاتالوگ وضعیت + تعداد برای پرتفولیوی خسارت این کارشناس.
GETv2/expert-claim/report/status-countsمنسوخ‌شده — از unified-file-statuses استفاده کنید.
PUTv2/expert-claim/lock/:claimRequestIdاندپوینت قفل منسوخ‌شده — از POST assign استفاده کنید.

۴ — کارشناس میدانی field_expert

به صحنه تصادف می‌رود و فرم‌های هر دو طرف را حضوری پر می‌کند (جریان V2 mirror / V3). کارشناس میدانی همچنین دسترسی خواندن به پنل‌های expert-blame و expert-claim دارد (محدود به فایل‌های خودش). تنها نقشی است که هم ثبت تقصیر و هم ثبت خسارت را در یک جلسه انجام می‌دهد.

ثبت تقصیر — v2/expert-initiated/blame-request-management/

آینه‌ای از API تقصیر کاربر. فرانت‌اند همان صفحات را با تغییر فقط پیشوند مسیر بازاستفاده می‌کند.

متدمسیرتوضیح
POSTPOST /ایجاد فایل تقصیر IN_PERSON.
POSTsend-party-otp/:idارسال OTP به یک طرف از طریق شماره تلفن (بدون لینک دعوت).
POSTverify-party-otp/:idتأیید OTP یک طرف و اتصال حساب آنها.
POSTblame-confession/:idثبت اعتراف تقصیر طرف.
POSTcar-body-form/:id[فقط CAR_BODY] فرم نوع تصادف.
POSTrun-inquiries/:id / run-inquiries-vin/:idفرم اولیه / استعلام پلاک یا VIN برای طرف فعلی.
POSTupload-video/:idبارگذاری ویدیوی طرف اول.
POSTadd-detail-location/:idافزودن موقعیت GPS برای طرف فعلی.
POSTupload-voice/:idبارگذاری ضبط صوتی برای طرف فعلی.
POSTadd-detail-description/:idافزودن توضیحات برای طرف فعلی.
POSTadd-second-party/:phone/:id/پیشروی به طرف دوم (بدون ارسال لینک SMS).
PUTsign/:idبارگذاری امضای طرف (اول سپس دوم، پارامتر partyRole).
POSTaccident-fields/:idذخیره فیلدهای تصادف و تکمیل فوری تقصیر (بدون صف کارشناس).

ثبت تقصیر + خسارت V3 — v3/expert-initiated/blame-request-management/

ترتیب مراحل بازسازمان‌دهی‌شده: ابتدا تمام روایت طرفین، سپس ارزیابی خسارت. هم تقصیر هم خسارت در این کنترلر واحد مدیریت می‌شوند.

متدمسیرتوضیح
POSTPOST / ← send-party-otp ← verify-party-otp ← run-inquiries ← add-detail-* ← sign (×۲)مرحله روایت طرفین (مراحل ۱–۸) — اندپوینت‌های یکسان با mirror، همان قرارداد.
POSTaccident-fields/:idمرحله ۹: ذخیره فیلدهای تصادف پس از امضای هر دو طرف.
GETclaim-id/:requestIdمرحله ۱۰: دریافت شناسه خسارت ایجادشده به‌صورت خودکار.
POSTupload-document/:claimIdمرحله ۱۱: بارگذاری اسناد گواهینامه / کارت خودرو.
PATCHselect-outer-parts/:claimId / select-other-parts/:claimIdمراحل ۱۲–۱۳: انتخاب قطعات آسیب‌دیده.
POSTcapture-part/:claimIdمرحله ۱۴: عکس‌برداری از قطعات + زوایا.
PATCHcar-capture/:claimIdمرحله ۱۵: ویدیوی دور زدن خودرو.
POSTupload-video/:requestIdمرحله ۱۶: ویدیوی تصادف تقصیر (نهایی) ← WAITING_FOR_EXPERT (THIRD_PARTY) یا COMPLETED (CAR_BODY).

دسترسی به پنل expert-blame + expert-claim (خواندن + اقدام روی فایل‌های خود)

FIELD_EXPERT مسیر v2/expert-blame/ را محدود به فایل‌های ساخته‌شده توسط خودش می‌بیند (نه صف اختلاف). همچنین v2/expert-claim/ را برای خسارت‌های مرتبط با فایل‌های تقصیرش می‌بیند. اندپوینت‌های یکسان با پنل‌های کارشناس تقصیر و کارشناس خسارت در بالا.

۵ — فایل‌ساز file_maker

اولین اکتور در تقسیم V4/V5. فایل‌ساز روایت طرفین را در محل انجام می‌دهد: OTPها، استعلام‌ها، موقعیت/توضیحات/صدا و امضاها برای هر دو طرف. همچنین اسناد اولیه خسارت (گواهینامه‌ها، کارت‌های خودرو) را بارگذاری می‌کند. پس از امضای دوم، فایل برای تحویل به بازبین فایل «مهرومومه» می‌شود. در V5، فایل‌ساز در انتها بازمی‌گردد تا خسارت تکمیل‌شده را قبل از ارسال به فناوران تأیید یا رد کند.

ثبت تقصیر — v4/file-maker/blame-request-management/ و v5/…

اندپوینت‌های V4 و V5 یکسان هستند — فقط پیشوند تغییر می‌کند. V5 هنگام ایجاد requiresFileMakerApproval=true را تنظیم می‌کند.

متدمسیرتوضیح
POSTPOST /ایجاد فایل تقصیر IN_PERSON.
GETmy-filesفهرست تمام فایل‌های تقصیر ایجادشده توسط این فایل‌ساز.
GETmy-files/:requestIdجزئیات کامل یک فایل (طرفین، گردش کار، شناسه خسارت مرتبط).
GETclaim-id/:requestIdدریافت شناسه خسارت ایجادشده به‌صورت خودکار پس از استعلام طرف مقصر.
POSTsend-party-otp/:id / verify-party-otp/:idارسال + تأیید OTP برای یک طرف در هر بار (ابتدا مقصر، سپس زیان‌دیده).
POSTcar-body-form/:id[فقط CAR_BODY] فرم نوع تصادف.
POSTrun-inquiries/:id / run-inquiries-vin/:idاجرای استعلام پلاک یا VIN. فراخوانی اول = مقصر (+ خودکار خسارت ایجاد می‌کند). فراخوانی دوم = زیان‌دیده (فقط THIRD_PARTY).
POSTadd-detail-location/:id / add-detail-description/:id / upload-voice/:idافزودن موقعیت، توضیحات و صدا برای طرف فعلی (پارامتر partyRole، FIRST/SECOND را انتخاب می‌کند).
PUTsign/:idبارگذاری امضای طرف (partyRole=FIRST سپس SECOND). پس از امضای دوم، فایل مهرومومه می‌شود.
POSTupload-document/:claimIdبارگذاری گواهینامه / کارت‌های خودرو روی خسارت ایجادشده به‌صورت خودکار.
GETcapture-requirements/:claimIdالزامات عکس‌برداری آگاه از مرحله (فازها: اسناد پیش از عکس‌برداری در مقابل قطعات آسیب‌دیده + شاسی/موتور).

تأیید خسارت V5 — v5/file-maker/claim-approval/

فقط در V5 استفاده می‌شود. پس از بررسی کارشناس خسارت و امضای مالک، خسارت وارد WAITING_FOR_FILE_MAKER_APPROVAL می‌شود.

متدمسیرتوضیح
POSTapprove/:claimIdتأیید خسارت تکمیل‌شده ← ارسال SMS امضای مالک را فعال می‌کند ← پس از امضای مالک به فناوران ارسال می‌شود.
POSTreject/:claimIdرد به بازبین فایل ← خسارت به WAITING_FOR_DAMAGE_EXPERT برمی‌گردد. محدودیت: حداکثر ۲ رد در هر خسارت؛ تلاش سوم ۴۲۲ با کد FILE_MAKER_REJECTION_LIMIT_EXCEEDED برمی‌گرداند.

۶ — بازبین فایل file_reviewer

دومین اکتور در تقسیم V4/V5. بازبین فایل فایل‌های مهرومومه‌شده (پس از اتمام کار فایل‌ساز) را تحویل می‌گیرد و مرحله کامل ارزیابی خسارت را انجام می‌دهد: فیلدهای تصادف، دریافت الزامات عکس‌برداری، بارگذاری اسناد (شاسی/موتور)، انتخاب قطعات، عکس‌های قطعات، ویدیوی دور زدن خودرو، امضای مالک. تقصیر با car-capture به COMPLETED علامت‌گذاری می‌شود. بازبین فایل همچنین دسترسی خواندن به پنل expert-claim برای خسارت‌هایی که بررسی می‌کند دارد.

ارزیابی خسارت — v4/file-reviewer/blame-request-management/ و v5/…

اندپوینت‌های V4 و V5 یکسان هستند — فقط پیشوند تغییر می‌کند.

متدمسیرتوضیح
GETmy-filesفهرست تمام فایل‌های تخصیص‌یافته به این بازبین فایل.
GETmy-files/:requestIdجزئیات کامل یک فایل (طرفین، گردش کار، فیلدهای کارشناس، شناسه خسارت مرتبط).
GETclaim-id/:requestIdدریافت شناسه خسارت ایجادشده به‌صورت خودکار (از استعلام طرف مقصر فایل‌ساز).
POSTaccident-fields/:requestIdمرحله ۱ (بازبین): ذخیره فیلدهای تصادف (accidentWay، accidentReason، accidentType).
GETcapture-requirements/:claimIdالزامات عکس‌برداری آگاه از مرحله (فاز اسناد پیش از عکس‌برداری در مقابل فاز عکس‌برداری قطعات).
POSTupload-document/:claimIdبارگذاری اسناد شاسی / موتور / پلاک فلزی.
PATCHselect-outer-parts/:claimIdانتخاب قطعات آسیب‌دیده بیرونی (بدنه).
PATCHselect-other-parts/:claimIdانتخاب سایر قطعات آسیب‌دیده (غیر بدنه).
POSTcapture-part/:claimIdعکس‌برداری از قطعات + زوایا برای هر قطعه آسیب‌دیده انتخاب‌شده.
PATCHcar-capture/:claimIdویدیوی دور زدن خودرو (آخرین مرحله عکس‌برداری بازبین). خسارت ← WAITING_FOR_DAMAGE_EXPERT، تقصیر ← COMPLETED.
PUTclaim-sign/:claimIdثبت امضای مالک روی قیمت‌گذاری کارشناس به نمایندگی از طرف زیان‌دیده (موافقت + branchId + تصویر امضا).
POSTupload-video/:requestIdدر V4/V5 بی‌اثر است — تقصیر از قبل توسط car-capture COMPLETED شده. موفقیت idempotent برمی‌گرداند.

دسترسی به پنل expert-claim

FILE_REVIEWER در نقش‌های مجاز برای v2/expert-claim/ است. می‌تواند جزئیات خسارت را مشاهده کند و جریان assign/lock را برای خسارت‌های مرتبط با فایل‌هایش اجرا کند. نمی‌تواند به‌طور مستقل درخواست ارسال مجدد کارشناس خسارت را آغاز کند.

۷ — ثبات registrar

نقش اداری که تقصیر و خسارت حضوری را به نمایندگی از طرفین ثبت می‌کند. از جریان OTP دسته‌ای استفاده می‌کند (OTPهای هر دو طرف به‌صورت همزمان ارسال و تأیید می‌شوند) به جای OTP یک‌به‌یک که توسط کارشناسان میدانی استفاده می‌شود. پس از تقصیر، ثبات آینه API خسارت کاربر را دنبال می‌کند تا انتخاب قطعات، اسناد و عکس‌برداری را پر کند. سپس فایل وارد چرخه عادی بررسی کارشناس خسارت می‌شود.

ثبت تقصیر — registrar-initiated-blame/

توجه: @ApiExcludeController — مسیرها وجود دارند اما در مستندات Swagger نمایش داده نمی‌شوند.

متدمسیرتوضیح
POSTregistrar-initiated-blame/createایجاد فایل تقصیر IN_PERSON.
GETregistrar-initiated-blame/my-filesفهرست تمام فایل‌های تقصیر ایجادشده توسط این ثبات.
GETregistrar-initiated-blame/blame/:requestIdجزئیات کامل یک فایل تقصیر.
POSTregistrar-initiated-blame/send-party-otps/:idارسال OTP به هر دو طرف به‌صورت همزمان.
POSTregistrar-initiated-blame/verify-party-otps/:idتأیید OTPهای هر دو طرف در یک فراخوانی.
POSTregistrar-initiated-blame/complete-blame-data/:idارسال تمام داده‌های فرم تقصیر هر دو طرف در یک پیلود.
POSTregistrar-initiated-blame/upload-video/:idبارگذاری ویدیوی تقصیر.
POSTregistrar-initiated-blame/upload-voice/:idبارگذاری ضبط صوتی.
POSTregistrar-initiated-blame/add-accident-fields/:idذخیره فیلدهای تصادف و تکمیل تقصیر.
POSTregistrar-initiated-blame/upload-party-signature/:idبارگذاری امضای یک طرف (partyRole=FIRST/SECOND).

ثبت خسارت — v2/registrar/claim-request-management/

آینه‌ای از API خسارت کاربر. فرانت‌اند همان صفحات خسارت را با تغییر فقط پیشوند بازاستفاده می‌کند.

متدمسیرتوضیح
POSTcreate-from-blame/:blameIdایجاد خسارت از یک فایل تقصیر تکمیل‌شده.
GETouter-parts-catalog / car-other-partکاتالوگ قطعات (قطعات بیرونی بدنه + JSON سایر قطعات).
GETbranches/:insuranceIdفهرست شعب بیمه‌گر (برای انتخاب شعبه در مرحله امضای خسارت).
PATCHselect-outer-parts/:claimIdانتخاب قطعات آسیب‌دیده بیرونی.
PATCHselect-other-parts/:claimIdانتخاب سایر قطعات آسیب‌دیده + اطلاعات بانکی.
POSTupload-document/:claimIdبارگذاری اسناد خسارت (گواهینامه، کارت خودرو).
POSTcapture-part/:claimIdعکس‌برداری از قطعات + زوایا.
PATCHcar-capture/:claimIdویدیوی دور زدن خودرو (مرحله نهایی) ← WAITING_FOR_DAMAGE_EXPERT.

۸ — مرکز تماس call_center

ثبت تقصیر تلفنی V6 را مدیریت می‌کند. اپراتور داده‌های طرف مقصر را از طریق تلفن جمع‌آوری می‌کند، استعلام بیمه را اجرا می‌کند و لینک تقصیر را از طریق SMS ارسال می‌کند. کاربر سپس بقیه فرم را از طریق جریان استاندارد V2 تکمیل می‌کند (با رد شدن مرحله فرم اولیه/استعلام). کار اپراتور مرکز تماس پس از send-link پایان می‌یابد؛ می‌تواند پیشرفت را از طریق اندپوینت‌های خواندن پایش کند.

اندپوینت‌ها — v6/call-center-blame/

متدمسیرتوضیح
POSTcreateایجاد فایل تقصیر LINK. بدنه: { type: "THIRD_PARTY" | "CAR_BODY" }.
POSTrun-inquiry/:requestIdاجرای استعلام بیمه پلاک + کد ملی برای طرف مقصر. نتیجه را روی سند تقصیر ذخیره می‌کند.
POSTrun-inquiry-vin/:requestIdVIN/شاسی جایگزین برای run-inquiry. از جستجوی شاسی ESG استفاده می‌کند.
POSTsend-link/:requestIdدر صورت لزوم کاربر را ثبت‌نام می‌کند، به‌عنوان طرف اول ذخیره می‌کند، لینک دعوت تقصیر را از طریق SMS ارسال می‌کند. بدنه: { phoneNumber }.
GETmy-filesفهرست تمام فایل‌های تقصیر شروع‌شده توسط این اپراتور.
GETblame/:requestIdوضعیت فعلی و مرحله گردش کار یک فایل (برای بررسی اینکه کاربر لینک را باز کرده و پیشرفت کرده است).

پس از send-link، کاربر فرم را از طریق v2/blame-request-management/ (جریان استاندارد V2) تکمیل می‌کند. مرحله فرم اولیه / استعلام به‌صورت خودکار رد می‌شود (skipInitialFormStep=true). جریان خسارت پایین‌دستی همان جریان استاندارد خسارت V2 است.

مشترک: احراز هویت اکتورها

تمام اکتورهای پنل (هر نقش به جز user) از طریق همان اندپوینت POST actor/login با کپچا احراز هویت می‌کنند. بازنشانی رمز عبور از طریق OTP ایمیل است. خواندن و ویرایش پروفایل نیز مشترک است.

اندپوینت‌ها — actor/

متدمسیرتوضیح
GETactor/captchaصدور یک چالش کپچای ورود جدید (captchaId + تصویر SVG را برمی‌گرداند).
POSTactor/loginاحراز هویت هر نقش اکتور. بدنه: role، username/email/nationalCode، password، captchaId، captcha. توکن‌های JWT دسترسی + رفرش را برمی‌گرداند.
POSTactor/forget-passwordارسال OTP بازنشانی رمز عبور به ایمیل.
POSTactor/forget-password-verifyتأیید OTP و تنظیم رمز عبور جدید.
GETactor/profileدریافت پروفایل اکتور فعلی.
PATCHactor/profileبه‌روزرسانی پروفایل اکتور فعلی.