# รายงานผลทดสอบ — Premium เฟส 3 (Deploy & Orchestrate)

> รันจริงด้วย `python orchestrate_dryrun.py` (เฟส1 SAMPLE → เฟส2 quality → sqlite load)
> ผลรัน: **5/5 platforms · 5 orders loaded · status 200 (all-ok) + 207 (partial) ถูกต้อง**

| # | กรณีทดสอบ | ผลที่คาดหวัง | ผล |
|---|---|---|---|
| 1 | orchestration end-to-end | เฟส1 → เฟส2 → warehouse ครบ loop | ✅ ผ่าน |
| 2 | สถานะ 200 (ทุกแพลตฟอร์มสำเร็จ) | คืน 200 | ✅ ผ่าน |
| 3 | สถานะ 207 (1 แพลตฟอร์มล้ม) | คืน 207 · ที่เหลือยังโหลด ไม่ abort | ✅ ผ่าน |
| 4 | main.py compile | syntax OK | ✅ ผ่าน |
| 5 | Dockerfile (functions-framework target=run) | โครงถูก พร้อม build Cloud Run | ✅ ผ่าน |
| 6 | deploy.sh syntax (`bash -n`) | ผ่าน · สร้าง secret แบบ idempotent | ✅ ผ่าน |
| 7 | secret จาก Secret Manager | ไม่ hardcode · ผูก --set-secrets | ✅ ผ่าน |
| 8 | Cloud Scheduler ทุก 4 ชม. | cron `0 */4 * * *` + OIDC | ✅ ผ่าน |
| 9 | Cloud SQL connection | --add-cloudsql-instances | ✅ ผ่าน |

**สรุป:** ผ่าน 9/9 — orchestration พิสูจน์รันจริง · deploy artifacts พร้อมขึ้น Cloud Run
**ขอบเขตเฟสนี้:** Docker + Cloud Run + Scheduler + Secret + SQL · *ยังไม่* monitoring/dashboard (เฟส 4)
> หมายเหตุ: การ `gcloud run deploy` จริงต้องทำบน GCP ของลูกค้า (มีค่าใช้จ่าย + เป็น cloud ของลูกค้า) — เราเตรียม script + พิสูจน์ logic ให้ครบ
