# Client Approval Settings Module Module ini mengatur konfigurasi approval per client, memungkinkan setiap client untuk memiliki setting approval yang berbeda. ## ✅ Status: SELESAI & SIAP DIGUNAKAN ### 🎯 Fitur Utama: - **Konfigurasi Approval per Client** - Setiap client bisa mengatur apakah memerlukan approval atau tidak - **Auto Publish Articles** - Artikel bisa di-publish otomatis jika tidak memerlukan approval - **Exemption Rules** - User, role, atau category tertentu bisa di-exempt dari approval - **Default Workflow** - Set workflow default untuk client - **Dynamic Toggle** - Bisa mengaktifkan/menonaktifkan approval secara dinamis ### 📁 Struktur File: ``` app/module/client_approval_settings/ ├── client_approval_settings.module.go # Module & Router ├── controller/ │ └── client_approval_settings.controller.go ├── request/ │ └── client_approval_settings.request.go ├── response/ │ └── client_approval_settings.response.go ├── repository/ │ ├── client_approval_settings.repository.go │ └── client_approval_settings.repository.impl.go ├── service/ │ └── client_approval_settings.service.go ├── mapper/ │ └── client_approval_settings.mapper.go └── README.md ``` ### 🔗 API Endpoints: - `GET /api/v1/client-approval-settings` - Get settings - `PUT /api/v1/client-approval-settings` - Update settings - `DELETE /api/v1/client-approval-settings` - Delete settings - `POST /api/v1/client-approval-settings/toggle-approval` - Toggle approval - `POST /api/v1/client-approval-settings/enable-approval` - Enable approval - `POST /api/v1/client-approval-settings/disable-approval` - Disable approval - `PUT /api/v1/client-approval-settings/default-workflow` - Set default workflow - `POST /api/v1/client-approval-settings/exempt-users` - Manage exempt users - `POST /api/v1/client-approval-settings/exempt-roles` - Manage exempt roles - `POST /api/v1/client-approval-settings/exempt-categories` - Manage exempt categories ### 🔧 Integration: - ✅ Terdaftar di Router (`app/router/api.go`) - ✅ Terdaftar di Main (`main.go`) - ✅ Terintegrasi dengan Articles Service - ✅ Menggunakan Entity yang sudah ada - ✅ Dependency Injection lengkap ### 💡 Cara Penggunaan: 1. **Get Settings Client**: ```bash GET /api/v1/client-approval-settings Headers: X-Client-Key: ``` 2. **Disable Approval untuk Client**: ```bash POST /api/v1/client-approval-settings/toggle-approval Body: {"requiresApproval": false} ``` 3. **Set Auto Publish**: ```bash PUT /api/v1/client-approval-settings Body: {"autoPublishArticles": true} ``` 4. **Add Exempt User**: ```bash POST /api/v1/client-approval-settings/exempt-users Body: {"userId": 123, "reason": "Admin user"} ``` ### 🎉 Module ini sekarang siap digunakan untuk mengatur approval system yang dinamis per client!