## 14. Admin CMS — /mimoadminza

### Admin Path

```text
/admin → เปลี่ยนเป็น path จริงที่คุณเลือก
├── /tools          # CRUD tools
├── /guides         # CRUD guides  
├── /news           # CRUD news
├── /deals          # CRUD deals
└── /media          # Media library
```

> ⚠️ **ทำไมต้องเปลี่ยน path?** — เพื่อความปลอดภัย อย่าใช้ path default `/admin`
> เพราะรู้กันทั่วว่า admin อยู่ตรงนี้ ยิ่งเว็บคุณมีคนใช้เยอะ ยิ่งต้องซ่อน
> วิธีทำใน Next.js: ใช้ redirect ใน `next.config.ts`
> ```typescript
> async redirects() {
>   return [{ source: "/admin", destination: "/your-secret-path", permanent: false }]
> }
> ```

### CRUD Pattern (Server Actions)

ระบบ CMS ที่ mimoth.com ใช้เป็น **Mock-first approach** — สร้าง mock data ก่อน, 
แล้วค่อยเชื่อม Supabase จริง ข้อดีคือ dev เร็วและไม่พัง production

```typescript
// ตัวอย่าง Server Action สำหรับสร้าง tool ใหม่
// ทำไมต้อง Server Action? — เพราะข้อมูลต้อง validate ฝั่ง server
// ถ้า validate แค่ client side, hacker ส่ง request ตรงมาข้ามได้
"use server"

export async function createTool(formData: FormData) {
  const slug = formData.get("slug")
  const name = formData.get("name")
  // validate + save to database
}
```