Admin operations desk
อ่าน evidence จาก service day เดียวกัน และเปิด action แบบบางสำหรับ support, commercial review และ fulfillment override ผ่าน 12pm-api โดยให้ backend ถือ role, rowVersion, idempotency และ audit trail
12pm-api owns authorization, lifecycle mutation, applied-price snapshots, and audit persistence
commercial authority
6 logged events
PICKED_UP
Service-day health
svcday_INTERNAL_DEMO_2026_08_20
Lock and aggregate
1 aggregate rowsEnsures the completed demo order appears in locked demand.
Production summary
1 batchesplanned 1 · accepted 1 · shortage 0 · row 4
internal-demo.partner-kitchen.01Payment exceptions
needs reviewINTERNAL_DEMO payment exception evidence
INTERNAL_DEMO payment exception evidence
Recent trace
6 events- 2026-08-28 12:56DEFAULT_LOCATION_UPDATED
LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02
internal-demo.employee.02 · UPDATED - 2026-08-28 12:55DEFAULT_LOCATION_UPDATED
LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02
internal-demo.employee.02 · UPDATED - 2026-08-28 12:54DEFAULT_LOCATION_UPDATED
LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02
internal-demo.employee.02 · UPDATED - 2026-08-28 12:37RECEIVED
SupportIssue · support_issue_15b5f8c2790c
internal-demo.employee.01 · RECEIVED - 2026-08-28 12:30RECEIVED
SupportIssue · support_issue_e1502c7da449
internal-demo.employee.01 · RECEIVED - 2026-08-22 14:59DEFAULT_LOCATION_UPDATED
LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_01
internal-demo.employee.01 · UPDATED
Data gaps and audit
17 audit rowsNo API data gaps reported
GET /v1/admin/service-days/{serviceDayId}/operations-summaryGET /v1/admin/service-days/{serviceDayId}/lock-decisionsGET /v1/admin/service-days/{serviceDayId}/aggregateGET /v1/partner/service-days/{serviceDayId}/production-summaryGET /v1/admin/payment-exceptionsGET /v1/admin/audit-eventsGET /v1/service-dayssvcday_INTERNAL_DEMO_EDITABLE_2099_08_25 · 2099-08-25 · ACTIVE · row 1svcday_INTERNAL_DEMO_MEAL_PLAN_2099_08_26 · 2099-08-26 · ACTIVE · row 1svcday_INTERNAL_DEMO_MEAL_PLAN_2099_08_27 · 2099-08-27 · ACTIVE · row 1เคสที่ผู้ใช้แจ้งจาก My order
อ่านรายการและรายละเอียดจาก 12pm-api ก่อนเริ่ม action ถัดไป
support_issue_15b5f8c2790c
ทดสอบจาก hosted smoke หลังแก้ response ให้ปลอดภัย
owner unassignedresolver unassignedaction pending · outcome pendingcommunication pendingclosedAt pendingOrder order_INTERNAL_DEMO_01- 2026-08-28 12:37RECEIVED
ทดสอบจาก hosted smoke หลังแก้ response ให้ปลอดภัย
internal-demo.employee.01 · action pending · outcome pending
POST /v1/support/issues/{supportIssueId}/eventsSetup, override, delivery, pickup
เปิด action เฉพาะจุดที่ API contract ส่งข้อมูลจำเป็นได้ครบ และแสดง dependency gap สำหรับปุ่มที่ยังต้อง publish body ก่อน
Service-day setup surface
POST /v1/admin/service-daysPATCH /v1/admin/service-days/{serviceDayId}POST /v1/admin/service-days/{serviceDayId}/cutoff-overridesPOST /v1/admin/service-days/{serviceDayId}/menu-itemsAdmin ส่งเฉพาะ DTO fields ที่ generated contract เผยแพร่ และอัปเดตหน้าจอจาก service-day readback หลัง API ตอบกลับ
order_INTERNAL_DEMO_01
POST /v1/admin/orders/{orderId}/correctionsPOST /v1/admin/orders/{orderId}/fulfillment-overridesCorrection records only operator-entered type, reason, impact และ current rowVersion; API owns price/payment/fulfillment authority and correction outcome.
Delivery staff surface
- API readbackNo recent delivery trace in summary window
Delivery command state now comes from typed wave receipt
POST /v1/admin/delivery-wavesPOST /v1/delivery/waves/{waveId}/dispatchPOST /v1/delivery/waves/{waveId}/stops/{stopId}/arrivePOST /v1/delivery/waves/{waveId}/stops/{stopId}/pickup-point-readyPOST /v1/delivery/waves/{waveId}/delayPOST /v1/delivery/waves/{waveId}/completeAdmin ส่งเฉพาะ API rowVersion, reason และ stop evidence fields ที่ typed delivery contract เผยแพร่
pickup_pass_INTERNAL_DEMO_01
INTERNAL_DEMO pickup pass read responseduplicate / wrong / invalid pass outcomes stay API-ownedPOST /v1/pickups/scanPOST /v1/pickups/fallbackAdmin ส่งเฉพาะ pickupPassId, rowVersion และ fallback reason ที่ API pickup contract เผยแพร่
Group meal from 20
partner_INTERNAL_DEMO_kitchen
Override revision
Platform Commercial Owner
POST /v1/admin/offers/{offerId}/versions/{versionId}/override-revisionReason/impact แสดงให้ operator เห็น แต่ API contract ตอนนี้ยัง ไม่รับ body สำหรับ commercial override/deactivate
Protected lifecycle checks
referenced active version is immutable
override creates a new audited revision
deactivation never hard-deletes history
payment proof review stays separate from offer review
Platform Commercial Owner
offer review, override revision, and deactivation request
change payment proof approval
Partner Price Admin
draft, validate, activate, and revise partner offers
deactivate active versions
Payment Admin
manual payment proof approval or rejection
change pricing or selected offer levels
12pm-api
authorization, validation, lifecycle mutation, and audit persistence
delegate protected decisions to frontend state
Commercial override trace
GET /v1/partner/offersPOST /v1/admin/offers/{offerId}/versions/{versionId}/override-revisionPOST /v1/admin/offers/{offerId}/versions/{versionId}/deactivateGET /v1/admin/audit-eventsactorreasontimestampimpactIdempotency-Key: 12pm-admin:override-revision:partner-lunchIdempotency-Key: 12pm-admin:deactivate-version:partner-lunch