Internal demo12pm-admin
Admin Console

Admin operations desk

อ่าน evidence จาก service day เดียวกัน และเปิด action แบบบางสำหรับ support, commercial review และ fulfillment override ผ่าน 12pm-api โดยให้ backend ถือ role, rowVersion, idempotency และ audit trail

API contract9d56256

12pm-api owns authorization, lifecycle mutation, applied-price snapshots, and audit persistence

Review queue3ACCEPTED
Primary actorPLATFORM_COMMERCIAL_OWNER

commercial authority

Support issues6

6 logged events

Order row4

PICKED_UP

Operations evidence

Service-day health

svcday_INTERNAL_DEMO_2026_08_20

API readback
Orders2planned order count
Locked11 included decisions
Picked up1actual pickup evidence
Production11 ready batches
Accepted10 shortage
Support65 open / 6 linked
Excluded pay0non-success payment lock decisions
Overrides1operator-visible lock impact
Exceptions2payment exception records
Audit17recorded audit events

Lock and aggregate

1 aggregate rows
OVERRIDDEN_INCLUDEDorder_INTERNAL_DEMO_01

Ensures the completed demo order appears in locked demand.

Production summary

1 batches
READYINTERNAL_DEMO Basil Chicken

planned 1 · accepted 1 · shortage 0 · row 4

internal-demo.partner-kitchen.01

Payment exceptions

needs review
PAYMENT_SESSION_NOT_FOUNDgateway_event_366a6a35e53e64eb

INTERNAL_DEMO payment exception evidence

PAYMENT_SESSION_NOT_FOUNDgateway_event_432754fc2628deb1

INTERNAL_DEMO payment exception evidence

Recent trace

6 events
  1. 2026-08-28 12:56DEFAULT_LOCATION_UPDATED

    LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02

    internal-demo.employee.02 · UPDATED
  2. 2026-08-28 12:55DEFAULT_LOCATION_UPDATED

    LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02

    internal-demo.employee.02 · UPDATED
  3. 2026-08-28 12:54DEFAULT_LOCATION_UPDATED

    LocationEligibility · eligibility_principal_INTERNAL_DEMO_employee_02

    internal-demo.employee.02 · UPDATED
  4. 2026-08-28 12:37RECEIVED

    SupportIssue · support_issue_15b5f8c2790c

    internal-demo.employee.01 · RECEIVED
  5. 2026-08-28 12:30RECEIVED

    SupportIssue · support_issue_e1502c7da449

    internal-demo.employee.01 · RECEIVED
  6. 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 rows

No API data gaps reported

Readback sequenceGET /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-days
Visible service days
svcday_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
Support issue desk

เคสที่ผู้ใช้แจ้งจาก My order

อ่านรายการและรายละเอียดจาก 12pm-api ก่อนเริ่ม action ถัดไป

RECEIVED
Issues6
Events6
Principalinternal-demo.support.01
QR / รหัสรับอาหาร

support_issue_15b5f8c2790c

RECEIVED

ทดสอบจาก hosted smoke หลังแก้ response ให้ปลอดภัย

ReporterINTERNAL_DEMO Employee 01
Created2026-08-28 12:37
Row version1
owner unassignedresolver unassignedaction pending · outcome pendingcommunication pendingclosedAt pending
Linked records
Order order_INTERNAL_DEMO_01
Event timeline
  1. 2026-08-28 12:37RECEIVED

    ทดสอบจาก hosted smoke หลังแก้ response ให้ปลอดภัย

    internal-demo.employee.01 · action pending · outcome pending
Manual action log
Action endpointPOST /v1/support/issues/{supportIssueId}/events
M1 control surfaces

Setup, override, delivery, pickup

เปิด action เฉพาะจุดที่ API contract ส่งข้อมูลจำเป็นได้ครบ และแสดง dependency gap สำหรับปุ่มที่ยังต้อง publish body ก่อน

