- Menambahkan class baru `GenerateAtmTransactionReportJob` untuk menghasilkan laporan transaksi ATM dalam format CSV.
- Memproses transaksi ATM berdasarkan periode tertentu dengan pagination menggunakan `chunk`.
- Mendukung inisialisasi log laporan menggunakan model `AtmTransactionReportLog`.
- Menyertakan fitur untuk menulis header CSV dan data transaksi, termasuk handling escape karakter pada nilai CSV.
- Memperkenalkan direktori penyimpanan baru:
- Path: `reports/atm_transactions/<period>.csv`.
- Membuat direktori jika belum ada sebelum menyimpan laporan.
- Menambahkan logging:
- Menyertakan informasi waktu mulai, lokasi file laporan CSV, dan jumlah transaksi yang diproses.
- Menangani error dengan logging error message dan memperbarui status log laporan.
- Menambahkan logika pembaruan log laporan:
- Field `status`, `file_path`, `file_size`, dan `record_count` akan diperbarui setelah proses selesai.
- Handling error pada log laporan jika proses gagal.
- Fitur tambahan:
- Handling escape untuk nilai CSV guna memastikan format tetap valid.
- Menangani error dengan throwing exception jika terjadi masalah selama proses.
Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>