3 blocker phases
This commit is contained in:
+16
-3
@@ -23,9 +23,9 @@ whatever order you prefer.
|
||||
| 05 | [bnpl-setup](blocker-phases/05-bnpl-setup.md) | Installments (BNPL) don't work at all | — | — |
|
||||
| 06 | [catalog-admin-page](blocker-phases/06-catalog-admin-page.md) | No admin page for service categories/pricing | — | — |
|
||||
| 07 | [card-payment-redirect](blocker-phases/07-card-payment-redirect.md) | Card payment can never complete | — | ✅ Done (follow-up filed below) |
|
||||
| 08 | [refunds-demock](blocker-phases/08-refunds-demock.md) | Refunds are demo-only, off by 100× | — | — |
|
||||
| 09 | [nurse-verification-badge](blocker-phases/09-nurse-verification-badge.md) | Verification badge doesn't reflect reality | pairs with 10 | — |
|
||||
| 10 | [search-dedup-and-trust](blocker-phases/10-search-dedup-and-trust.md) | Search isn't de-duplicated; trust info hardcoded | pairs with 09 | — |
|
||||
| 08 | [refunds-demock](blocker-phases/08-refunds-demock.md) | Refunds are demo-only, off by 100× | — | ✅ Done (customer surface only, follow-up filed below) |
|
||||
| 09 | [nurse-verification-badge](blocker-phases/09-nurse-verification-badge.md) | Verification badge doesn't reflect reality | pairs with 10 | ✅ Done |
|
||||
| 10 | [search-dedup-and-trust](blocker-phases/10-search-dedup-and-trust.md) | Search isn't de-duplicated; trust info hardcoded | pairs with 09 | ✅ Done |
|
||||
| 11 | [nurse-payouts](blocker-phases/11-nurse-payouts.md) | Nurse pay/payouts are fake, no "process" action | benefits from 01 | — |
|
||||
| 12 | [patient-records](blocker-phases/12-patient-records.md) | Patient records & visit notes are fake demo data | needs a product decision first | — |
|
||||
| 13 | [booking-lifecycle](blocker-phases/13-booking-lifecycle.md) | Stuck bookings; "today's visits" unfiltered | pairs with 04 | — |
|
||||
@@ -34,6 +34,19 @@ whatever order you prefer.
|
||||
|
||||
## Follow-ups filed (not yet phases of their own)
|
||||
|
||||
- **Phase 08 closed the customer-facing refund surface only — the admin refund console stays mocked.**
|
||||
`AdminRefundsController` only implements create-and-execute (`POST admin_refunds`, matching
|
||||
`initiateRefund`); there is no real read-only preview, no retry/approve, and no reject route. The phase
|
||||
doc's own read ("real server side is live and correct") only checked the customer half
|
||||
(`RefundsController`, `CreateRefundCommand`, `GetCancellationPolicyPreviewQuery`) — the admin gaps weren't
|
||||
called out and would have 404'd the console had the single mock flag been flipped wholesale. Split into
|
||||
two independently-selected flags instead (`client/src/services/refunds/constants.ts`):
|
||||
`USE_CUSTOMER_REFUNDS_MOCK = false` (real — closes the actual ×100 money-safety bug) and
|
||||
`USE_ADMIN_REFUNDS_MOCK = true` (stays mocked; the four admin methods are kept together rather than mixed,
|
||||
since a real `initiateRefund` executing against a mocked preview's numbers would be actively dangerous).
|
||||
Building the missing preview/retry/reject endpoints needs real design (retry semantics re-executing a
|
||||
channel call, what "reject" reverses) that isn't specified anywhere — filed as its own future phase, not
|
||||
guessed here.
|
||||
- **Same timezone bug as 04, lower severity, not fixed.** Phase 04 fixed `BookingRequest.PaymentDeadlineAt`/
|
||||
`NurseResponseDeadlineAt` — a `DateTime` (not `DateTimeOffset`) read back from SQL Server's `datetime2`
|
||||
loses its `Kind` tag (comes back `Unspecified`), so JSON serialization drops the trailing `Z` and a client
|
||||
|
||||
Reference in New Issue
Block a user