Materi
Log pengiriman adalah bukti apa yang benar-benar dikirim alur, terpisah dari apa yang seharusnya dikirim menurut aturannya. Setiap baris log menyebut kontak, nomor pesan, dan tanggal kirim. Audit membandingkan keduanya dari dua arah: pesan yang ada di log tetapi melanggar aturan, dan pesan yang seharusnya ada tetapi tidak tercatat.
Arah pertama mencari pelanggaran exit condition. Untuk setiap baris log, periksa apakah kontaknya sudah keluar pada atau sebelum tanggal kirim: sudah berhenti atau mengeluh menurut tanggal di daftar suppression, atau sudah membeli sejak mendaftar. Pembelian sebelum tanggal daftar tidak dihitung, karena exit condition hanya berlaku sesudah kontak masuk alur.
Arah kedua menghitung jadwal dengan date(): pesan 3 alur sambutan jatuh tempo pada date(tgl_daftar, '+5 days'). Pesan yang jatuh temponya sesudah tanggal hari ini belum bisa dianggap hilang.
-- Kursus Jahit Melati: pengingat ke-2 yang terkirim sesudah peserta membayar
SELECT g.log_id, g.peserta_id
FROM log_pengingat g
WHERE g.pesan = 2
AND EXISTS (SELECT 1 FROM bayar b
WHERE b.peserta_id = g.peserta_id AND b.tanggal <= g.tanggal);