import java.util.List;

/** Bagian 1: pipeline sekuensial — baseline untuk seluruh bagian berikutnya. */
public class DemoPipeline {

    public static void main(String[] args) {
        HasilPipeline hasil = Pipeline.jalankanSekuensial(DataContoh.isiBerkas());

        System.out.println("== Tahapan pipeline (sekuensial) ==");
        System.out.println("tahap baca         : " + hasil.jumlahBaris() + " baris");
        System.out.println("tahap validasi     : " + hasil.jumlahBaris() + " baris diperiksa, "
                + hasil.jumlahSah() + " sah, " + hasil.jumlahDitolak() + " ditolak");
        System.out.println("tahap transformasi : " + hasil.jumlahSah() + " kejadian");
        System.out.println("tahap agregasi     : " + hasil.jumlahKota() + " kota, "
                + hasil.jumlahKategori() + " kategori");
        System.out.println("tahap tulis        : " + hasil.laporan().size() + " baris laporan");
        System.out.println();
        hasil.laporan().forEach(System.out::println);
    }
}
