📚 docs(Console README): Tambahkan dokumentasi lengkap untuk console commands cleanup inspeksi

Membuat dokumentasi komprehensif untuk semua command cleanup dengan contoh penggunaan dan troubleshooting guide

- Dokumentasi untuk 3 command utama: lpj:cleanup-inspeksi, lpj:cleanup-single-inspeksi, dan lpj:cleanup-inspeksi-status
- Usage examples untuk setiap command dengan berbagai opsi (--sync, --force, --dry-run, --detailed)
- Penjelasan alur kerja cleanup (identifikasi → proses → logging → transaction)
- Informasi scheduling otomatis (setiap hari jam 2 pagi dan mingguan)
- Lokasi log files untuk monitoring dan troubleshooting
- Troubleshooting guide untuk command tidak muncul, data tidak ter-cleanup, dan performance issues
- Best practices untuk data besar dengan mode queue vs sync
This commit is contained in:
Daeng Deni Mardaeni
2025-12-09 15:38:35 +07:00
parent 37fb5c90d5
commit 3315e1d4b6

123
app/Console/README.md Normal file
View File

@@ -0,0 +1,123 @@
# Console Commands untuk Cleanup Data Inspeksi
## Daftar Command
### 1. `lpj:cleanup-inspeksi`
Command utama untuk cleanup data inspeksi secara batch.
**Usage:**
```bash
php artisan lpj:cleanup-inspeksi [options]
```
**Options:**
- `--permohonan-id=ID` - Filter berdasarkan permohonan ID (opsional)
- `--sync` - Jalankan secara synchronous
- `--dry-run` - Tampilkan preview tanpa menjalankan cleanup
- `--force` - Jalankan tanpa konfirmasi
**Contoh Penggunaan:**
```bash
# Preview data yang akan di-cleanup
php artisan lpj:cleanup-inspeksi --dry-run
# Cleanup semua data (dengan konfirmasi)
php artisan lpj:cleanup-inspeksi
# Cleanup untuk permohonan tertentu
php artisan lpj:cleanup-inspeksi --permohonan-id=123 --force
# Jalankan secara sync
php artisan lpj:cleanup-inspeksi --sync --force
```
### 2. `lpj:cleanup-single-inspeksi`
Command untuk cleanup 1 permohonan dan user tertentu.
**Usage:**
```bash
php artisan lpj:cleanup-single-inspeksi <permohonan-id> <created-by> [options]
```
**Arguments:**
- `permohonan-id` - ID permohonan yang akan di-cleanup (required)
- `created-by` - ID user yang membuat data (required)
**Options:**
- `--sync` - Jalankan secara synchronous
- `--force` - Jalankan tanpa konfirmasi
**Contoh Penggunaan:**
```bash
# Cleanup untuk permohonan 123 oleh user 456
php artisan lpj:cleanup-single-inspeksi 123 456
# Jalankan secara sync tanpa konfirmasi
php artisan lpj:cleanup-single-inspeksi 123 456 --sync --force
```
### 3. `lpj:cleanup-inspeksi-status`
Command untuk mengecek status data inspeksi dan melihat statistik cleanup.
**Usage:**
```bash
php artisan lpj:cleanup-inspeksi-status [options]
```
**Options:**
- `--permohonan-id=ID` - Filter berdasarkan permohonan ID
- `--created-by=ID` - Filter berdasarkan user ID
- `--detailed` - Tampilkan detail data
**Contoh Penggunaan:**
```bash
# Lihat statistik umum
php artisan lpj:cleanup-inspeksi-status
# Filter berdasarkan permohonan
php artisan lpj:cleanup-inspeksi-status --permohonan-id=123
# Tampilkan detail data
php artisan lpj:cleanup-inspeksi-status --detailed
```
## Scheduling
Command cleanup otomatis dijalankan setiap hari jam 2 pagi dan setiap minggu. Konfigurasi scheduling ada di `LpjServiceProvider.php`.
## Monitoring
Semua aktivitas cleanup dicatat di log file:
- `storage/logs/laravel.log` - Log umum
- `storage/logs/cleanup-inspeksi.log` - Log cleanup harian
- `storage/logs/cleanup-inspeksi-weekly.log` - Log cleanup mingguan
## Alur Kerja Cleanup
1. **Identifikasi**: Cari data inspeksi yang memiliki:
- Data baru dengan `dokument_id` (tidak null)
- Data lama tanpa `dokument_id` (null)
- Sama `permohonan_id` dan `created_by`
2. **Proses**: Soft delete data lama menggunakan Laravel SoftDeletes
3. **Logging**: Catat setiap operasi untuk audit trail
4. **Transaction**: Gunakan DB transaction untuk konsistensi data
## Troubleshooting
### Command tidak muncul
Pastikan service provider sudah diregister dengan benar:
```bash
php artisan list | grep lpj
```
### Data tidak ter-cleanup
- Cek log untuk error
- Pastikan ada data yang memenuhi kriteria
- Gunakan `--dry-run` untuk preview
- Gunakan `--detailed` untuk melihat detail data
### Performance
Untuk data besar, gunakan mode queue (default) daripada `--sync`