backend phase 14 & frontend phase 7

This commit is contained in:
hamid
2026-07-09 15:30:03 +03:30
parent de53f9d8a6
commit 93cc5ecb98
101 changed files with 12930 additions and 39 deletions
@@ -171,3 +171,27 @@ delivers fixes in its own change. **Frontend never edits backend code to "fix" a
- **Proposed shape:** enrich `NurseSearchResultDto` with `{ nurseName, avatarUrl, distanceKm? }`; add
`GET api/v1/nurses/{id}/profile` returning the object above. `price`/`priceIrr` stay IRR digit-strings.
- **Status:** open
## REQ-013 — Variant price on `BookingRequestDto` — filed by frontend-phase-7-b8 — 2026-07-09
- **Need:** Add the variant's **price** (IRR digit-string) to `BookingRequestDto` (and ideally the nurse's
**avatar URL**). The b8 DTO carries `variantLabel` + `variantPriceUnit` but no price, so the request
summary card (C5 + the nurse detail + later f8 booking detail) can't show the priced rate from the DTO.
- **Why:** The C5 awaiting screen and the nurse request detail render the shared `BookingRequestSummaryCard`,
which prices the service via the f0 money util + i18n unit label. Without a price on the DTO the summary
hides the amount on the real path. The client augments `variantPrice` behind the `services/bookingRequests`
seam (the mock supplies it from the chosen variant; the real client leaves it `null`); adding the field
lets the summary price the service once the domain flips to the real endpoint.
- **Proposed shape:** `BookingRequestDto { …, variantPrice: string (IRR digits), nurseAvatarUrl?: string }`.
(Money-free rule intact — this is the *rate* of the chosen variant for display, not an engagement total.)
- **Status:** open
## REQ-014 — Enrich the nurse-inbox list item (variant label + patient age) — filed by frontend-phase-7-b8 — 2026-07-09
- **Need:** Add `variantLabel` (and optionally the patient's **age/age-band**) to
`BookingRequestListItemDto`. Today the nurse-inbox row carries `counterpartyName` (patient) +
`customerNotes` + gender + times + deadline, but **not** which service was requested.
- **Why:** The f7 nurse inbox card is specced to show the requested **service variant** and the patient's
age alongside the gender chip + countdown. The list item omits both, so the card shows a notes preview and
the nurse must open the detail (`get/{id}`, which *does* carry `variantLabel`) to see the service. Surfacing
`variantLabel` on the row makes the inbox self-describing; a coarse age is a nice-to-have for triage.
- **Proposed shape:** `BookingRequestListItemDto { …, variantLabel: string, patientAge?: int }`.
- **Status:** open