feat: add multi-city representation support and domain context resolution
- Created migration to add representation_cities table and domain, is_global fields to representations. - Implemented SiteContextController to resolve domain to site context (city | representation | unknown). - Developed DomainContext and DomainContextResolver services for domain mapping. - Added tests for DomainContextResolver and commission logic based on domain ownership.
This commit is contained in:
+7
-2
@@ -742,7 +742,7 @@ List all representations.
|
||||
| `page` | integer | ❌ | Default: 1 |
|
||||
| `limit` | integer | ❌ | Default: 15 |
|
||||
| `search` | string | ❌ | Search by name or mobile (representation's or linked user's) |
|
||||
| `city_id` | integer | ❌ | Filter by city |
|
||||
| `city_id` | integer | ❌ | Filter by city (عضویت در شهرهای چندگانهی نماینده — `representation_cities`) |
|
||||
|
||||
### Response `200`
|
||||
Paginated representation list. Each item:
|
||||
@@ -752,14 +752,19 @@ Paginated representation list. Each item:
|
||||
"uuid": "...",
|
||||
"full_name": "حامد حسینی",
|
||||
"mobile_number": "09120671756",
|
||||
"domain": "x-nobat.ir",
|
||||
"is_global": true,
|
||||
"city_id": 132,
|
||||
"city": "یزد",
|
||||
"city_ids": [132, 108],
|
||||
"cities": [{ "id": 132, "name": "یزد" }, { "id": 108, "name": "تهران" }],
|
||||
"city": "یزد، تهران",
|
||||
"commission_percent": 10.0,
|
||||
"wallet_balance": 0,
|
||||
"is_active": true,
|
||||
"created_at": "2026-06-18T..."
|
||||
}
|
||||
```
|
||||
> `city_id` = اولین شهر (BC)؛ `city` = نام شهرها با «،». `is_global=true` یعنی نماینده سراسری (badge در پنل).
|
||||
|
||||
> `mobile_number` falls back to the linked user's mobile when the representation's own `mobile_number` column is empty.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user