# SETTINGS_SAVE_DELETE_NOT_WORKING_TROUBLESHOOT

## Gejala

Di halaman `Setting > General`, tombol berikut tidak benar-benar tersimpan/terhapus di database:

- `Save Settings`
- `Delete` user
- `Hapus Transaksi / Hapus Sales Report / Hapus Semua Data`

FE saat ini fallback ke mode lokal jika endpoint BE gagal/unauthorized.

## Endpoint yang dipanggil FE

1. Save general settings  
   - `PUT /api/v1/settings/general`
2. Load general settings  
   - `GET /api/v1/settings/general`
3. List users  
   - `GET /api/v1/settings/users`
4. Add user  
   - `POST /api/v1/settings/users`
5. Delete user  
   - `DELETE /api/v1/settings/users/:id`
6. Purge data  
   - `POST /api/v1/settings/data/purge`

## Checklist BE (wajib dicek)

1. **Route path & method harus persis sama**  
   - Jika BE pakai path/method berbeda (mis. `PATCH` bukan `PUT`), FE akan terlihat "tidak bekerja".
2. **Auth guard konsisten**  
   - Endpoint settings harus menerima bearer token login POS yang sama.
3. **Role permission**  
   - `admin/superadmin` harus punya akses untuk save/delete/purge.
4. **Status code benar**
   - sukses: `200/201`
   - token invalid: `401`
   - role tidak diizinkan: `403`
   - jangan return `200` tapi tanpa update DB.
5. **Commit DB benar-benar terjadi**
   - verifikasi data berubah di DB setelah response sukses.
6. **Purge endpoint**
   - `scope` yang didukung: `transactions`, `reports`, `all`
   - pastikan action benar-benar eksekusi sesuai scope.

## Contoh payload FE

### Save settings

```json
{
  "store_name": "POS Bazzar",
  "store_phone": "0812xxxx",
  "single_device_session": true
}
```

### Add user

```json
{
  "name": "Desak",
  "username": "desak",
  "password": "secret123",
  "role": "cashier"
}
```

### Purge data

```json
{
  "scope": "transactions"
}
```

## Acceptance Criteria

1. Klik `Save Settings` -> data berubah di DB dan terbaca kembali saat reload.
2. Klik `Delete` user -> user benar-benar hilang dari DB.
3. Klik tombol purge -> data sesuai scope benar-benar terhapus.
4. Tidak ada fallback "local only" jika endpoint BE sudah benar dan authorized.