thin admin
Service calendar / cutoff

Service-day setup surface

API writable
Service daysvcday_INTERNAL_DEMO_EDITABLE_2099_08_25
Locationloc_INTERNAL_DEMO_ari
Row version1
Writable endpointsPOST /v1/admin/service-daysPATCH /v1/admin/service-days/{serviceDayId}POST /v1/admin/service-days/{serviceDayId}/cutoff-overridesPOST /v1/admin/service-days/{serviceDayId}/menu-items

Admin ส่งเฉพาะ DTO fields ที่ generated contract เผยแพร่ และอัปเดตหน้าจอจาก service-day readback หลัง API ตอบกลับ

Order correction / emergency override

order_INTERNAL_DEMO_01

PICKED_UP
Row version4
Service daysvcday_INTERNAL_DEMO_2026_08_20
Menu itemmenu_INTERNAL_DEMO_basil_chicken
Order correction log
Fulfillment override impact
Writable endpointsPOST /v1/admin/orders/{orderId}/correctionsPOST /v1/admin/orders/{orderId}/fulfillment-overrides

Correction records only operator-entered type, reason, impact และ current rowVersion; API owns price/payment/fulfillment authority and correction outcome.

Delivery wave / building arrival

Delivery staff surface

API writable
กด Create/load delivery wave เพื่อรับ wave id, stop id และ rowVersion จาก API ก่อนทำ transition
  1. API readbackNo recent delivery trace in summary window

    Delivery command state now comes from typed wave receipt

Writable endpointsPOST /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}/complete

Admin ส่งเฉพาะ API rowVersion, reason และ stop evidence fields ที่ typed delivery contract เผยแพร่

Pickup scan / fallback

pickup_pass_INTERNAL_DEMO_01

PICKED_UP
Pickup passpickup_pass_INTERNAL_DEMO_01
Row version2
StatusPICKED_UP
INTERNAL_DEMO pickup pass read responseduplicate / wrong / invalid pass outcomes stay API-owned
Writable endpointsPOST /v1/pickups/scanPOST /v1/pickups/fallback

Admin ส่งเฉพาะ pickupPassId, rowVersion และ fallback reason ที่ API pickup contract เผยแพร่

Offer review queue

Group meal from 20

partner_INTERNAL_DEMO_kitchen

ACTIVE
VersionVersion 1
Submitted by12pm-api offer readback
Service scopeloc_INTERNAL_DEMO_ari
Pickup scopepickup_INTERNAL_DEMO_lobby
Validity2026-08-19T00:00:00.000Z
Price noteTHB 149.00
Group meal from 20
Commercial action

Override revision

Platform Commercial Owner

OVERRIDDEN
EndpointPOST /v1/admin/offers/{offerId}/versions/{versionId}/override-revision

Reason/impact แสดงให้ operator เห็น แต่ API contract ตอนนี้ยัง ไม่รับ body สำหรับ commercial override/deactivate

Review signals

Protected lifecycle checks

12pm-api

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

Owns

offer review, override revision, and deactivation request

Cannot

change payment proof approval

Partner Price Admin

Owns

draft, validate, activate, and revise partner offers

Cannot

deactivate active versions

Payment Admin

Owns

manual payment proof approval or rejection

Cannot

change pricing or selected offer levels

12pm-api

Owns

authorization, validation, lifecycle mutation, and audit persistence

Cannot

delegate protected decisions to frontend state

Audit trail

Commercial override trace

MVP price book review
Endpoint sequenceGET /v1/partner/offersPOST /v1/admin/offers/{offerId}/versions/{versionId}/override-revisionPOST /v1/admin/offers/{offerId}/versions/{versionId}/deactivateGET /v1/admin/audit-events
Audit fieldsactorreasontimestampimpact
IdempotencyIdempotency-Key: 12pm-admin:override-revision:partner-lunchIdempotency-Key: 12pm-admin:deactivate-version:partner-lunch