# Deploy Runbook — PowerTools Competitor Monitor (Standard)

> ระบบ: Cloud Scheduler → Cloud Function (Python) → scrape → Google Sheets → Telegram + Looker

## เตรียมก่อน
- ติดตั้ง `gcloud` CLI + ล็อกอิน (`gcloud auth login`)
- ไฟล์: `main.py`, `requirements.txt`, `targets.json`, `.env`, `service_account.json`

## ขั้นตอน

### 1) เตรียม GCP project
สร้าง Project ใหม่ใน GCP Console → เปิด API: **Cloud Functions, Cloud Scheduler, Secret Manager, Google Sheets API**

### 2) Service Account (จุดพลาดบ่อยที่สุด)
- IAM & Admin → Service Accounts → สร้างใหม่ (เช่น `competitor-bot`)
- กดอีเมล → Keys → Add Key → JSON (ดาวน์โหลดเก็บเป็น `service_account.json`)
- ⚠️ **นำอีเมล service account ไป Share ให้ Google Sheet (สิทธิ์ Editor)** — ไม่งั้นเขียนข้อมูลไม่ได้

### 3) Telegram
- ทัก **@BotFather** → สร้างบอท → ได้ `TG_TOKEN`
- เอาบอทเข้ากลุ่ม → หา chat id (เช่นผ่าน @userinfobot) → `TG_CHAT`

### 4) Config
คัดลอก `config.example.env` → `.env` แล้วกรอก `SHEET_ID`, `TG_TOKEN`, `TG_CHAT` ให้ครบ + แก้ `targets.json` ใส่ URL/selector คู่แข่งจริง

### 5) Deploy ฟังก์ชัน
```bash
gcloud functions deploy competitor-monitor \
  --runtime python311 --region asia-southeast1 \
  --trigger-http --entry-point run \
  --set-env-vars SHEET_ID=YOUR_SHEET_ID,TG_TOKEN=YOUR_TOKEN,TG_CHAT=YOUR_CHAT_ID
```
⚠️ ถ้า deploy ไม่ผ่าน เช็คว่า `requirements.txt` อยู่โฟลเดอร์เดียวกับ `main.py`

### 6) ตั้ง Cloud Scheduler (รันทุกวัน 08:00)
```bash
gcloud scheduler jobs create http daily-competitor-check \
  --schedule "0 8 * * *" --time-zone Asia/Bangkok \
  --uri <FUNCTION_URL_จากขั้นที่5> --http-method GET
```

### 7) ทดสอบ
กด **Force Run** ใน Cloud Scheduler Console → เช็คว่ามีแถวใหม่ในแท็บ `Results` + Telegram เด้ง

## เช็คสำเร็จ
แถวเข้า Results ภายในไม่กี่วินาที · status=Success · ถ้าตั้งราคาให้คู่แข่งถูกกว่า ≥10% ต้องได้ alert
