feat(invoice): implement recorder identity resolution for payments and update related tests

This commit is contained in:
hamed
2026-08-04 11:19:07 +03:30
parent 2c7b86d917
commit 810e9351a9
7 changed files with 321 additions and 13 deletions
+24 -1
View File
@@ -130,7 +130,12 @@ ddev exec php bin/console app:billing:backfill-claims # ساخت م
"final_price_rials": 2240000,
"paid_total_rials": 1500000,
"payments": [
{ "uuid": "…", "method": "wallet", "amount_rials": 1500000, "paid_at": 1718990000, "created_by_name": "منشی تست", "created_at": 1718990000 }
{
"uuid": "…", "method": "wallet", "amount_rials": 1500000,
"paid_at": 1718990000, "created_at": 1718990000,
"created_by_name": "منشی تست",
"created_by": { "user_uuid": "…", "name": "منشی تست", "role": "secretary", "doctor_uuid": null }
}
],
"consumables": [
{ "uuid": "…", "item_name": "عینک", "quantity": 2, "price_rials": 20000, "line_total_rials": 40000 }
@@ -141,6 +146,24 @@ ddev exec php bin/console app:billing:backfill-claims # ساخت م
}
```
### ثبت‌کنندهٔ هر پرداخت (2026-08)
`created_by` هویتِ کاربری است که پرداخت را ثبت کرده، برای نمایش نام و لینک‌دادن به
پروفایلش:
| فیلد | توضیح |
|---|---|
| `user_uuid` | uuid کاربر |
| `name` | نامِ نمایشی — پروفایل ← `real_name` ← شمارهٔ موبایل |
| `role` | نقشِ پرتوان کاربر: `admin\|clinic\|doctor\|secretary\|staff\|representation\|user` |
| `doctor_uuid` | فقط برای نقش `doctor` — تنها نقشی که در پنل صفحهٔ پروفایل مستقل دارد |
- `created_by_name` روی ردیف **عکسِ لحظهٔ ثبت** است و برای کاربری که آن‌وقت پروفایل
نداشته ممکن است شمارهٔ موبایل باشد؛ در این پاسخ با نامِ زندهٔ همان کاربر بازنویسی
می‌شود و فقط وقتی دست‌نخورده می‌ماند که `created_by` تهی باشد (کاربر حذف شده).
- مسیرِ پروفایل عمداً در پاسخ نیست: سرور مسیرهای پنل را نمی‌شناسد و دسترسیِ هر نقش
به هر صفحه کارِ کلاینت است.
**Errors:** `404 ERR_NOT_FOUND_001`.
---