3 blocker phases
This commit is contained in:
+7
-14
@@ -25,16 +25,15 @@ Effort is a rough size, not a schedule: **S** = small/contained, **M** = a real
|
||||
make the first screen show an error immediately instead of the outdated-mock failure it shows now. Those
|
||||
three endpoints need to be built before this can be turned on for real. *(Effort: S–M, one part fixed, one
|
||||
part bigger than first scoped)*
|
||||
- **Refunds are demo-only today.** The refund screens read fake, disconnected sample data; turning that off
|
||||
today would show a refund of the wrong amount (off by a factor of 100) for any real cancellation.
|
||||
*(Effort: M)*
|
||||
- ~~**Refunds are demo-only today.**~~ **Fixed (phase 08)** for the customer-facing flow: the cancellation
|
||||
preview, the cancel confirmation, and the refund-status screen now read the real backend, and the ×100
|
||||
percent-display bug is gone. The **admin refund console** (preview / retry / reject) is still mocked —
|
||||
those three endpoints don't exist on the real server yet (see `mvp/fix-plan.md` follow-ups).
|
||||
|
||||
### Trust — nurse verification
|
||||
- **A nurse's verification badge does not reflect reality.** The verified/unverified status shown to
|
||||
customers and to the nurse herself comes from a fake demo layer, not the real, already-working
|
||||
verification data underneath. A genuinely verified nurse can show as unverified everywhere in the app, and
|
||||
vice versa — silently hiding the real "you're not searchable yet" warning a nurse needs to see.
|
||||
*(Effort: L)*
|
||||
- ~~**A nurse's verification badge does not reflect reality.**~~ **Fixed (phase 09).** The badge everywhere
|
||||
(search, nurse's own profile, admin case review) now reads the real verification data; the admin
|
||||
whole-verification approve/reject actions got real endpoints (they previously 404'd).
|
||||
|
||||
### Patient records & visit notes
|
||||
- **Everything a nurse writes about a visit, and everything a family sees about a patient's care plan, is
|
||||
@@ -56,12 +55,6 @@ Effort is a rough size, not a schedule: **S** = small/contained, **M** = a real
|
||||
more than it sounds — see [forgotten-features.md](forgotten-features.md) for why the business plan leans on
|
||||
this feature specifically. *(Effort: L)*
|
||||
|
||||
### Search
|
||||
- **Search results aren't de-duplicated nurses — they're raw pricing-option rows.** One nurse with 3 services
|
||||
in 3 areas shows up as "9 nurses." The trust information on a result card is also fake, and a nurse who
|
||||
isn't verified yet can still be opened directly and shown as "verified" if you know her profile link.
|
||||
*(Effort: M)*
|
||||
|
||||
### Booking lifecycle
|
||||
- **A booking whose remaining visits get automatically marked "missed" can get stuck forever** and never
|
||||
reach a state where the nurse can actually be paid for the visits she did complete. The "today's visits"
|
||||
|
||||
+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