backend phase 15 & frontend phase 8

This commit is contained in:
hamid
2026-07-10 03:22:29 +03:30
parent 93cc5ecb98
commit cd6c2591a6
154 changed files with 15335 additions and 37 deletions
@@ -195,3 +195,22 @@ delivers fixes in its own change. **Frontend never edits backend code to "fix" a
`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
## REQ-015 — Confirm the booking/session/EVV enum codes + `checkInAddressMatch` tri-state — filed by frontend-phase-8-b9 — 2026-07-10
- **Need:** Two confirmations so the f8 `services/bookings/types.ts` client unions stay wire-accurate:
1. **Enum string codes.** The b9 swagger types `status`/`evvStatus`/session `status` as bare `string`
(no enum constraint). Confirm the stable wire codes match the client unions: `BookingStatus`
= `pending_payment|confirmed|in_progress|completed|disputed|closed|cancelled`; `BookingSessionStatus`
= `scheduled|in_progress|completed|missed|cancelled`; `VisitVerificationStatus`
= `pending|checked_in|completed`. (They match the contract doc's "Enums used" — this just asks that the
serialized JSON emits these exact snake_case codes, not PascalCase/int.)
2. **`checkInAddressMatch` tri-state semantics.** The EVV banner keys off it as: `true` = in range
(«موقعیت تایید شد»), `false` = out-of-range/advisory-under-review («موقعیت خارج از محدوده»), `null` =
GPS unavailable/denied («موقعیت ثبت نشد»). Confirm the server returns `null` (not `false`) when the
nurse checked in **without** coordinates (GPS denied), so the UI can distinguish "flagged mismatch"
from "no position captured". A mismatch stays advisory server-side (support alert, never a block) — the
UI mirrors that.
- **Why:** f8 renders the status timeline, per-session chips, and the EVV banner strictly off these codes;
a casing/int drift or a `false`-vs-`null` conflation would mislabel a visit. Low-risk (mock-primary now),
but worth locking before f9/f13 consume the same shapes.
- **Status:** open