# PDPA Consent Logging Template

Template สำหรับเพิ่ม PDPA consent logging ใน Next.js + Payload CMS (MongoDB)

## Files

```
consent/
├── collections/
│   └── ConsentLogs.ts     # Payload collection สำหรับ consent logs
├── api/
│   └── route.ts           # API endpoint สำหรับบันทึก consent
├── cookie-banner.tsx       # CookieBanner component
└── README.md
```

## วิธีใช้

### 1. เพิ่ม ConsentLogs Collection

Copy `collections/ConsentLogs.ts` ไปที่ `src/collections/` ของ project

### 2. สร้าง API Endpoint

Copy `api/route.ts` ไปที่ `src/app/api/consent/route.ts`

### 3. เพิ่ม CookieBanner Component

Copy `cookie-banner.tsx` ไปที่ `src/components/`

### 4. เพิ่มใน Layout

เพิ่ม `<CookieBanner />` ใน `src/app/(frontend)/layout.tsx`:

```tsx
import { CookieBanner } from '@/components/cookie-banner'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <CookieBanner />
      </body>
    </html>
  )
}
```

### 5. เพิ่ม Collection ใน payload.config.ts

```ts
import ConsentLogs from './collections/ConsentLogs'

export default buildConfig({
  collections: [Users, Media, Snacks, Orders, ConsentLogs],
  // ...
})
```

## API

### POST /api/consent

บันทึก consent action

**Request:**
```json
{
  "action": "accept",
  "purpose": "all",
  "analytics": true,
  "marketing": false,
  "functional": true
}
```

**Response:**
```json
{
  "success": true,
  "doc": {
    "id": "...",
    "action": "accept",
    "purpose": "all",
    "analytics": true,
    "marketing": false,
    "functional": true,
    "userAgent": "Mozilla/5.0...",
    "ip": "127.0.0.1",
    "timestamp": "2026-04-10T00:00:00.000Z"
  }
}
```

## ⚠️ Pitfalls สำคัญ

1. **ใช้ `mongooseAdapter` ไม่ใช่ `mongodbAdapter`**
2. **ConsentLogs ต้องใช้ `export default`** ไม่ใช่ named export
