From 3315e1d4b6683d103019a39a1e7ce57832ebf8cc Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 9 Dec 2025 15:38:35 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9A=20docs(Console=20README):=20Tambah?= =?UTF-8?q?kan=20dokumentasi=20lengkap=20untuk=20console=20commands=20clea?= =?UTF-8?q?nup=20inspeksi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- app/Console/README.md | 123 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 app/Console/README.md diff --git a/app/Console/README.md b/app/Console/README.md new file mode 100644 index 0000000..9077e6b --- /dev/null +++ b/app/Console/README.md @@ -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 [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` \ No newline at end of file