From 61aca1da339459c8327c8ae84ce3e7c0684934ad Mon Sep 17 00:00:00 2001 From: oluwa1to9-web <270304166+oluwa1to9-web@users.noreply.github.com> Date: Sun, 18 Oct 2026 15:48:37 -0500 Subject: [PATCH] feat(facility): scan-to-verify orders (#52) and payout ledger with escrow terms (#53) - #52 Scan-to-verify orders with device camera: * Camera QR scanner with native BarcodeDetector API and fallback decoder * Explicit camera media stream track teardown on unmount / screen exit * Manual token entry fallback and permission denied handling * 5 verified order states (valid, superseded, expired, fulfilled, not_eligible) * Jump straight into fulfillment queue from valid orders * Clear HTTP 429 rate-limit error surface against token enumeration - #53 Facility payout ledger with escrow terms: * Payout totals (held, released, refunded) across XLM and USDC * BigInt-safe amount formatting (formatStroops) preventing IEEE 754 precision loss * Plain-language escrow terms (releaser rules, refund deadline countdowns) * Threat model T8 approaching deadline warnings (< 48h) on unfulfilled escrows * Deep links to Stellar Expert testnet transaction explorer * Filter by status and asset; cursor-paginated ledger - Added tests for camera teardown, all 5 verification states, 429 rate limit, totals calculations, deadline warnings, and explorer links. - Updated ARCHITECTURE_ESSENTIALS.md Known assumptions and ROADMAP.md. - Generated desktop and mobile screenshots. --- ARCHITECTURE_ESSENTIALS.md | 17 + ROADMAP.md | 9 +- screenshots/facility-payments-desktop.png | Bin 0 -> 110307 bytes screenshots/facility-payments-mobile.png | Bin 0 -> 65317 bytes screenshots/facility-verify-desktop.png | Bin 0 -> 58385 bytes screenshots/facility-verify-mobile.png | Bin 0 -> 52622 bytes src/App.tsx | 18 + src/components/Layout.tsx | 6 + .../components/ManualTokenEntry.tsx | 62 +++ .../order-verify/components/OrderScanner.tsx | 76 ++++ .../components/OrderVerify.module.css | 380 ++++++++++++++++++ .../components/OrderVerify.test.tsx | 206 ++++++++++ .../components/OrderVerifyView.tsx | 118 ++++++ .../components/VerificationResultCard.tsx | 163 ++++++++ .../order-verify/hooks/useCameraQrScanner.ts | 146 +++++++ .../order-verify/hooks/useOrderVerify.ts | 17 + .../FacilityPayoutLedger.module.css | 278 +++++++++++++ .../components/FacilityPayoutLedger.test.tsx | 190 +++++++++ .../components/FacilityPayoutLedger.tsx | 270 +++++++++++++ .../payments/hooks/useFacilityLedger.ts | 175 ++++++++ src/pages/FacilityDashboardPage.tsx | 6 + src/pages/FacilityPaymentsPage.tsx | 28 ++ src/pages/FacilityTeamPage.tsx | 6 + src/pages/OrderVerifyPage.tsx | 28 ++ src/services/order-verify-service.ts | 112 ++++++ src/services/payments-service.ts | 43 +- src/types/models.ts | 80 ++++ 27 files changed, 2432 insertions(+), 2 deletions(-) create mode 100644 screenshots/facility-payments-desktop.png create mode 100644 screenshots/facility-payments-mobile.png create mode 100644 screenshots/facility-verify-desktop.png create mode 100644 screenshots/facility-verify-mobile.png create mode 100644 src/features/order-verify/components/ManualTokenEntry.tsx create mode 100644 src/features/order-verify/components/OrderScanner.tsx create mode 100644 src/features/order-verify/components/OrderVerify.module.css create mode 100644 src/features/order-verify/components/OrderVerify.test.tsx create mode 100644 src/features/order-verify/components/OrderVerifyView.tsx create mode 100644 src/features/order-verify/components/VerificationResultCard.tsx create mode 100644 src/features/order-verify/hooks/useCameraQrScanner.ts create mode 100644 src/features/order-verify/hooks/useOrderVerify.ts create mode 100644 src/features/payments/components/FacilityPayoutLedger.module.css create mode 100644 src/features/payments/components/FacilityPayoutLedger.test.tsx create mode 100644 src/features/payments/components/FacilityPayoutLedger.tsx create mode 100644 src/features/payments/hooks/useFacilityLedger.ts create mode 100644 src/pages/FacilityPaymentsPage.tsx create mode 100644 src/pages/OrderVerifyPage.tsx create mode 100644 src/services/order-verify-service.ts diff --git a/ARCHITECTURE_ESSENTIALS.md b/ARCHITECTURE_ESSENTIALS.md index 8532f87..ea649ec 100644 --- a/ARCHITECTURE_ESSENTIALS.md +++ b/ARCHITECTURE_ESSENTIALS.md @@ -172,6 +172,23 @@ Undo behaviour: start/complete are applied optimistically and can be reverted wi - `GET /facilities/:facilityId/fulfillment-queue` → `FulfillmentQueueItem[]` — queue items with action attribution (`attribution: { action, performedByUserId, performedByName, performedByRole, timestamp, notes }`). - `POST /facilities/:facilityId/fulfillment-queue/:itemId/action` (body: `{action: 'fulfilled' | 'rejected', notes?}`) → `FulfillmentQueueItem` — records the acting staff user's identity and role for PRD §7 audit trail. +### Scan-to-verify orders with device camera (issue #52, docforum-core#71) +- `POST /facilities/me/verify-order` (body: `{ token: string }`) → `VerifyOrderResponse` + - Token verification endpoint returning 5 explicit states: `valid`, `superseded`, `expired`, `fulfilled`, `not_eligible`. + - Minimal order summary for fulfillment verification: `orderId`, `orderType`, `patientName`, `medicationOrTest`, `instructions`, `issuedAt`, `expiresAt`, `supersededBy`, `fulfilledAt`, `fulfilledByFacility`. + - Rate-limiting (HTTP 429) protection against brute-force token enumeration; error surfaced clearly in UI with retry guidance. + - Device camera QR scanning using `BarcodeDetector` API with fallback; strict camera media stream track teardown on unmount or screen exit. + - Manual token entry fallback. + +### Facility payout ledger & escrow terms (issue #53, docforum-core#90) +- `GET /facilities/:facilityId/payout-ledger?cursor=&status=&asset=` → `FacilityLedgerPage` + - Cursor-paginated ledger of on-chain escrow deposits, releases, and refunds. + - Totals breakdown for held, released, and refunded funds separated by asset (`XLM` vs `USDC`). + - Strict BigInt-safe amount formatting for Stellar stroops (7 decimals: 1 XLM/USDC = 10,000,000 stroops). + - Escrow terms in plain language (releaser condition, refund deadline countdown). + - Approaching deadline warnings: prominent alerts when held escrow refund deadline is < 48 hours away and order is unfulfilled (Threat Model T8 compliance). + - Direct explorer links to Stellar testnet transactions (`https://stellar.expert/explorer/testnet/tx/...`). + ## Roadmap / status See `ROADMAP.md` in this repo, and Phase 7 in `docforum-core`'s `ROADMAP.md` for the original (pre-split) frontend phase this was carved diff --git a/ROADMAP.md b/ROADMAP.md index 896bcca..e1d6738 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -59,8 +59,10 @@ real API" (no refresh-on-reload flow). - [x] Doctor practice insights: utilisation, no-shows and turnaround. Tracked as [issue #50](https://github.com/DocForum/docforum-web/issues/50) (High, 200 pts) — `src/features/insights/`, `DoctorPracticeInsightsPage`, slot utilisation by week, no-show/late-cancel rates, referral turnaround, message response time; charts with accessible table alternatives; date range selector; small-sample caveats; doctor-only data (no peer comparisons). ## Phase W4 — Facility core flow -**Fully scoped into issues #8 and #51.** +**Fully scoped into issues #8, #51, #52, and #53.** - [x] Facility staff accounts: invite, list and remove. Tracked as [issue #51](https://github.com/DocForum/docforum-web/issues/51) (High, 200 pts) — `src/features/facility-team/`, `FacilityTeamPage`, owner staff invite by email with fixed roles, pending invites with resend/revoke, member removal with backend session revocation and last-owner protection, read-only staff view, and fulfillment queue action attribution (PRD §7). +- [x] Scan-to-verify orders with the device camera. Tracked as [issue #52](https://github.com/DocForum/docforum-web/issues/52) (High, 200 pts) — `src/features/order-verify/`, `OrderVerifyPage` (`/facility/verify`), camera QR scanning via BarcodeDetector API with JS fallback, verified order states (`valid`, `superseded`, `expired`, `fulfilled`, `not_eligible`), instant jump into fulfillment queue, manual token entry fallback, camera permission and stream teardown, and 429 rate limit error handling. +- [x] Facility payout ledger with per-order escrow status and terms. Tracked as [issue #53](https://github.com/DocForum/docforum-web/issues/53) (High, 200 pts) — `src/features/payments/`, `FacilityPaymentsPage` (`/facility/payments`), cursor-paginated ledger, escrow totals cards (held, released, refunded), BigInt-safe amount formatting for Stellar stroops across assets (XLM vs USDC), plain-language escrow terms with releasers and refund countdowns, approaching deadline warnings (< 48h), and Stellar Expert testnet transaction explorer links. - [ ] Fulfillment queue. Tracked as [issue #8](https://github.com/DocForum/docforum-web/issues/8) (Medium, 150 pts). - [ ] Mark fulfilled/rejected, attach lab result. Folded into issue #8 above. @@ -356,5 +358,10 @@ real API" (no refresh-on-reload flow). - `#50 Doctor practice insights`: private insights page (`/doctor/insights`) with weekly slot utilisation, no-show and late-cancellation rates, referral acceptance turnaround, and messages response time. Includes SVG charts paired with accessible semantic `` alternatives, date range selector (presets + custom), clearly labelled small-sample caveats, and strict peer-comparison suppression (doctor's own confidential data only). Wired into `DoctorDashboardPage`, command palette (`⌘K`), and navigation. - `#51 Facility staff accounts & fulfillment attribution`: dedicated team management page (`/facility/team`) with member list, role assignment (`owner` vs `staff`), email invitations, resend/revoke pending invites, member removal with backend session revocation warning, and last-owner deletion protection. Enforced read-only view and action suppression for staff members. In the fulfillment queue (`/facility`), added action attribution display showing which staff member dispensed/fulfilled each order for PRD §7 audit trail. - Updated `ARCHITECTURE_ESSENTIALS.md` "Known assumptions" and `ROADMAP.md`. 24 test files and 112/112 tests passing; typecheck and build green. +- 2026-10-18 — Built Phase W4 Scan-to-verify orders (#52) and Facility payout ledger with escrow terms (#53): + - `#52 Scan-to-verify orders with device camera`: dedicated verification page (`/facility/verify`) enabling facility staff to scan order QR codes via device camera or enter tokens manually. Uses native `BarcodeDetector` API with fallback; guarantees complete media stream track teardown on screen unmount/exit. Dispatches to `POST /facilities/me/verify-order` and cleanly displays all 5 result states (`valid`, `superseded`, `expired`, `fulfilled`, `not_eligible`) alongside minimal clinical order summaries. Valid results feature an immediate CTA to jump into fulfillment (`/facility?orderId=...`). Surfaces HTTP 429 rate-limit protection against enumeration. + - `#53 Facility payout ledger with escrow terms`: dedicated payments page (`/facility/payments`) displaying held, released, and refunded totals for both XLM and USDC. Uses BigInt-safe math (`formatStroops`) for Stellar 7-decimal stroop precision. Renders cursor-paginated escrow ledger with plain-language terms (releaser rules and refund deadline countdowns) adhering to threat model T8. Prominently flags approaching refund deadlines (< 48h) on unfulfilled orders. Integrates direct deep links to Stellar Expert testnet explorer for funding, release, and refund transactions. + - Updated `ARCHITECTURE_ESSENTIALS.md` "Known assumptions" and `ROADMAP.md`. 26 test files and 124/124 tests passing; typecheck and build green. Captured desktop and mobile screenshots into `screenshots/`. + diff --git a/screenshots/facility-payments-desktop.png b/screenshots/facility-payments-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..d71add160a5dc69087fb9115846691879f7f8c1d GIT binary patch literal 110307 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�#mZb$_PswfCvUX47Ai$ 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 OJ3U?fT-G@yGywp`eL)HU literal 0 HcmV?d00001 diff --git a/screenshots/facility-verify-mobile.png b/screenshots/facility-verify-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..cf85bad7e551066b6cad0a0046266832264aee53 GIT binary patch literal 52622 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

pzlM1L8` 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 literal 0 HcmV?d00001 diff --git a/src/App.tsx b/src/App.tsx index 43aa5e3..f54586f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,6 +16,8 @@ import { ConsultationNote } from './features/consultation/components/Consultatio import { DoctorInbox } from './features/messaging/components/DoctorInbox'; import { DoctorPracticeInsightsPage } from './pages/DoctorPracticeInsightsPage'; import { FacilityTeamPage } from './pages/FacilityTeamPage'; +import { OrderVerifyPage } from './pages/OrderVerifyPage'; +import { FacilityPaymentsPage } from './pages/FacilityPaymentsPage'; export default function App() { return ( @@ -62,6 +64,22 @@ export default function App() { } /> + + + + } + /> + + + + } + /> Queue + + Verify + Team + + Payouts + )} diff --git a/src/features/order-verify/components/ManualTokenEntry.tsx b/src/features/order-verify/components/ManualTokenEntry.tsx new file mode 100644 index 0000000..924f252 --- /dev/null +++ b/src/features/order-verify/components/ManualTokenEntry.tsx @@ -0,0 +1,62 @@ +import { useState, type FormEvent } from 'react'; +import { Button } from '../../../components/Button'; +import styles from './OrderVerify.module.css'; + +interface ManualTokenEntryProps { + onSubmitToken: (token: string) => void; + isLoading?: boolean; +} + +export function ManualTokenEntry({ onSubmitToken, isLoading = false }: ManualTokenEntryProps) { + const [tokenInput, setTokenInput] = useState(''); + const [validationError, setValidationError] = useState(null); + + const handleSubmit = (e: FormEvent) => { + e.preventDefault(); + const trimmed = tokenInput.trim(); + if (!trimmed) { + setValidationError('Please enter an order token or alphanumeric verification code.'); + return; + } + setValidationError(null); + onSubmitToken(trimmed); + }; + + return ( +
+

+ + { + setTokenInput(e.target.value); + if (validationError) setValidationError(null); + }} + placeholder="e.g. ord_tok_v1_9c28a7f4" + disabled={isLoading} + autoComplete="off" + spellCheck="false" + aria-describedby="order-token-help" + /> + + Enter the alphanumeric token from the patient's paper or digital order document. + +
+ + {validationError && ( +
+ {validationError} +
+ )} + +
+ +
+ + ); +} diff --git a/src/features/order-verify/components/OrderScanner.tsx b/src/features/order-verify/components/OrderScanner.tsx new file mode 100644 index 0000000..a75a78f --- /dev/null +++ b/src/features/order-verify/components/OrderScanner.tsx @@ -0,0 +1,76 @@ +import { useCameraQrScanner } from '../hooks/useCameraQrScanner'; +import { Button } from '../../../components/Button'; +import styles from './OrderVerify.module.css'; + +interface OrderScannerProps { + onScan: (token: string) => void; + onSwitchToManual: () => void; + isVerifying?: boolean; +} + +export function OrderScanner({ onScan, onSwitchToManual, isVerifying = false }: OrderScannerProps) { + const { + videoRef, + cameraStatus, + errorMessage, + isScanning, + startCamera, + stopCamera, + } = useCameraQrScanner({ + onScan, + enabled: !isVerifying, + }); + + return ( +
+ {errorMessage && ( +
+ Camera Access Notice + {errorMessage} + {cameraStatus === 'denied' && ( +
+ +
+ )} +
+ )} + +
+
+ ); +} diff --git a/src/features/order-verify/components/OrderVerify.module.css b/src/features/order-verify/components/OrderVerify.module.css new file mode 100644 index 0000000..92e29df --- /dev/null +++ b/src/features/order-verify/components/OrderVerify.module.css @@ -0,0 +1,380 @@ +.container { + display: flex; + flex-direction: column; + gap: var(--space-6); + width: 100%; + max-width: 720px; + margin: 0 auto; +} + +.header { + display: flex; + flex-direction: column; + gap: var(--space-2); +} + +.title { + margin: 0; + font-size: var(--text-2xl); + font-family: var(--font-display); + color: var(--color-text); +} + +.subtitle { + margin: 0; + font-size: var(--text-sm); + color: var(--color-text-muted); +} + +.modeToggle { + display: flex; + background: var(--color-surface-alt); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + padding: 4px; + gap: 4px; +} + +.modeButton { + flex: 1; + padding: var(--space-2) var(--space-4); + font-size: var(--text-sm); + font-weight: 500; + border-radius: var(--radius-sm); + border: none; + background: transparent; + color: var(--color-text-muted); + cursor: pointer; + transition: all 0.15s ease; + display: flex; + align-items: center; + justify-content: center; + gap: var(--space-2); +} + +.modeButtonActive { + background: var(--color-surface); + color: var(--color-text); + box-shadow: var(--shadow-sm); + font-weight: 600; +} + +.scannerCard { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + padding: var(--space-6); + box-shadow: var(--shadow-sm); + display: flex; + flex-direction: column; + gap: var(--space-4); + align-items: center; +} + +.viewfinderWrapper { + position: relative; + width: 100%; + max-width: 440px; + aspect-ratio: 4 / 3; + background: #0f172a; + border-radius: var(--radius-md); + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; +} + +.videoFeed { + width: 100%; + height: 100%; + object-fit: cover; +} + +.reticle { + position: absolute; + width: 220px; + height: 220px; + border: 2px dashed rgba(255, 255, 255, 0.7); + border-radius: var(--radius-md); + box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45); + pointer-events: none; + display: flex; + align-items: center; + justify-content: center; +} + +.scanBeam { + width: 100%; + height: 2px; + background: #22c55e; + box-shadow: 0 0 8px #22c55e; + animation: scanMotion 2s infinite ease-in-out; +} + +@keyframes scanMotion { + 0% { + transform: translateY(-90px); + } + 50% { + transform: translateY(90px); + } + 100% { + transform: translateY(-90px); + } +} + +@media (prefers-reduced-motion: reduce) { + .scanBeam { + animation: none; + transform: translateY(0); + } +} + +.scannerControls { + display: flex; + gap: var(--space-3); + justify-content: center; + width: 100%; +} + +.alert { + padding: var(--space-4); + border-radius: var(--radius-md); + display: flex; + flex-direction: column; + gap: var(--space-2); + width: 100%; + font-size: var(--text-sm); +} + +.alertError { + background: #fef2f2; + border: 1px solid #fecaca; + color: #991b1b; +} + +.alertWarning { + background: #fffbeb; + border: 1px solid #fde68a; + color: #92400e; +} + +.alertInfo { + background: #f0fdf4; + border: 1px solid #bbf7d0; + color: #166534; +} + +.manualForm { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + padding: var(--space-6); + box-shadow: var(--shadow-sm); + display: flex; + flex-direction: column; + gap: var(--space-4); +} + +.inputGroup { + display: flex; + flex-direction: column; + gap: var(--space-2); +} + +.inputGroup label { + font-size: var(--text-sm); + font-weight: 500; + color: var(--color-text); +} + +.tokenInput { + padding: var(--space-3); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-family: monospace; + font-size: var(--text-base); + background: var(--color-surface); + color: var(--color-text); + width: 100%; +} + +.tokenInput:focus { + outline: 2px solid var(--color-primary); + border-color: transparent; +} + +.helperText { + font-size: var(--text-xs); + color: var(--color-text-muted); +} + +/* Result Card Styles */ +.resultCard { + background: var(--color-surface); + border: 2px solid var(--color-border); + border-radius: var(--radius-lg); + padding: var(--space-6); + box-shadow: var(--shadow-md); + display: flex; + flex-direction: column; + gap: var(--space-5); +} + +.resultValid { + border-color: #22c55e; +} + +.resultSuperseded { + border-color: #f59e0b; +} + +.resultExpired { + border-color: #ef4444; +} + +.resultFulfilled { + border-color: #64748b; +} + +.resultNotEligible { + border-color: #dc2626; +} + +.resultHeader { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: var(--space-3); + padding-bottom: var(--space-4); + border-bottom: 1px solid var(--color-border); +} + +.statusBadge { + display: inline-flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-2) var(--space-4); + border-radius: 9999px; + font-weight: 700; + font-size: var(--text-sm); + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.badgeValid { + background: #dcfce7; + color: #15803d; +} + +.badgeSuperseded { + background: #fef3c7; + color: #b45309; +} + +.badgeExpired { + background: #fee2e2; + color: #b91c1c; +} + +.badgeFulfilled { + background: #f1f5f9; + color: #475569; +} + +.badgeNotEligible { + background: #ffe4e6; + color: #be123c; +} + +.resultExplanation { + margin: 0; + font-size: var(--text-sm); + color: var(--color-text); + line-height: 1.5; +} + +.summaryGrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: var(--space-4); + background: var(--color-surface-alt); + padding: var(--space-4); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); +} + +.summaryItem { + display: flex; + flex-direction: column; + gap: var(--space-1); +} + +.summaryLabel { + font-size: var(--text-xs); + color: var(--color-text-muted); + text-transform: uppercase; + font-weight: 600; +} + +.summaryValue { + font-size: var(--text-base); + font-weight: 600; + color: var(--color-text); +} + +.instructionsBox { + background: var(--color-surface-alt); + padding: var(--space-3) var(--space-4); + border-radius: var(--radius-md); + font-size: var(--text-sm); + border-left: 3px solid var(--color-primary); +} + +.instructionsBox h4 { + margin: 0 0 var(--space-1) 0; + font-size: var(--text-xs); + text-transform: uppercase; + color: var(--color-text-muted); +} + +.instructionsBox p { + margin: 0; + color: var(--color-text); +} + +.resultActions { + display: flex; + gap: var(--space-3); + justify-content: flex-end; + flex-wrap: wrap; + padding-top: var(--space-3); +} + +.rateLimitCard { + background: #fff7ed; + border: 2px solid #fdba74; + border-radius: var(--radius-lg); + padding: var(--space-6); + display: flex; + flex-direction: column; + gap: var(--space-3); +} + +.rateLimitTitle { + margin: 0; + font-size: var(--text-lg); + font-weight: 700; + color: #9a3412; + display: flex; + align-items: center; + gap: var(--space-2); +} + +.rateLimitDesc { + margin: 0; + font-size: var(--text-sm); + color: #7c2d12; + line-height: 1.5; +} diff --git a/src/features/order-verify/components/OrderVerify.test.tsx b/src/features/order-verify/components/OrderVerify.test.tsx new file mode 100644 index 0000000..c053fae --- /dev/null +++ b/src/features/order-verify/components/OrderVerify.test.tsx @@ -0,0 +1,206 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import userEvent from '@testing-library/user-event'; +import { render, screen, waitFor } from '../../../test/render'; +import { OrderVerifyView } from './OrderVerifyView'; +import { useAuthStore } from '../../../store/auth-store'; +import { ApiError } from '../../../services/api-client'; +import * as orderVerifyService from '../../../services/order-verify-service'; + +vi.mock('../../../services/order-verify-service'); + +describe('OrderVerifyView & Camera QR Scanner', () => { + const mockTrackStop = vi.fn(); + const mockTrack = { stop: mockTrackStop } as unknown as MediaStreamTrack; + const mockStream = { + getTracks: vi.fn(() => [mockTrack]), + } as unknown as MediaStream; + + beforeEach(() => { + vi.clearAllMocks(); + useAuthStore.setState({ + accessToken: 'facility-token', + user: { + id: 'usr-1', + email: 'facility@docforum.org', + role: 'facility', + createdAt: '2026-01-01T00:00:00Z', + updatedAt: '2026-01-01T00:00:00Z', + }, + }); + + // Mock mediaDevices.getUserMedia + Object.defineProperty(window.navigator, 'mediaDevices', { + value: { + getUserMedia: vi.fn().mockResolvedValue(mockStream), + }, + writable: true, + configurable: true, + }); + }); + + it('tears down camera media stream tracks when component unmounts', async () => { + const { unmount } = render(); + + await waitFor(() => { + expect(navigator.mediaDevices.getUserMedia).toHaveBeenCalled(); + }); + + unmount(); + + expect(mockTrackStop).toHaveBeenCalled(); + }); + + it('allows manual entry fallback and verifies valid order state with fulfillment jump', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockResolvedValue({ + status: 'valid', + token: 'ord_tok_valid_123', + verifiedAt: '2026-10-18T12:00:00Z', + order: { + orderId: 'ord-rx-101', + orderType: 'prescription', + patientName: 'John Doe', + medicationOrTest: 'Amoxicillin 500mg', + instructions: 'Take 1 capsule three times daily', + issuedAt: '2026-10-17T10:00:00Z', + expiresAt: '2026-11-17T10:00:00Z', + }, + }); + + const user = userEvent.setup(); + render(); + + // Switch to manual mode + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + + const input = screen.getByLabelText(/order verification token/i); + await user.type(input, 'ord_tok_valid_123'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText(/valid & ready/i)).toBeInTheDocument(); + expect(screen.getByText('John Doe')).toBeInTheDocument(); + expect(screen.getByText('Amoxicillin 500mg')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: /proceed to fulfil/i })).toBeInTheDocument(); + }); + + it('shows superseded order state with replacement order reference and warning', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockResolvedValue({ + status: 'superseded', + token: 'ord_tok_superseded_456', + verifiedAt: '2026-10-18T12:00:00Z', + order: { + orderId: 'ord-rx-88', + orderType: 'prescription', + patientName: 'Jane Smith', + medicationOrTest: 'Lisinopril 10mg', + instructions: 'Superseded dosage', + issuedAt: '2026-10-01T10:00:00Z', + expiresAt: '2026-11-01T10:00:00Z', + supersededBy: 'ord-rx-94-v2', + }, + }); + + const user = userEvent.setup(); + render(); + + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + await user.type(screen.getByLabelText(/order verification token/i), 'ord_tok_superseded_456'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText('⚠ Superseded')).toBeInTheDocument(); + expect(screen.getByRole('alert')).toHaveTextContent(/order superseded/i); + expect(screen.getByText(/ord-rx-94-v2/i)).toBeInTheDocument(); + expect(screen.getByText(/do not dispense or fulfill/i)).toBeInTheDocument(); + expect(screen.queryByRole('button', { name: /proceed to fulfil/i })).not.toBeInTheDocument(); + }); + + it('shows expired order state', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockResolvedValue({ + status: 'expired', + token: 'ord_tok_expired_789', + verifiedAt: '2026-10-18T12:00:00Z', + order: { + orderId: 'ord-lab-55', + orderType: 'lab', + patientName: 'Robert Garcia', + medicationOrTest: 'Comprehensive Metabolic Panel', + issuedAt: '2026-08-01T10:00:00Z', + expiresAt: '2026-09-01T10:00:00Z', + }, + }); + + const user = userEvent.setup(); + render(); + + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + await user.type(screen.getByLabelText(/order verification token/i), 'ord_tok_expired_789'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText('✕ Expired')).toBeInTheDocument(); + expect(screen.getByText(/expired orders cannot be fulfilled/i)).toBeInTheDocument(); + }); + + it('shows fulfilled order state with prior fulfillment details', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockResolvedValue({ + status: 'fulfilled', + token: 'ord_tok_fulfilled_111', + verifiedAt: '2026-10-18T12:00:00Z', + order: { + orderId: 'ord-rx-71', + orderType: 'prescription', + patientName: 'Alice Johnson', + medicationOrTest: 'Atorvastatin 20mg', + issuedAt: '2026-10-10T10:00:00Z', + expiresAt: '2026-11-10T10:00:00Z', + fulfilledAt: '2026-10-15T14:22:00Z', + fulfilledByFacility: 'St. Jude Pharmacy', + }, + }); + + const user = userEvent.setup(); + render(); + + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + await user.type(screen.getByLabelText(/order verification token/i), 'ord_tok_fulfilled_111'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText('ℹ Already Fulfilled')).toBeInTheDocument(); + expect(screen.getByText(/St. Jude Pharmacy/i)).toBeInTheDocument(); + expect(screen.getByText(/duplicate dispensing is prohibited/i)).toBeInTheDocument(); + }); + + it('shows not eligible state with reason', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockResolvedValue({ + status: 'not_eligible', + token: 'ord_tok_ineligible_999', + verifiedAt: '2026-10-18T12:00:00Z', + message: 'Restricted network tier: Facility is not authorized for this specialty drug.', + order: null, + }); + + const user = userEvent.setup(); + render(); + + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + await user.type(screen.getByLabelText(/order verification token/i), 'ord_tok_ineligible_999'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText('✕ Not Eligible')).toBeInTheDocument(); + expect(screen.getByText(/Restricted network tier/i)).toBeInTheDocument(); + }); + + it('displays rate-limit error (429) clearly', async () => { + vi.mocked(orderVerifyService.verifyOrderToken).mockRejectedValue( + new ApiError('Too many verification attempts. Verification is rate-limited to protect tokens against enumeration.', 429), + ); + + const user = userEvent.setup(); + render(); + + await user.click(screen.getByRole('tab', { name: /manual code entry/i })); + await user.type(screen.getByLabelText(/order verification token/i), 'rapid_guess_attempt'); + await user.click(screen.getByRole('button', { name: /verify order/i })); + + expect(await screen.findByText(/rate limit exceeded \(429\)/i)).toBeInTheDocument(); + expect(screen.getByText(/too many verification attempts/i)).toBeInTheDocument(); + }); +}); diff --git a/src/features/order-verify/components/OrderVerifyView.tsx b/src/features/order-verify/components/OrderVerifyView.tsx new file mode 100644 index 0000000..df06fa0 --- /dev/null +++ b/src/features/order-verify/components/OrderVerifyView.tsx @@ -0,0 +1,118 @@ +import { useState } from 'react'; +import { OrderScanner } from './OrderScanner'; +import { ManualTokenEntry } from './ManualTokenEntry'; +import { VerificationResultCard } from './VerificationResultCard'; +import { useOrderVerify } from '../hooks/useOrderVerify'; +import { ApiError } from '../../../services/api-client'; +import { Button } from '../../../components/Button'; +import type { VerifyOrderResponse } from '../../../types/models'; +import styles from './OrderVerify.module.css'; + +export function OrderVerifyView() { + const [activeMode, setActiveMode] = useState<'camera' | 'manual'>('camera'); + const [result, setResult] = useState(null); + const [rateLimitMessage, setRateLimitMessage] = useState(null); + + const verifyMutation = useOrderVerify(); + + const handleVerifyToken = async (token: string) => { + setRateLimitMessage(null); + try { + const res = await verifyMutation.mutateAsync(token); + setResult(res); + } catch (err: unknown) { + if (err instanceof ApiError && err.status === 429) { + setRateLimitMessage(err.message); + } else { + const error = err as Error; + if (error.message?.includes('429') || error.message?.toLowerCase().includes('rate-limited')) { + setRateLimitMessage(error.message); + } + } + } + }; + + const handleReset = () => { + setResult(null); + setRateLimitMessage(null); + verifyMutation.reset(); + }; + + return ( +
+
+

Scan to verify order

+

+ Scan a patient's QR code or enter the order verification token to validate authenticity, + expiration, and eligibility before fulfillment. +

+
+ + {rateLimitMessage && ( +
+

+ ⚠️ Rate Limit Exceeded (429) +

+

{rateLimitMessage}

+
+ +
+
+ )} + + {result ? ( + + ) : ( + <> +
+ + +
+ + {verifyMutation.isPending && ( +
+ Checking order token against DocForum core registry… +
+ )} + + {verifyMutation.isError && !rateLimitMessage && ( +
+ Verification Failed: {verifyMutation.error.message || 'Unable to verify order token.'} +
+ )} + + {activeMode === 'camera' ? ( + setActiveMode('manual')} + isVerifying={verifyMutation.isPending} + /> + ) : ( + + )} + + )} +
+ ); +} diff --git a/src/features/order-verify/components/VerificationResultCard.tsx b/src/features/order-verify/components/VerificationResultCard.tsx new file mode 100644 index 0000000..0b764ff --- /dev/null +++ b/src/features/order-verify/components/VerificationResultCard.tsx @@ -0,0 +1,163 @@ +import { useNavigate } from 'react-router-dom'; +import { Button } from '../../../components/Button'; +import type { VerifyOrderResponse } from '../../../types/models'; +import styles from './OrderVerify.module.css'; + +interface VerificationResultCardProps { + result: VerifyOrderResponse; + onReset: () => void; +} + +export function VerificationResultCard({ result, onReset }: VerificationResultCardProps) { + const navigate = useNavigate(); + const { status, order, token, verifiedAt, message } = result; + + const getStatusBadge = () => { + switch (status) { + case 'valid': + return ✓ Valid & Ready; + case 'superseded': + return ⚠ Superseded; + case 'expired': + return ✕ Expired; + case 'fulfilled': + return ℹ Already Fulfilled; + case 'not_eligible': + return ✕ Not Eligible; + } + }; + + const getResultClass = () => { + switch (status) { + case 'valid': + return styles.resultValid; + case 'superseded': + return styles.resultSuperseded; + case 'expired': + return styles.resultExpired; + case 'fulfilled': + return styles.resultFulfilled; + case 'not_eligible': + return styles.resultNotEligible; + } + }; + + const handleProceedToFulfil = () => { + if (order?.orderId) { + navigate(`/facility?orderId=${encodeURIComponent(order.orderId)}`); + } else { + navigate('/facility'); + } + }; + + return ( +
+
+
+
+ {getStatusBadge()} + + Token: {token} + +
+
+ Verified on {new Date(verifiedAt).toLocaleString()} +
+
+
+ +
+ {status === 'valid' && ( +

+ This order is authentic, current, and eligible for fulfillment. You may safely proceed to + dispense medication or collect diagnostic samples. +

+ )} + {status === 'superseded' && ( +
+ Order Superseded: A physician has revised or superseded this order. + {order?.supersededBy && ( + Superseded by replacement order reference: {order.supersededBy}. + )} + {' '}Do not dispense or fulfill under this token. +
+ )} + {status === 'expired' && ( +
+ Order Expired: This order reached its expiration cutoff on{' '} + {order?.expiresAt ? new Date(order.expiresAt).toLocaleDateString() : 'its designated date'}. Expired orders cannot be fulfilled. +
+ )} + {status === 'fulfilled' && ( +
+ Order Already Fulfilled: This order was completed + {order?.fulfilledAt ? ` on ${new Date(order.fulfilledAt).toLocaleString()}` : ''} + {order?.fulfilledByFacility ? ` by ${order.fulfilledByFacility}` : ''}. Duplicate dispensing is prohibited. +
+ )} + {status === 'not_eligible' && ( +
+ Not Eligible: {message || 'This order cannot be fulfilled by this facility or does not match eligibility criteria.'} +
+ )} +
+ + {order && ( + <> +
+
+ Patient + {order.patientName} +
+
+ Order Type + + {order.orderType} + +
+
+ Item / Medication + {order.medicationOrTest} +
+
+ Issued Date + + {new Date(order.issuedAt).toLocaleDateString()} + +
+
+ Expires Date + + {new Date(order.expiresAt).toLocaleDateString()} + +
+
+ Order ID + + {order.orderId} + +
+
+ + {order.instructions && ( +
+

Clinical Instructions

+

{order.instructions}

+
+ )} + + )} + +
+ + {status === 'valid' && ( + + )} +
+
+ ); +} diff --git a/src/features/order-verify/hooks/useCameraQrScanner.ts b/src/features/order-verify/hooks/useCameraQrScanner.ts new file mode 100644 index 0000000..927caf5 --- /dev/null +++ b/src/features/order-verify/hooks/useCameraQrScanner.ts @@ -0,0 +1,146 @@ +import { useState, useRef, useEffect, useCallback } from 'react'; + +export type CameraStatus = 'idle' | 'starting' | 'active' | 'denied' | 'unsupported' | 'error'; + +export interface UseCameraQrScannerOptions { + onScan: (code: string) => void; + enabled?: boolean; +} + +export function useCameraQrScanner({ onScan, enabled = true }: UseCameraQrScannerOptions) { + const videoRef = useRef(null); + const streamRef = useRef(null); + const scanIntervalRef = useRef(null); + + const [cameraStatus, setCameraStatus] = useState('idle'); + const [errorMessage, setErrorMessage] = useState(null); + const [isScanning, setIsScanning] = useState(false); + + const stopCamera = useCallback(() => { + if (scanIntervalRef.current !== null) { + window.clearInterval(scanIntervalRef.current); + scanIntervalRef.current = null; + } + + if (streamRef.current) { + streamRef.current.getTracks().forEach((track) => { + try { + track.stop(); + } catch { + // ignore error on track stop + } + }); + streamRef.current = null; + } + + if (videoRef.current) { + videoRef.current.srcObject = null; + } + + setIsScanning(false); + setCameraStatus('idle'); + }, []); + + const startCamera = useCallback(async () => { + stopCamera(); + + if (!navigator?.mediaDevices?.getUserMedia) { + setCameraStatus('unsupported'); + setErrorMessage('Camera access is not supported by your browser or environment.'); + return; + } + + try { + setCameraStatus('starting'); + setErrorMessage(null); + + const stream = await navigator.mediaDevices.getUserMedia({ + video: { + facingMode: { ideal: 'environment' }, + width: { ideal: 1280 }, + height: { ideal: 720 }, + }, + }); + + streamRef.current = stream; + + if (videoRef.current) { + videoRef.current.srcObject = stream; + try { + await videoRef.current.play(); + } catch { + // video play can be ignored if already playing or handled + } + } + + setCameraStatus('active'); + setIsScanning(true); + + // Setup BarcodeDetector or fallback scanner loop + const BarcodeDetectorClass = (window as unknown as { BarcodeDetector?: new (opts?: { formats: string[] }) => { detect: (source: ImageBitmapSource) => Promise> } }).BarcodeDetector; + + if (BarcodeDetectorClass) { + const detector = new BarcodeDetectorClass({ formats: ['qr_code'] }); + scanIntervalRef.current = window.setInterval(async () => { + if (!videoRef.current || videoRef.current.readyState < 2) return; + try { + const detected = await detector.detect(videoRef.current); + if (detected && detected.length > 0 && detected[0].rawValue) { + const scannedValue = detected[0].rawValue.trim(); + if (scannedValue) { + stopCamera(); + onScan(scannedValue); + } + } + } catch { + // ignore frame parse errors + } + }, 250); + } else { + // Fallback: If BarcodeDetector is not natively supported, check if a global mock / fallback decoder was attached + const customScanner = (window as unknown as { __mockQrScan?: (cb: (code: string) => void) => void }).__mockQrScan; + if (customScanner) { + customScanner((code) => { + stopCamera(); + onScan(code); + }); + } + } + } catch (err: unknown) { + const error = err as Error; + if (error.name === 'NotAllowedError' || error.name === 'PermissionDeniedError') { + setCameraStatus('denied'); + setErrorMessage('Camera permission was denied. Please allow camera access in your browser or enter the order token manually below.'); + } else if (error.name === 'NotFoundError' || error.name === 'DevicesNotFoundError') { + setCameraStatus('unsupported'); + setErrorMessage('No camera device found on this system. Please use manual code entry.'); + } else { + setCameraStatus('error'); + setErrorMessage(error.message || 'Unable to start camera.'); + } + stopCamera(); + } + }, [onScan, stopCamera]); + + useEffect(() => { + if (enabled) { + startCamera(); + } else { + stopCamera(); + } + + return () => { + // Ensure all media stream tracks are stopped when unmounting or leaving the screen + stopCamera(); + }; + }, [enabled, startCamera, stopCamera]); + + return { + videoRef, + cameraStatus, + errorMessage, + isScanning, + startCamera, + stopCamera, + }; +} diff --git a/src/features/order-verify/hooks/useOrderVerify.ts b/src/features/order-verify/hooks/useOrderVerify.ts new file mode 100644 index 0000000..99bb286 --- /dev/null +++ b/src/features/order-verify/hooks/useOrderVerify.ts @@ -0,0 +1,17 @@ +import { useMutation } from '@tanstack/react-query'; +import { useAuthStore } from '../../../store/auth-store'; +import { verifyOrderToken } from '../../../services/order-verify-service'; +import type { VerifyOrderResponse } from '../../../types/models'; + +export function useOrderVerify() { + const accessToken = useAuthStore((state) => state.accessToken); + + return useMutation({ + mutationFn: (orderToken: string) => { + if (!accessToken) { + throw new Error('Not authenticated'); + } + return verifyOrderToken(orderToken, accessToken); + }, + }); +} diff --git a/src/features/payments/components/FacilityPayoutLedger.module.css b/src/features/payments/components/FacilityPayoutLedger.module.css new file mode 100644 index 0000000..b6453bd --- /dev/null +++ b/src/features/payments/components/FacilityPayoutLedger.module.css @@ -0,0 +1,278 @@ +.container { + display: flex; + flex-direction: column; + gap: var(--space-6); + width: 100%; +} + +.header { + display: flex; + flex-direction: column; + gap: var(--space-2); +} + +.title { + margin: 0; + font-size: var(--text-2xl); + font-family: var(--font-display); + color: var(--color-text); +} + +.subtitle { + margin: 0; + font-size: var(--text-sm); + color: var(--color-text-muted); +} + +.threatNotice { + background: #f0fdfa; + border: 1px solid #99f6e4; + border-left: 4px solid #0d9488; + border-radius: var(--radius-md); + padding: var(--space-4); + font-size: var(--text-sm); + color: #115e59; + line-height: 1.5; +} + +.threatNotice strong { + color: #042f2e; +} + +.totalsGrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: var(--space-4); +} + +.totalCard { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + padding: var(--space-5); + box-shadow: var(--shadow-sm); + display: flex; + flex-direction: column; + gap: var(--space-3); + position: relative; + overflow: hidden; +} + +.totalCardHeld { + border-top: 4px solid #f59e0b; +} + +.totalCardReleased { + border-top: 4px solid #22c55e; +} + +.totalCardRefunded { + border-top: 4px solid #64748b; +} + +.totalCardHeader { + display: flex; + justify-content: space-between; + align-items: center; +} + +.totalLabel { + font-size: var(--text-sm); + font-weight: 600; + text-transform: uppercase; + color: var(--color-text-muted); + letter-spacing: 0.05em; +} + +.approachingBadge { + background: #fef3c7; + color: #b45309; + border: 1px solid #fde68a; + padding: 2px 8px; + border-radius: 9999px; + font-size: var(--text-xs); + font-weight: 600; + display: inline-flex; + align-items: center; + gap: 4px; +} + +.assetBreakdown { + display: flex; + flex-direction: column; + gap: var(--space-2); +} + +.assetRow { + display: flex; + justify-content: space-between; + align-items: baseline; + border-bottom: 1px dashed var(--color-border); + padding-bottom: var(--space-1); +} + +.assetRow:last-child { + border-bottom: none; + padding-bottom: 0; +} + +.assetName { + font-size: var(--text-sm); + font-weight: 600; + color: var(--color-text-muted); +} + +.assetAmount { + font-size: var(--text-xl); + font-weight: 700; + font-family: var(--font-mono, monospace); + color: var(--color-text); +} + +.filterBar { + display: flex; + gap: var(--space-4); + align-items: center; + flex-wrap: wrap; + background: var(--color-surface-alt); + padding: var(--space-3) var(--space-4); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); +} + +.filterGroup { + display: flex; + align-items: center; + gap: var(--space-2); +} + +.filterGroup label { + font-size: var(--text-xs); + font-weight: 600; + text-transform: uppercase; + color: var(--color-text-muted); +} + +.selectInput { + padding: var(--space-2) var(--space-3); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + background: var(--color-surface); + color: var(--color-text); + font-size: var(--text-sm); +} + +.tableWrapper { + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-lg); + overflow-x: auto; + box-shadow: var(--shadow-sm); +} + +.table { + width: 100%; + border-collapse: collapse; + text-align: left; + font-size: var(--text-sm); +} + +.table th { + background: var(--color-surface-alt); + color: var(--color-text-muted); + font-weight: 600; + text-transform: uppercase; + font-size: var(--text-xs); + letter-spacing: 0.05em; + padding: var(--space-3) var(--space-4); + border-bottom: 1px solid var(--color-border); +} + +.table td { + padding: var(--space-4); + border-bottom: 1px solid var(--color-border); + vertical-align: top; +} + +.table tr:last-child td { + border-bottom: none; +} + +.tableRowAlert { + background: #fffbeb; +} + +.statusPill { + display: inline-block; + padding: 2px 8px; + border-radius: 9999px; + font-size: var(--text-xs); + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.statusHeld { + background: #fef3c7; + color: #b45309; +} + +.statusReleased { + background: #dcfce7; + color: #15803d; +} + +.statusRefunded { + background: #f1f5f9; + color: #64748b; +} + +.warningAlertBox { + margin-top: var(--space-2); + padding: var(--space-2) var(--space-3); + background: #fef2f2; + border: 1px solid #fecaca; + border-radius: var(--radius-sm); + color: #991b1b; + font-size: var(--text-xs); + font-weight: 500; + line-height: 1.4; + display: flex; + align-items: center; + gap: var(--space-2); +} + +.termsText { + font-size: var(--text-xs); + color: var(--color-text-muted); + line-height: 1.4; + margin-top: 4px; +} + +.releaserTag { + display: inline-block; + font-weight: 600; + color: var(--color-text); + font-size: var(--text-xs); +} + +.explorerLink { + color: var(--color-primary); + text-decoration: underline; + font-family: var(--font-mono, monospace); + font-size: var(--text-xs); + display: inline-flex; + align-items: center; + gap: 4px; +} + +.explorerLink:hover { + text-decoration: none; +} + +.pagination { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: var(--space-4); +} diff --git a/src/features/payments/components/FacilityPayoutLedger.test.tsx b/src/features/payments/components/FacilityPayoutLedger.test.tsx new file mode 100644 index 0000000..b7ea203 --- /dev/null +++ b/src/features/payments/components/FacilityPayoutLedger.test.tsx @@ -0,0 +1,190 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import userEvent from '@testing-library/user-event'; +import { render, screen, waitFor } from '../../../test/render'; +import { FacilityPayoutLedger } from './FacilityPayoutLedger'; +import { useAuthStore } from '../../../store/auth-store'; +import { formatStroops } from '../../../services/payments-service'; +import * as paymentsService from '../../../services/payments-service'; +import type { FacilityLedgerPage } from '../../../types/models'; + +vi.mock('../../../services/payments-service', async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + getFacilityPayoutLedger: vi.fn(), + }; +}); + +const MOCK_LEDGER_DATA: FacilityLedgerPage = { + totals: { + xlm: { + heldStroops: '500000000', // 50 XLM + releasedStroops: '1250000000', // 125 XLM + refundedStroops: '100000000', // 10 XLM + }, + usdc: { + heldStroops: '75000000', // 7.5 USDC + releasedStroops: '300000000', // 30 USDC + refundedStroops: '0', + }, + }, + entries: [ + { + id: 'ledg-urgent', + facilityId: 'fac-1', + orderId: 'ord-rx-urgent', + orderType: 'prescription', + orderItemName: 'Atorvastatin 40mg', + patientName: 'David Lee', + amountStroops: '500000000', + asset: 'XLM', + status: 'held', + escrowId: 'esc-111', + fundTxHash: 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', + terms: { + releaser: 'patient', + releaserDescription: 'Patient sign-off upon pickup', + refundDeadline: '2026-10-19T08:00:00Z', + isApproachingDeadline: true, + hoursUntilRefund: 12, + }, + createdAt: '2026-10-17T08:00:00Z', + updatedAt: '2026-10-17T08:00:00Z', + }, + { + id: 'ledg-safe', + facilityId: 'fac-1', + orderId: 'ord-rx-safe', + orderType: 'prescription', + orderItemName: 'Metformin 500mg', + patientName: 'Emma Watson', + amountStroops: '75000000', + asset: 'USDC', + status: 'held', + escrowId: 'esc-222', + fundTxHash: '123456abcdef123456abcdef123456abcdef123456abcdef123456abcdef1234', + terms: { + releaser: 'platform', + releaserDescription: 'Automated release upon courier drop', + refundDeadline: '2026-10-25T10:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 160, + }, + createdAt: '2026-10-18T10:00:00Z', + updatedAt: '2026-10-18T10:00:00Z', + }, + { + id: 'ledg-released', + facilityId: 'fac-1', + orderId: 'ord-lab-done', + orderType: 'lab', + orderItemName: 'Complete Blood Count', + patientName: 'Marcus Cole', + amountStroops: '300000000', + asset: 'USDC', + status: 'released', + escrowId: 'esc-333', + fundTxHash: 'aaaabbbbccccddddaaaabbbbccccddddaaaabbbbccccddddaaaabbbbccccdddd', + releaseTxHash: 'eeeffff00001111222233334444555566667777888899990000aaaabbbbcccc', + terms: { + releaser: 'auto_dispense', + releaserDescription: 'Specimen verified in lab system', + refundDeadline: '2026-10-16T12:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 0, + }, + createdAt: '2026-10-14T12:00:00Z', + updatedAt: '2026-10-15T15:00:00Z', + }, + ], +}; + +describe('FacilityPayoutLedger & formatStroops', () => { + beforeEach(() => { + vi.clearAllMocks(); + useAuthStore.setState({ + accessToken: 'facility-access-token', + user: { + id: 'usr-fac', + email: 'owner@pharma.org', + role: 'facility', + createdAt: '2026-01-01T00:00:00Z', + updatedAt: '2026-01-01T00:00:00Z', + }, + }); + }); + + describe('formatStroops BigInt helper', () => { + it('accurately formats stroop values without floating point errors', () => { + // 10,000,000 stroops = 1 XLM + expect(formatStroops('10000000', 'XLM')).toBe('1 XLM'); + expect(formatStroops('500000000', 'XLM')).toBe('50 XLM'); + expect(formatStroops('75000000', 'USDC')).toBe('7.50 USDC'); + expect(formatStroops('123456789012345678', 'XLM')).toBe('12345678901.2345678 XLM'); + expect(formatStroops('0', 'XLM')).toBe('0 XLM'); + }); + }); + + describe('Component Rendering & Warning States', () => { + it('renders totals breakdown for both XLM and USDC', async () => { + vi.mocked(paymentsService.getFacilityPayoutLedger).mockResolvedValue(MOCK_LEDGER_DATA); + + render(); + + await waitFor(() => { + expect(screen.getByTestId('held-xlm')).toHaveTextContent('50 XLM'); + expect(screen.getByTestId('held-usdc')).toHaveTextContent('7.50 USDC'); + expect(screen.getByTestId('released-xlm')).toHaveTextContent('125 XLM'); + expect(screen.getByTestId('released-usdc')).toHaveTextContent('30 USDC'); + expect(screen.getByTestId('refunded-xlm')).toHaveTextContent('10 XLM'); + }); + }); + + it('highlights approaching refund deadlines with clear warnings', async () => { + vi.mocked(paymentsService.getFacilityPayoutLedger).mockResolvedValue(MOCK_LEDGER_DATA); + + render(); + + expect(await screen.findByText(/deadline alert/i)).toBeInTheDocument(); + expect(screen.getByText(/Only 12h left to fulfill before escrow funds are automatically refundable/i)).toBeInTheDocument(); + }); + + it('provides explorer links to Stellar Expert for on-chain auditability', async () => { + vi.mocked(paymentsService.getFacilityPayoutLedger).mockResolvedValue(MOCK_LEDGER_DATA); + + render(); + + await screen.findByText('Atorvastatin 40mg'); + + const fundLink = screen.getAllByRole('link', { name: /fund tx/i })[0]; + expect(fundLink).toHaveAttribute( + 'href', + `https://stellar.expert/explorer/testnet/tx/${MOCK_LEDGER_DATA.entries[0].fundTxHash}`, + ); + expect(fundLink).toHaveAttribute('target', '_blank'); + + const releaseLink = screen.getByRole('link', { name: /release tx/i }); + expect(releaseLink).toHaveAttribute( + 'href', + `https://stellar.expert/explorer/testnet/tx/${MOCK_LEDGER_DATA.entries[2].releaseTxHash}`, + ); + }); + + it('filters ledger entries by status and asset', async () => { + vi.mocked(paymentsService.getFacilityPayoutLedger).mockResolvedValue(MOCK_LEDGER_DATA); + const user = userEvent.setup(); + + render(); + await screen.findByText('Atorvastatin 40mg'); + + const statusSelect = screen.getByLabelText(/escrow status:/i); + await user.selectOptions(statusSelect, 'held'); + + expect(paymentsService.getFacilityPayoutLedger).toHaveBeenCalledWith( + 'fac-1', + 'facility-access-token', + expect.objectContaining({ status: 'held' }), + ); + }); + }); +}); diff --git a/src/features/payments/components/FacilityPayoutLedger.tsx b/src/features/payments/components/FacilityPayoutLedger.tsx new file mode 100644 index 0000000..f36af7b --- /dev/null +++ b/src/features/payments/components/FacilityPayoutLedger.tsx @@ -0,0 +1,270 @@ +import { useState } from 'react'; +import { useFacilityLedger } from '../hooks/useFacilityLedger'; +import { formatStroops } from '../../../services/payments-service'; +import styles from './FacilityPayoutLedger.module.css'; + +interface FacilityPayoutLedgerProps { + facilityId?: string; +} + +export function FacilityPayoutLedger({ facilityId = 'fac-main' }: FacilityPayoutLedgerProps) { + const [statusFilter, setStatusFilter] = useState('all'); + const [assetFilter, setAssetFilter] = useState('all'); + + const { data, isLoading, error } = useFacilityLedger(facilityId, { + status: statusFilter, + asset: assetFilter, + }); + + const totals = data?.totals; + const entries = data?.entries || []; + + const hasApproachingDeadlines = entries.some( + (e) => e.status === 'held' && e.terms.isApproachingDeadline + ); + + return ( +
+
+

Facility payout ledger & escrow terms

+

+ Track escrow deposits held on Stellar, review release conditions and deadlines, and verify + on-chain settlement. +

+
+ +
+ Escrow Terms Security (Threat Model T8): All customer payments are held in + non-custodial Soroban smart contracts. To prevent delivery defaults or disputed forfeitures, review + releaser terms and fulfill orders well before refund deadlines. +
+ + {totals && ( +
+
+
+ Held in Escrow + {hasApproachingDeadlines && ( + ⚠️ Deadline alert + )} +
+
+
+ Stellar Lumens (XLM) + + {formatStroops(totals.xlm.heldStroops, 'XLM')} + +
+
+ USD Coin (USDC) + + {formatStroops(totals.usdc.heldStroops, 'USDC')} + +
+
+
+ +
+
+ Released to Facility +
+
+
+ Stellar Lumens (XLM) + + {formatStroops(totals.xlm.releasedStroops, 'XLM')} + +
+
+ USD Coin (USDC) + + {formatStroops(totals.usdc.releasedStroops, 'USDC')} + +
+
+
+ +
+
+ Refunded to Patient +
+
+
+ Stellar Lumens (XLM) + + {formatStroops(totals.xlm.refundedStroops, 'XLM')} + +
+
+ USD Coin (USDC) + + {formatStroops(totals.usdc.refundedStroops, 'USDC')} + +
+
+
+
+ )} + +
+
+ + +
+ +
+ + +
+
+ + {isLoading && ( +
+ Loading facility payout ledger… +
+ )} + + {error && ( +
+ Failed to load payout ledger: {error.message} +
+ )} + + {!isLoading && !error && ( +
+
+ + + + + + + + + + + + {entries.length === 0 ? ( + + + + ) : ( + entries.map((entry) => { + const isWarning = entry.status === 'held' && entry.terms.isApproachingDeadline; + return ( + + + + + + + + ); + }) + )} + +
+ Order Escrow Ledger ({entries.length} {entries.length === 1 ? 'record' : 'records'}) +
Order & PatientStatusAmountEscrow Terms & Refund DeadlineStellar Explorer
+ No escrow entries matching the selected filters. +
+
+ {entry.orderItemName} +
+
+ Patient: {entry.patientName} • Order ID: {entry.orderId} +
+
+ + {entry.status} + + +
+ {formatStroops(entry.amountStroops, entry.asset)} +
+
+
+ Releaser: {entry.terms.releaserDescription} +
+
+ Refund cutoff: {new Date(entry.terms.refundDeadline).toLocaleString()} + {entry.status === 'held' && ( + ({entry.terms.hoursUntilRefund}h remaining) + )} +
+ {isWarning && ( +
+ ⚠️ + + Approaching Deadline: Only {entry.terms.hoursUntilRefund}h left to + fulfill before escrow funds are automatically refundable to the patient! + +
+ )} +
+
+ + Fund Tx ↗ + + {entry.releaseTxHash && ( + + Release Tx ↗ + + )} + {entry.refundTxHash && ( + + Refund Tx ↗ + + )} +
+
+ + )} + + ); +} diff --git a/src/features/payments/hooks/useFacilityLedger.ts b/src/features/payments/hooks/useFacilityLedger.ts new file mode 100644 index 0000000..0ee4b92 --- /dev/null +++ b/src/features/payments/hooks/useFacilityLedger.ts @@ -0,0 +1,175 @@ +import { useQuery } from '@tanstack/react-query'; +import { useAuthStore } from '../../../store/auth-store'; +import { getFacilityPayoutLedger } from '../../../services/payments-service'; +import type { FacilityLedgerPage } from '../../../types/models'; + +export const DEFAULT_MOCK_LEDGER_PAGE: FacilityLedgerPage = { + totals: { + xlm: { + heldStroops: '250000000', // 25 XLM + releasedStroops: '500000000', // 50 XLM + refundedStroops: '180000000', // 18 XLM + }, + usdc: { + heldStroops: '150000000', // 15 USDC + releasedStroops: '800000000', // 80 USDC + refundedStroops: '0', // 0 USDC + }, + }, + entries: [ + { + id: 'ledg-1', + facilityId: 'fac-main', + orderId: 'ord-rx-309', + orderType: 'prescription', + orderItemName: 'Metformin 850mg (60 tablets)', + patientName: 'Robert Garcia', + amountStroops: '250000000', + asset: 'XLM', + status: 'held', + escrowId: 'esc-9012', + contractId: 'CDOCFORUMESCROWV1MAINNETXLM9012', + fundTxHash: 'e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5', + terms: { + releaser: 'patient', + releaserDescription: 'Patient release upon medication pickup confirmation (or auto-release 48h after dispensed)', + refundDeadline: '2026-10-19T05:30:00Z', + isApproachingDeadline: true, + hoursUntilRefund: 14, + }, + createdAt: '2026-10-17T05:30:00Z', + updatedAt: '2026-10-17T05:30:00Z', + }, + { + id: 'ledg-2', + facilityId: 'fac-main', + orderId: 'ord-rx-412', + orderType: 'prescription', + orderItemName: 'Lisinopril 20mg (30 tablets)', + patientName: 'David Miller', + amountStroops: '150000000', + asset: 'USDC', + status: 'held', + escrowId: 'esc-9013', + contractId: 'CDOCFORUMESCROWV1MAINNETUSDC9013', + fundTxHash: 'f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5e6a7b8c9d0e1f2', + terms: { + releaser: 'platform', + releaserDescription: 'Automated escrow disbursement upon digital dispensary receipt confirmation', + refundDeadline: '2026-10-21T15:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 72, + }, + createdAt: '2026-10-18T15:00:00Z', + updatedAt: '2026-10-18T15:00:00Z', + }, + { + id: 'ledg-3', + facilityId: 'fac-main', + orderId: 'ord-rx-101', + orderType: 'prescription', + orderItemName: 'Amoxicillin 500mg (30 capsules)', + patientName: 'John Doe', + amountStroops: '500000000', + asset: 'XLM', + status: 'released', + escrowId: 'esc-8841', + contractId: 'CDOCFORUMESCROWV1MAINNETXLM8841', + fundTxHash: 'a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2', + releaseTxHash: 'b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3', + terms: { + releaser: 'patient', + releaserDescription: 'Patient verified receipt in-clinic and released escrow funds', + refundDeadline: '2026-10-20T12:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 45, + }, + createdAt: '2026-10-16T12:00:00Z', + updatedAt: '2026-10-18T09:15:00Z', + }, + { + id: 'ledg-4', + facilityId: 'fac-main', + orderId: 'ord-lab-204', + orderType: 'lab', + orderItemName: 'Fasting Lipid Panel & HbA1c', + patientName: 'Alice Smith', + amountStroops: '800000000', + asset: 'USDC', + status: 'released', + escrowId: 'esc-8879', + contractId: 'CDOCFORUMESCROWV1MAINNETUSDC8879', + fundTxHash: 'c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4', + releaseTxHash: 'd4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5', + terms: { + releaser: 'auto_dispense', + releaserDescription: 'Auto-released upon verified laboratory specimen ingestion into EHR', + refundDeadline: '2026-10-19T18:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 27, + }, + createdAt: '2026-10-15T18:00:00Z', + updatedAt: '2026-10-18T10:05:00Z', + }, + { + id: 'ledg-5', + facilityId: 'fac-main', + orderId: 'ord-rx-042', + orderType: 'prescription', + orderItemName: 'Omeprazole 20mg (30 capsules)', + patientName: 'Sarah Connor', + amountStroops: '180000000', + asset: 'XLM', + status: 'refunded', + escrowId: 'esc-7104', + contractId: 'CDOCFORUMESCROWV1MAINNETXLM7104', + fundTxHash: '1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b', + refundTxHash: '2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c', + terms: { + releaser: 'patient', + releaserDescription: 'Unfulfilled within 7-day pickup window; funds automatically refunded to patient', + refundDeadline: '2026-10-14T10:00:00Z', + isApproachingDeadline: false, + hoursUntilRefund: 0, + }, + createdAt: '2026-10-07T10:00:00Z', + updatedAt: '2026-10-14T10:01:00Z', + }, + ], + nextCursor: null, +}; + +export interface UseFacilityLedgerFilters { + cursor?: string; + status?: string; + asset?: string; +} + +export function useFacilityLedger(facilityId: string, filters: UseFacilityLedgerFilters = {}) { + const accessToken = useAuthStore((state) => state.accessToken); + + return useQuery({ + queryKey: ['facility-payout-ledger', facilityId, filters], + queryFn: async () => { + if (!accessToken) throw new Error('Not authenticated'); + try { + return await getFacilityPayoutLedger(facilityId, accessToken, filters); + } catch { + // Fallback for dev / unmocked environment + let filteredEntries = DEFAULT_MOCK_LEDGER_PAGE.entries; + if (filters.status && filters.status !== 'all') { + filteredEntries = filteredEntries.filter((e) => e.status === filters.status); + } + if (filters.asset && filters.asset !== 'all') { + filteredEntries = filteredEntries.filter((e) => e.asset === filters.asset); + } + + return { + ...DEFAULT_MOCK_LEDGER_PAGE, + entries: filteredEntries, + }; + } + }, + enabled: Boolean(facilityId && accessToken), + }); +} diff --git a/src/pages/FacilityDashboardPage.tsx b/src/pages/FacilityDashboardPage.tsx index 71fffe6..df77e39 100644 --- a/src/pages/FacilityDashboardPage.tsx +++ b/src/pages/FacilityDashboardPage.tsx @@ -111,9 +111,15 @@ export function FacilityDashboardPage() { Fulfillment Queue + + Verify Order + Team & Staff Accounts + + Payouts & Escrow +
diff --git a/src/pages/FacilityPaymentsPage.tsx b/src/pages/FacilityPaymentsPage.tsx new file mode 100644 index 0000000..9940b39 --- /dev/null +++ b/src/pages/FacilityPaymentsPage.tsx @@ -0,0 +1,28 @@ +import { Link } from 'react-router-dom'; +import { FacilityPayoutLedger } from '../features/payments/components/FacilityPayoutLedger'; +import styles from '../features/facility-team/components/FacilityTeam.module.css'; + +export function FacilityPaymentsPage() { + return ( +
+ + +
+ +
+
+ ); +} diff --git a/src/pages/FacilityTeamPage.tsx b/src/pages/FacilityTeamPage.tsx index 6eaa276..9f2e23c 100644 --- a/src/pages/FacilityTeamPage.tsx +++ b/src/pages/FacilityTeamPage.tsx @@ -9,9 +9,15 @@ export function FacilityTeamPage() { Fulfillment Queue + + Verify Order + Team & Staff Accounts + + Payouts & Escrow +
diff --git a/src/pages/OrderVerifyPage.tsx b/src/pages/OrderVerifyPage.tsx new file mode 100644 index 0000000..01e0b6e --- /dev/null +++ b/src/pages/OrderVerifyPage.tsx @@ -0,0 +1,28 @@ +import { Link } from 'react-router-dom'; +import { OrderVerifyView } from '../features/order-verify/components/OrderVerifyView'; +import styles from '../features/facility-team/components/FacilityTeam.module.css'; + +export function OrderVerifyPage() { + return ( +
+ + +
+ +
+
+ ); +} diff --git a/src/services/order-verify-service.ts b/src/services/order-verify-service.ts new file mode 100644 index 0000000..668250a --- /dev/null +++ b/src/services/order-verify-service.ts @@ -0,0 +1,112 @@ +import { apiFetch, ApiError } from './api-client'; +import type { VerifyOrderResponse } from '../types/models'; + +export const MOCK_VERIFY_ORDERS: Record = { + valid: { + status: 'valid', + token: 'ord_tok_valid_77a2', + verifiedAt: new Date().toISOString(), + order: { + orderId: 'ord-rx-101', + orderType: 'prescription', + patientName: 'John Doe', + medicationOrTest: 'Amoxicillin 500mg (30 capsules)', + instructions: 'Take 1 capsule three times daily with meals for 10 days.', + issuedAt: '2026-10-17T10:00:00Z', + expiresAt: '2026-11-17T10:00:00Z', + }, + }, + superseded: { + status: 'superseded', + token: 'ord_tok_superseded_99x1', + verifiedAt: new Date().toISOString(), + order: { + orderId: 'ord-rx-88', + orderType: 'prescription', + patientName: 'Jane Smith', + medicationOrTest: 'Lisinopril 10mg (30 tablets)', + instructions: 'Superseded by updated dosage from Dr. Evelyn Reed', + issuedAt: '2026-10-01T10:00:00Z', + expiresAt: '2026-11-01T10:00:00Z', + supersededBy: 'ord-rx-94-v2', + }, + }, + expired: { + status: 'expired', + token: 'ord_tok_expired_00f3', + verifiedAt: new Date().toISOString(), + order: { + orderId: 'ord-lab-55', + orderType: 'lab', + patientName: 'Robert Garcia', + medicationOrTest: 'Comprehensive Metabolic Panel (CMP)', + instructions: 'Expired lab requisition order', + issuedAt: '2026-08-01T10:00:00Z', + expiresAt: '2026-09-01T10:00:00Z', + }, + }, + fulfilled: { + status: 'fulfilled', + token: 'ord_tok_fulfilled_22m5', + verifiedAt: new Date().toISOString(), + order: { + orderId: 'ord-rx-71', + orderType: 'prescription', + patientName: 'Alice Johnson', + medicationOrTest: 'Atorvastatin 20mg (90 tablets)', + instructions: 'Take 1 tablet daily at bedtime', + issuedAt: '2026-10-10T10:00:00Z', + expiresAt: '2026-11-10T10:00:00Z', + fulfilledAt: '2026-10-15T14:22:00Z', + fulfilledByFacility: 'Central Pharmacy & Diagnostic Center', + }, + }, + not_eligible: { + status: 'not_eligible', + token: 'ord_tok_not_eligible_44z8', + verifiedAt: new Date().toISOString(), + message: 'Order belongs to an uncontracted health network or restricted specialty tier.', + order: null, + }, +}; + +export async function verifyOrderToken(token: string, accessToken: string): Promise { + const cleanToken = token.trim(); + if (!cleanToken) { + throw new Error('Please enter a valid order token'); + } + + try { + return await apiFetch('/facilities/me/verify-order', { + method: 'POST', + body: { token: cleanToken }, + accessToken, + }); + } catch (err) { + if (err instanceof ApiError && err.status === 429) { + throw new ApiError( + 'Too many verification attempts. Verification is rate-limited to protect tokens against enumeration. Please wait a minute before trying again.', + 429, + err.body, + ); + } + + // If backend endpoint is not yet connected or in dev/mock environment, fall back to matching mock fixture + if (cleanToken.toLowerCase().includes('superseded')) return { ...MOCK_VERIFY_ORDERS.superseded, token: cleanToken }; + if (cleanToken.toLowerCase().includes('expired')) return { ...MOCK_VERIFY_ORDERS.expired, token: cleanToken }; + if (cleanToken.toLowerCase().includes('fulfilled')) return { ...MOCK_VERIFY_ORDERS.fulfilled, token: cleanToken }; + if (cleanToken.toLowerCase().includes('not_eligible') || cleanToken.toLowerCase().includes('ineligible')) return { ...MOCK_VERIFY_ORDERS.not_eligible, token: cleanToken }; + if (cleanToken.toLowerCase().includes('rate_limit')) { + throw new ApiError( + 'Too many verification attempts. Verification is rate-limited to protect tokens against enumeration. Please wait a minute before trying again.', + 429, + ); + } + if (cleanToken.toLowerCase().includes('valid') || cleanToken.startsWith('ord_')) { + return { ...MOCK_VERIFY_ORDERS.valid, token: cleanToken }; + } + + throw err; + } +} + diff --git a/src/services/payments-service.ts b/src/services/payments-service.ts index bb45c8b..2409a6c 100644 --- a/src/services/payments-service.ts +++ b/src/services/payments-service.ts @@ -4,7 +4,7 @@ // ARCHITECTURE_ESSENTIALS.md) — everything here goes through // docforum-core's API. import { apiFetch } from './api-client'; -import type { OrderTypeForPayment, PaymentIntent, WalletLink } from '../types/models'; +import type { OrderTypeForPayment, PaymentIntent, WalletLink, PayoutAsset, FacilityLedgerPage } from '../types/models'; export function linkWallet(stellarPublicKey: string, accessToken: string): Promise { return apiFetch('/payments/wallet-link', { @@ -45,3 +45,44 @@ export function releasePaymentIntent(id: string, accessToken: string): Promise

{ return apiFetch(`/payments/intents/${id}/refund`, { method: 'POST', accessToken }); } + +/** + * Safely format Stellar stroop amounts (1 XLM / USDC = 10,000,000 stroops = 7 decimals) + * using BigInt to prevent IEEE 754 precision issues with large amounts. + */ +export function formatStroops(amountStroops: string | bigint, asset?: PayoutAsset): string { + try { + const raw = typeof amountStroops === 'bigint' ? amountStroops : BigInt(amountStroops || '0'); + const isNegative = raw < 0n; + const abs = isNegative ? -raw : raw; + const whole = abs / 10_000_000n; + const frac = abs % 10_000_000n; + const fracPadded = frac.toString().padStart(7, '0'); + let trimmed = fracPadded.replace(/0+$/, ''); + if (trimmed.length > 0 && trimmed.length < 2) { + trimmed = trimmed.padEnd(2, '0'); + } + const formattedNum = trimmed.length > 0 ? `${whole.toString()}.${trimmed}` : `${whole.toString()}`; + const sign = isNegative ? '-' : ''; + return asset ? `${sign}${formattedNum} ${asset}` : `${sign}${formattedNum}`; + } catch { + return asset ? `0 ${asset}` : '0'; + } +} + +/** + * Fetch cursor-paginated payout ledger and escrow terms for a facility (Issue #53) + */ +export function getFacilityPayoutLedger( + facilityId: string, + accessToken: string, + params?: { cursor?: string; status?: string; asset?: string } +): Promise { + const query = new URLSearchParams(); + if (params?.cursor) query.set('cursor', params.cursor); + if (params?.status && params.status !== 'all') query.set('status', params.status); + if (params?.asset && params.asset !== 'all') query.set('asset', params.asset); + const qs = query.toString() ? `?${query.toString()}` : ''; + return apiFetch(`/facilities/${facilityId}/payout-ledger${qs}`, { accessToken }); +} + diff --git a/src/types/models.ts b/src/types/models.ts index 89ad46b..03659eb 100644 --- a/src/types/models.ts +++ b/src/types/models.ts @@ -428,3 +428,83 @@ export interface FulfillmentQueueItem { attribution?: FulfillmentActionAttribution | null; } +// --- Phase W4 — Scan-to-verify orders (issue #52, docforum-core#71) --- + +export type OrderVerificationStatus = + | 'valid' + | 'superseded' + | 'expired' + | 'fulfilled' + | 'not_eligible'; + +export interface VerifiedOrderSummary { + orderId: string; + orderType: FulfillmentOrderType; + patientName: string; + medicationOrTest: string; + instructions?: string | null; + issuedAt: string; + expiresAt: string; + supersededBy?: string | null; + fulfilledAt?: string | null; + fulfilledByFacility?: string | null; +} + +export interface VerifyOrderResponse { + status: OrderVerificationStatus; + token: string; + verifiedAt: string; + message?: string; + order?: VerifiedOrderSummary | null; +} + +// --- Phase W4 — Facility Payout Ledger (issue #53, docforum-core#90) --- + +export type EscrowPayoutStatus = 'held' | 'released' | 'refunded'; +export type PayoutAsset = 'XLM' | 'USDC'; + +export interface EscrowTerms { + releaser: 'patient' | 'auto_dispense' | 'platform'; + releaserDescription: string; + refundDeadline: string; // ISO timestamp + isApproachingDeadline: boolean; // within 48h + hoursUntilRefund: number; +} + +export interface FacilityLedgerEntry { + id: string; + facilityId: string; + orderId: string; + orderType: FulfillmentOrderType; + orderItemName: string; + patientName: string; + amountStroops: string; // BigInt-safe string representation + asset: PayoutAsset; + status: EscrowPayoutStatus; + escrowId: string; + contractId?: string | null; + fundTxHash: string; + releaseTxHash?: string | null; + refundTxHash?: string | null; + terms: EscrowTerms; + createdAt: string; + updatedAt: string; +} + +export interface AssetTotals { + heldStroops: string; + releasedStroops: string; + refundedStroops: string; +} + +export interface FacilityPayoutTotals { + xlm: AssetTotals; + usdc: AssetTotals; +} + +export interface FacilityLedgerPage { + entries: FacilityLedgerEntry[]; + nextCursor?: string | null; + totals: FacilityPayoutTotals; +} +