Files
lpj/app/Console/README.md
Daeng Deni Mardaeni 3315e1d4b6 📚 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
2025-12-09 15:38:35 +07:00

3.2 KiB

Console Commands untuk Cleanup Data Inspeksi

Daftar Command

1. lpj:cleanup-inspeksi

Command utama untuk cleanup data inspeksi secara batch.

Usage:

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:

# 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:

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:

# 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:

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:

# 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:

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