# 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 [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`