# Persetujuan

Pemilik bisa mewajibkan persetujuan di **Settings → Workspace**. Setelah itu editor (dan koneksi OAuth yang disetujui editor) tidak
bisa langsung menjadwalkan atau menerbitkan. Mereka mengajukan post untuk direview:

```json
{ "caption": "…", "targets": [ … ], "action": "submit", "scheduledAt": "2026-11-07T10:00:00+08:00" }
```

Post disimpan sebagai draft dengan `review: "pending"`, dan pemilik mendapat notifikasi.

## Menyetujui

Pemilik (atau API key milik pemilik) menyetujui dengan [`POST /posts/{id}/approve`](/api/operations/approvepost/). Post diperiksa
lalu dijadwalkan pada `scheduledAt`-nya sendiri, atau pada waktu di body:

```json
{ "scheduledAt": "2026-11-07T12:00:00+08:00" }
```

Post tanpa waktu di masa depan mengembalikan `400` sampai Anda mengirimkannya.

## Menolak

[`POST /posts/{id}/reject`](/api/operations/rejectpost/) mengembalikannya menjadi draft biasa (`review: "none"`). Penulisnya mendapat
notifikasi berisi alasan opsional:

```json
{ "reason": "Pakai foto menu yang baru, ya." }
```

## Mencari post yang perlu direview

`GET /posts?status=drafts` lalu cari `review: "pending"`. Agent bisa melakukan hal yang sama dengan `list_posts`, lalu `approve_post`
atau `reject_post`. Alur yang enak untuk pemilik: *"Tampilkan yang menunggu persetujuan dan setujui yang sesuai gaya kita."*

## Persetujuan klien

Terpisah dari persetujuan tim, link pratinjau publik sebuah post membuat klien bisa menyetujuinya tanpa akun. Saat mereka
menyetujui, `clientApprovedAt` terisi; mengubah caption atau media sesudahnya menghapusnya.