import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Titik masuk aplikasi catatan tugas versi awal:
 * menu utama, pembacaan input, dan penyimpanan sementara di memori.
 */
public class AplikasiTugas {

    public static void main(String[] args) {
        List<Tugas> daftar = new ArrayList<>();
        Scanner masukan = new Scanner(System.in);
        boolean berjalan = true;

        System.out.println("=== Aplikasi Catatan Tugas ===");

        while (berjalan) {
            tampilkanMenu();
            String pilihan = masukan.nextLine().strip();
            switch (pilihan) {
                case "1" -> {
                    System.out.print("Judul tugas: ");
                    String judul = masukan.nextLine();
                    daftar.add(new Tugas(daftar.size() + 1, judul));
                    System.out.println("Tugas ditambahkan.");
                }
                case "2" -> tampilkanDaftar(daftar);
                case "0" -> {
                    berjalan = false;
                    System.out.println("Sampai jumpa!");
                }
                default -> System.out.println("Pilihan tidak dikenal: " + pilihan);
            }
        }
    }

    private static void tampilkanMenu() {
        System.out.println();
        System.out.println("Menu:");
        System.out.println("1. Tambah tugas");
        System.out.println("2. Lihat daftar tugas");
        System.out.println("0. Keluar");
        System.out.print("Pilihan: ");
    }

    private static void tampilkanDaftar(List<Tugas> daftar) {
        System.out.println();
        if (daftar.isEmpty()) {
            System.out.println("Belum ada tugas.");
            return;
        }
        System.out.println("Daftar tugas:");
        for (Tugas tugas : daftar) {
            System.out.println(tugas.formatBaris());
        }
    }
}
