/**
 * Mock Data Kurikulum & Struktur Akademik untuk SMA BPI 1 Bandung
 * CATATAN PENTING:
 * Seluruh data berikut adalah data simulasi (DEMO) yang mencerminkan struktur Kurikulum Merdeka
 * dan K13 di SMA BPI 1 Bandung untuk keperluan antarmuka sebelum terhubung ke database Supabase.
 */

// ==========================================
// 1. TIPE & DATA MATA PELAJARAN
// ==========================================

export type SubjectCategory = "Umum" | "Peminatan MIPA" | "Peminatan IPS" | "Peminatan Bahasa" | "Muatan Lokal";
export type TargetPhase = "Fase E (Kelas X)" | "Fase F (Kelas XI & XII)" | "Semua Fase";

export interface SubjectItem {
  id: string;
  code: string;
  name: string;
  category: SubjectCategory;
  phase: TargetPhase;
  hoursPerWeek: number;
  leadTeacherId: string;
  leadTeacherName: string;
  totalTeachers: number;
  curriculum: "Kurikulum Merdeka" | "Kurikulum 2013";
  status: "aktif" | "non_aktif";
  description?: string;
}

export const initialMockSubjects: SubjectItem[] = [
  {
    id: "sbj-001",
    code: "MP-MAT-01",
    name: "Matematika",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-001",
    leadTeacherName: "Drs. H. Mulyadi, M.Pd.",
    totalTeachers: 6,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Matematika umum mencakup aljabar, geometri, trigonometri, dan statistika dasar.",
  },
  {
    id: "sbj-002",
    code: "MP-MATL-01",
    name: "Matematika Lanjutan",
    category: "Peminatan MIPA",
    phase: "Fase F (Kelas XI & XII)",
    hoursPerWeek: 4,
    leadTeacherId: "tch-001",
    leadTeacherName: "Drs. H. Mulyadi, M.Pd.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Kalkulus diferensial-integral, matriks, vektor, dan pemodelan matematika tingkat lanjut.",
  },
  {
    id: "sbj-003",
    code: "MP-BIO-01",
    name: "Biologi",
    category: "Peminatan MIPA",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-002",
    leadTeacherName: "Dra. Hj. Siti Rohmah, M.Si.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Studi makhluk hidup, ekosistem, bioteknologi, genetika molekuler, dan biologi sel.",
  },
  {
    id: "sbj-004",
    code: "MP-FIS-01",
    name: "Fisika",
    category: "Peminatan MIPA",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-004",
    leadTeacherName: "Rina Wulandari, S.Pd., M.T.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Mekanika klasik, termodinamika, gelombang optik, elektromagnetika, dan fisika modern.",
  },
  {
    id: "sbj-005",
    code: "MP-KIM-01",
    name: "Kimia",
    category: "Peminatan MIPA",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-005",
    leadTeacherName: "Dr. Hendra Gunawan, M.Pd.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Struktur atom, ikatan kimia, stoikiometri, larutan asam-basa, dan elektrokimia.",
  },
  {
    id: "sbj-006",
    code: "MP-IND-01",
    name: "Bahasa Indonesia",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 5,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Keterampilan membaca kritis, menulis karya ilmiah, teks sastra, dan jurnalistik.",
  },
  {
    id: "sbj-007",
    code: "MP-ING-01",
    name: "Bahasa Inggris",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 3,
    leadTeacherId: "tch-006",
    leadTeacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    totalTeachers: 5,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Kemampuan komunikasi global, academic writing, presentation skills, and TOEFL preparation.",
  },
  {
    id: "sbj-008",
    code: "MP-INGL-01",
    name: "Bahasa Inggris Lanjutan",
    category: "Peminatan Bahasa",
    phase: "Fase F (Kelas XI & XII)",
    hoursPerWeek: 4,
    leadTeacherId: "tch-006",
    leadTeacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Debat bahasa Inggris tingkat lanjut, telaah sastra Inggris, dan international communications.",
  },
  {
    id: "sbj-009",
    code: "MP-SOS-01",
    name: "Sosiologi",
    category: "Peminatan IPS",
    phase: "Fase F (Kelas XI & XII)",
    hoursPerWeek: 4,
    leadTeacherId: "tch-007",
    leadTeacherName: "Ahmad Fauzi, S.E., M.Ak.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Struktur sosial, dinamika kelompok, konflik sosial, dan metodologi penelitian sosial.",
  },
  {
    id: "sbj-010",
    code: "MP-EKO-01",
    name: "Ekonomi",
    category: "Peminatan IPS",
    phase: "Semua Fase",
    hoursPerWeek: 4,
    leadTeacherId: "tch-007",
    leadTeacherName: "Ahmad Fauzi, S.E., M.Ak.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Konsep dasar ekonomi, perbankan, pasar modal, kewirausahaan, dan siklus akuntansi.",
  },
  {
    id: "sbj-011",
    code: "MP-GEO-01",
    name: "Geografi",
    category: "Peminatan IPS",
    phase: "Fase F (Kelas XI & XII)",
    hoursPerWeek: 4,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Litosfer, hidrosfer, atmosfer, pemetaan SIG, dan dinamika kependudukan.",
  },
  {
    id: "sbj-012",
    code: "MP-SEJ-01",
    name: "Sejarah Indonesia",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 3,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Sejarah nasional, masa kerajaan nusantara, pergerakan kemerdekaan, dan sejarah kontemporer.",
  },
  {
    id: "sbj-013",
    code: "MP-PAI-01",
    name: "Pendidikan Agama Islam",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 3,
    leadTeacherId: "tch-008",
    leadTeacherName: "Ust. M. Ridwan, S.Ag., M.Ag.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Aqidah akhlak, fiqih ibadah/muamalah, Al-Quran & Hadis, serta sejarah kebudayaan Islam.",
  },
  {
    id: "sbj-014",
    code: "MP-INF-01",
    name: "Informatika",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 3,
    leadTeacherId: "tch-010",
    leadTeacherName: "Sarah Az-Zahra, S.Kom.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Berpikir komputasional, algoritma pemrograman Python/C++, jaringan komputer, dan literasi AI.",
  },
  {
    id: "sbj-015",
    code: "MP-SNB-01",
    name: "Seni Budaya",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 2,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Seni rupa murni dan terapan, seni musik nusantara, seni tari, serta pementasan teater.",
  },
  {
    id: "sbj-016",
    code: "MP-PJK-01",
    name: "PJOK",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 3,
    leadTeacherId: "tch-009",
    leadTeacherName: "Ahmad Jalaludin, S.Pd.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Pendidikan jasmani, olahraga atletik/permainan bola besar, kebugaran jasmani, dan kesehatan diri.",
  },
  {
    id: "sbj-017",
    code: "MP-BK-01",
    name: "Bimbingan Konseling (BK)",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 2,
    leadTeacherId: "tch-006",
    leadTeacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Bimbingan karir perguruan tinggi, pemetaan bakat minat, pengembangan karakter, dan konseling pribadi.",
  },
  {
    id: "sbj-018",
    code: "MP-EC-01",
    name: "EC",
    category: "Muatan Lokal",
    phase: "Semua Fase",
    hoursPerWeek: 2,
    leadTeacherId: "tch-006",
    leadTeacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "English Club & Conversation: Pendalaman percakapan aktif bahasa Inggris dan public speaking.",
  },
  {
    id: "sbj-019",
    code: "MP-SND-01",
    name: "Bahasa Sunda",
    category: "Muatan Lokal",
    phase: "Semua Fase",
    hoursPerWeek: 2,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 3,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Aksara Sunda, paguneman, carita pondok, kawih, dan kearifan budaya lokal Jawa Barat.",
  },
  {
    id: "sbj-020",
    code: "MP-PPKN-01",
    name: "PPKn",
    category: "Umum",
    phase: "Semua Fase",
    hoursPerWeek: 2,
    leadTeacherId: "tch-003",
    leadTeacherName: "Agus Supriatna, S.Pd.",
    totalTeachers: 4,
    curriculum: "Kurikulum Merdeka",
    status: "aktif",
    description: "Pancasila, UUD 1945, NKRI, Bhinneka Tunggal Ika, norma hukum, dan wawasan kebangsaan.",
  },
];

// ==========================================
// 2. TIPE & DATA JADWAL PELAJARAN
// ==========================================

export type DayOfWeek = "Senin" | "Selasa" | "Rabu" | "Kamis" | "Jumat";

export interface ScheduleItem {
  id: string;
  className: string;
  day: DayOfWeek;
  period: number; // Jam ke- (Awal)
  periodEnd?: number; // Jam ke- (Akhir)
  jam_mulai_ke?: number;
  jam_selesai_ke?: number;
  durasi_jp?: number;
  timeSlot: string; // Misal "07.00 - 07.45" atau "07.00 - 09.15"
  subjectCode: string;
  subjectName: string;
  teacherId: string;
  teacherName: string;
  roomName: string;
  academicYear: string;
  semester: "Ganjil" | "Genap";
}

export const initialMockSchedules: ScheduleItem[] = [];

// ==========================================
// 3. TIPE & DATA KELAS & ROMBEL
// ==========================================

export interface ClassDetail {
  id: string;
  className: string;
  gradeLevel: "X" | "XI" | "XII";
  phase: "Fase E" | "Fase F";
  program: "Umum (Fase E)" | "MIPA" | "IPS";
  buildingLocation: string;
  roomName: string;
  capacity: number;
  activeStudentCount: number;
  homeroomTeacherId: string;
  homeroomTeacherName: string;
  homeroomTeacherNip?: string;
  academicYear: string;
  semester: "Ganjil" | "Genap";
  status: "aktif" | "non_aktif";
}

export const initialMockClasses: ClassDetail[] = [
  // Kelas X (Fase E)
  {
    id: "cls-001",
    className: "X-1",
    gradeLevel: "X",
    phase: "Fase E",
    program: "Umum (Fase E)",
    buildingLocation: "Gedung A Lantai 2",
    roomName: "Ruang A.201",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-001",
    homeroomTeacherName: "Drs. H. Mulyadi, M.Pd.",
    homeroomTeacherNip: "197205121998021002",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-002",
    className: "X-2",
    gradeLevel: "X",
    phase: "Fase E",
    program: "Umum (Fase E)",
    buildingLocation: "Gedung A Lantai 2",
    roomName: "Ruang A.202",
    capacity: 36,
    activeStudentCount: 35,
    homeroomTeacherId: "tch-002",
    homeroomTeacherName: "Dra. Hj. Siti Rohmah, M.Si.",
    homeroomTeacherNip: "197508202000032001",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-003",
    className: "X-3",
    gradeLevel: "X",
    phase: "Fase E",
    program: "Umum (Fase E)",
    buildingLocation: "Gedung A Lantai 2",
    roomName: "Ruang A.203",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-003",
    homeroomTeacherName: "Agus Supriatna, S.Pd.",
    homeroomTeacherNip: "198304152009011004",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-004",
    className: "X-4",
    gradeLevel: "X",
    phase: "Fase E",
    program: "Umum (Fase E)",
    buildingLocation: "Gedung A Lantai 2",
    roomName: "Ruang A.204",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-004",
    homeroomTeacherName: "Rina Wulandari, S.Pd., M.T.",
    homeroomTeacherNip: "198811232014022003",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-005",
    className: "X-5",
    gradeLevel: "X",
    phase: "Fase E",
    program: "Umum (Fase E)",
    buildingLocation: "Gedung A Lantai 3",
    roomName: "Ruang A.301",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-005",
    homeroomTeacherName: "Dr. Hendra Gunawan, M.Pd.",
    homeroomTeacherNip: "197802102005011007",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },

  // Kelas XI (Fase F)
  {
    id: "cls-015",
    className: "XI-MIPA-1",
    gradeLevel: "XI",
    phase: "Fase F",
    program: "MIPA",
    buildingLocation: "Gedung B Lantai 1",
    roomName: "Ruang B.101",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-006",
    homeroomTeacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    homeroomTeacherNip: "198506182010012015",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-016",
    className: "XI-MIPA-2",
    gradeLevel: "XI",
    phase: "Fase F",
    program: "MIPA",
    buildingLocation: "Gedung B Lantai 1",
    roomName: "Ruang B.102",
    capacity: 36,
    activeStudentCount: 34,
    homeroomTeacherId: "tch-007",
    homeroomTeacherName: "Ahmad Fauzi, S.E., M.Ak.",
    homeroomTeacherNip: "198009142008011009",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-020",
    className: "XI-IPS-1",
    gradeLevel: "XI",
    phase: "Fase F",
    program: "IPS",
    buildingLocation: "Gedung B Lantai 2",
    roomName: "Ruang B.201",
    capacity: 36,
    activeStudentCount: 35,
    homeroomTeacherId: "tch-008",
    homeroomTeacherName: "Ust. M. Ridwan, S.Ag., M.Ag.",
    homeroomTeacherNip: "197903252006041011",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },

  // Kelas XII (Fase F)
  {
    id: "cls-025",
    className: "XII-MIPA-1",
    gradeLevel: "XII",
    phase: "Fase F",
    program: "MIPA",
    buildingLocation: "Gedung C Lantai 1",
    roomName: "Ruang C.101",
    capacity: 36,
    activeStudentCount: 36,
    homeroomTeacherId: "tch-001",
    homeroomTeacherName: "Drs. H. Mulyadi, M.Pd.",
    homeroomTeacherNip: "197205121998021002",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
  {
    id: "cls-030",
    className: "XII-IPS-1",
    gradeLevel: "XII",
    phase: "Fase F",
    program: "IPS",
    buildingLocation: "Gedung C Lantai 2",
    roomName: "Ruang C.201",
    capacity: 36,
    activeStudentCount: 35,
    homeroomTeacherId: "tch-002",
    homeroomTeacherName: "Dra. Hj. Siti Rohmah, M.Si.",
    homeroomTeacherNip: "197508202000032001",
    academicYear: "2026/2027",
    semester: "Ganjil",
    status: "aktif",
  },
];

// ==========================================
// 4. TIPE & DATA PENUGASAN WALI KELAS
// ==========================================

export interface HomeroomAssignment {
  id: string;
  teacherId: string;
  teacherName: string;
  teacherNip?: string;
  teacherPhone: string;
  classId: string;
  className: string;
  gradeLevel: "X" | "XI" | "XII";
  studentCount: number;
  academicYear: string;
  semester: "Ganjil" | "Genap";
  skNumber: string;
  skDate: string;
  status: "aktif" | "non_aktif";
  assignedAt: string;
  notes?: string;
}

export const initialMockHomeroomAssignments: HomeroomAssignment[] = [
  {
    id: "hma-001",
    teacherId: "tch-001",
    teacherName: "Drs. H. Mulyadi, M.Pd.",
    teacherNip: "197205121998021002",
    teacherPhone: "0812-2134-5670",
    classId: "cls-001",
    className: "X-1",
    gradeLevel: "X",
    studentCount: 36,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/001/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
    notes: "Pembina upacara rutin dan pendamping Fase E program penguatan karakter.",
  },
  {
    id: "hma-002",
    teacherId: "tch-002",
    teacherName: "Dra. Hj. Siti Rohmah, M.Si.",
    teacherNip: "197508202000032001",
    teacherPhone: "0813-9876-5432",
    classId: "cls-002",
    className: "X-2",
    gradeLevel: "X",
    studentCount: 35,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/002/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
    notes: "Koordinator olimpiade sains dan wali kelas X-2.",
  },
  {
    id: "hma-003",
    teacherId: "tch-003",
    teacherName: "Agus Supriatna, S.Pd.",
    teacherNip: "198304152009011004",
    teacherPhone: "0811-3456-7890",
    classId: "cls-003",
    className: "X-3",
    gradeLevel: "X",
    studentCount: 36,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/003/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
  {
    id: "hma-004",
    teacherId: "tch-004",
    teacherName: "Rina Wulandari, S.Pd., M.T.",
    teacherNip: "198811232014022003",
    teacherPhone: "0821-4567-8901",
    classId: "cls-004",
    className: "X-4",
    gradeLevel: "X",
    studentCount: 36,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/004/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
  {
    id: "hma-005",
    teacherId: "tch-005",
    teacherName: "Dr. Hendra Gunawan, M.Pd.",
    teacherNip: "197802102005011007",
    teacherPhone: "0852-5678-9012",
    classId: "cls-005",
    className: "X-5",
    gradeLevel: "X",
    studentCount: 36,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/005/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
  {
    id: "hma-006",
    teacherId: "tch-006",
    teacherName: "Ratna Sari Dewi, S.Pd., M.Hum.",
    teacherNip: "198506182010012015",
    teacherPhone: "0877-6789-0123",
    classId: "cls-015",
    className: "XI-MIPA-1",
    gradeLevel: "XI",
    studentCount: 36,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/006/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
  {
    id: "hma-007",
    teacherId: "tch-007",
    teacherName: "Ahmad Fauzi, S.E., M.Ak.",
    teacherNip: "198009142008011009",
    teacherPhone: "0819-7890-1234",
    classId: "cls-016",
    className: "XI-MIPA-2",
    gradeLevel: "XI",
    studentCount: 34,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/007/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
  {
    id: "hma-008",
    teacherId: "tch-008",
    teacherName: "Ust. M. Ridwan, S.Ag., M.Ag.",
    teacherNip: "197903252006041011",
    teacherPhone: "0813-8901-2345",
    classId: "cls-020",
    className: "XI-IPS-1",
    gradeLevel: "XI",
    studentCount: 35,
    academicYear: "2026/2027",
    semester: "Ganjil",
    skNumber: "SK/BPI1/008/VII/2026",
    skDate: "2026-07-15",
    status: "aktif",
    assignedAt: "2026-07-15T08:00:00Z",
  },
];

// ==========================================
// 5. RIWAYAT PENUGASAN WALI KELAS
// ==========================================

export interface HomeroomHistoryItem {
  id: string;
  teacherName: string;
  className: string;
  gradeLevel: "X" | "XI" | "XII";
  academicYear: string;
  semester: "Ganjil" | "Genap" | "1 Tahun Penuh";
  totalStudents: number;
  skNumber: string;
  notes?: string;
}

export const mockHomeroomHistories: HomeroomHistoryItem[] = [
  {
    id: "hmh-001",
    teacherName: "Drs. H. Mulyadi, M.Pd.",
    className: "XII-1",
    gradeLevel: "XII",
    academicYear: "2026/2027",
    semester: "1 Tahun Penuh",
    totalStudents: 36,
    skNumber: "SK/BPI1/014/VII/2026",
    notes: "Lulus 100% dengan 18 siswa diterima di PTN jalur SNBP.",
  },
  {
    id: "hmh-002",
    teacherName: "Dra. Hj. Siti Rohmah, M.Si.",
    className: "XI-1",
    gradeLevel: "XI",
    academicYear: "2026/2027",
    semester: "1 Tahun Penuh",
    totalStudents: 35,
    skNumber: "SK/BPI1/015/VII/2026",
    notes: "Prestasi Juara 1 Lomba Cepat Tepat Biologi Tingkat Jawa Barat.",
  },
  {
    id: "hmh-003",
    teacherName: "Agus Supriatna, S.Pd.",
    className: "X-2",
    gradeLevel: "X",
    academicYear: "2026/2027",
    semester: "1 Tahun Penuh",
    totalStudents: 36,
    skNumber: "SK/BPI1/016/VII/2026",
  },
  {
    id: "hmh-004",
    teacherName: "Rina Wulandari, S.Pd., M.T.",
    className: "X-3",
    gradeLevel: "X",
    academicYear: "2026/2027",
    semester: "1 Tahun Penuh",
    totalStudents: 36,
    skNumber: "SK/BPI1/017/VII/2026",
  },
  {
    id: "hmh-005",
    teacherName: "Dr. Hendra Gunawan, M.Pd.",
    className: "XI-2",
    gradeLevel: "XI",
    academicYear: "2026/2027",
    semester: "1 Tahun Penuh",
    totalStudents: 36,
    skNumber: "SK/BPI1/008/VII/2026",
  },
];

// ==========================================
// 6. TAHAP F: TAHUN AJARAN & SEMESTER
// ==========================================

export interface AcademicYearItem {
  id: string;
  year: string; // e.g. "2026/2027"
  semester: "Ganjil" | "Genap";
  title: string;
  status: "aktif" | "non_aktif" | "rencana" | "arsip";
  startDate: string;
  endDate: string;
  effectiveWeeks: number;
  effectiveDays: number;
  totalClasses: number;
  totalStudents: number;
  curriculum: string;
  headmaster: string;
  wakaKurikulum: string;
  skNumber: string;
  isCurrent: boolean;
  notes?: string;
}

export const initialMockAcademicYears: AcademicYearItem[] = [
  {
    id: "ay-2026-1",
    year: "2026/2027",
    semester: "Ganjil",
    title: "Tahun Ajaran 2026/2027 — Semester Ganjil",
    status: "aktif",
    startDate: "2026-07-13",
    endDate: "2026-12-19",
    effectiveWeeks: 20,
    effectiveDays: 100,
    totalClasses: 34,
    totalStudents: 1204,
    curriculum: "Kurikulum Merdeka",
    headmaster: "TATANG, M.Pd",
    wakaKurikulum: "Muhammad Irfan Triawan, S.Pd., Gr.",
    skNumber: "421.3/089-SMA.BPI1/VII/2026",
    isCurrent: true,
    notes: "Tahun ajaran berjalan aktif. Implementasi penuh Kurikulum Merdeka di seluruh Fase E dan F.",
  },
  {
    id: "ay-2026-2",
    year: "2026/2027",
    semester: "Genap",
    title: "Tahun Ajaran 2026/2027 — Semester Genap",
    status: "rencana",
    startDate: "2027-01-05",
    endDate: "2027-06-25",
    effectiveWeeks: 19,
    effectiveDays: 95,
    totalClasses: 34,
    totalStudents: 1204,
    curriculum: "Kurikulum Merdeka",
    headmaster: "TATANG, M.Pd",
    wakaKurikulum: "Muhammad Irfan Triawan, S.Pd., Gr.",
    skNumber: "421.3/090-SMA.BPI1/VII/2026",
    isCurrent: false,
    notes: "Periode semester genap mendatang (telah terdaftar dalam kalender akademik).",
  },
  {
    id: "ay-2027-1",
    year: "2027/2028",
    semester: "Ganjil",
    title: "Tahun Ajaran 2027/2028 — Semester Ganjil",
    status: "rencana",
    startDate: "2027-07-12",
    endDate: "2027-12-18",
    effectiveWeeks: 20,
    effectiveDays: 100,
    totalClasses: 34,
    totalStudents: 1210,
    curriculum: "Kurikulum Merdeka",
    headmaster: "TATANG, M.Pd",
    wakaKurikulum: "Muhammad Irfan Triawan, S.Pd., Gr.",
    skNumber: "421.3/001-SMA.BPI1/VII/2027",
    isCurrent: false,
    notes: "Rencana tahun ajaran berikutnya.",
  },
  {
    id: "ay-2027-2",
    year: "2027/2028",
    semester: "Genap",
    title: "Tahun Ajaran 2027/2028 — Semester Genap",
    status: "rencana",
    startDate: "2028-01-04",
    endDate: "2028-06-23",
    effectiveWeeks: 19,
    effectiveDays: 95,
    totalClasses: 34,
    totalStudents: 1210,
    curriculum: "Kurikulum Merdeka",
    headmaster: "TATANG, M.Pd",
    wakaKurikulum: "Muhammad Irfan Triawan, S.Pd., Gr.",
    skNumber: "421.3/002-SMA.BPI1/I/2028",
    isCurrent: false,
    notes: "Rencana semester genap tahun ajaran berikutnya.",
  },
];

export interface AcademicCalendarEvent {
  id: string;
  academicYearId: string;
  title: string;
  category: "KBM" | "Asesmen" | "Libur" | "Rapat" | "Kegiatan Siswa" | "Rapor";
  startDate: string;
  endDate: string;
  description: string;
  status: "Selesai" | "Sedang Berjalan" | "Mendatang";
}

export const mockAcademicCalendarEvents: AcademicCalendarEvent[] = [
  {
    id: "evt-001",
    academicYearId: "ay-2026-1",
    title: "Hari Pertama Masuk Sekolah & MPLS",
    category: "Kegiatan Siswa",
    startDate: "2026-07-13",
    endDate: "2026-07-17",
    description: "Masa Pengenalan Lingkungan Sekolah bagi peserta didik baru Kelas X dan orientasi KBM Fase E & F.",
    status: "Selesai",
  },
  {
    id: "evt-002",
    academicYearId: "ay-2026-1",
    title: "Awal KBM Efektif Semester Ganjil",
    category: "KBM",
    startDate: "2026-07-20",
    endDate: "2026-07-20",
    description: "Permulaan kegiatan belajar mengajar efektif seluruh kelas X, XI, dan XII.",
    status: "Selesai",
  },
  {
    id: "evt-003",
    academicYearId: "ay-2026-1",
    title: "Pelaksanaan Asesmen Sumatif Tengah Semester (STS) Ganjil",
    category: "Asesmen",
    startDate: "2026-09-21",
    endDate: "2026-09-26",
    description: "Asesmen tengah semester terpadu berbasis Computer Based Test (CBT) BPI SmartSchool.",
    status: "Sedang Berjalan",
  },
  {
    id: "evt-004",
    academicYearId: "ay-2026-1",
    title: "Pembagian Laporan Hasil Belajar Tengah Semester",
    category: "Rapor",
    startDate: "2026-10-09",
    endDate: "2026-10-09",
    description: "Distribusi e-Rapor dan konsultasi perkembangan belajar siswa bersama orang tua / wali.",
    status: "Mendatang",
  },
  {
    id: "evt-005",
    academicYearId: "ay-2026-1",
    title: "Pekan Gelar Karya Projek Penguatan Profil Pelajar Pancasila (P5)",
    category: "Kegiatan Siswa",
    startDate: "2026-11-16",
    endDate: "2026-11-20",
    description: "Pameran karya inovasi tema Gaya Hidup Berkelanjutan dan Kewirausahaan SMA BPI 1.",
    status: "Mendatang",
  },
  {
    id: "evt-006",
    academicYearId: "ay-2026-1",
    title: "Asesmen Sumatif Akhir Semester (SAS) Ganjil",
    category: "Asesmen",
    startDate: "2026-11-30",
    endDate: "2026-12-08",
    description: "Evaluasi capaian pembelajaran akhir semester ganjil seluruh mata pelajaran.",
    status: "Mendatang",
  },
  {
    id: "evt-007",
    academicYearId: "ay-2026-1",
    title: "Rapat Pleno Kenaikan Capaian & Pembagian Rapor Semester Ganjil",
    category: "Rapor",
    startDate: "2026-12-18",
    endDate: "2026-12-19",
    description: "Penyerahan buku Laporan Capaian Hasil Belajar (Rapor Semester Ganjil) kepada orang tua.",
    status: "Mendatang",
  },
  {
    id: "evt-008",
    academicYearId: "ay-2026-1",
    title: "Libur Akhir Semester Ganjil",
    category: "Libur",
    startDate: "2026-12-21",
    endDate: "2027-01-02",
    description: "Libur jeda semester ganjil dan cuti bersama akhir tahun kalender 2026.",
    status: "Mendatang",
  },
];

export interface EffectiveWeekItem {
  month: string;
  totalWeeks: number;
  effectiveWeeks: number;
  nonEffectiveWeeks: number;
  kbmDays: number;
  holidayDays: number;
  notes: string;
}

export const mockEffectiveWeeks: EffectiveWeekItem[] = [
  {
    month: "Juli 2026",
    totalWeeks: 5,
    effectiveWeeks: 3,
    nonEffectiveWeeks: 2,
    kbmDays: 14,
    holidayDays: 17,
    notes: "MPLS (1 minggu) & Masa orientasi awal tahun ajaran baru",
  },
  {
    month: "Agustus 2026",
    totalWeeks: 4,
    effectiveWeeks: 4,
    nonEffectiveWeeks: 0,
    kbmDays: 21,
    holidayDays: 10,
    notes: "KBM Efektif penuh + Peringatan HUT RI Ke-81",
  },
  {
    month: "September 2026",
    totalWeeks: 4,
    effectiveWeeks: 4,
    nonEffectiveWeeks: 0,
    kbmDays: 22,
    holidayDays: 8,
    notes: "Pelaksanaan STS Ganjil di pekan ke-4",
  },
  {
    month: "Oktober 2026",
    totalWeeks: 5,
    effectiveWeeks: 5,
    nonEffectiveWeeks: 0,
    kbmDays: 23,
    holidayDays: 8,
    notes: "KBM Efektif + Pembagian Laporan Tengah Semester",
  },
  {
    month: "November 2026",
    totalWeeks: 4,
    effectiveWeeks: 3,
    nonEffectiveWeeks: 1,
    kbmDays: 18,
    holidayDays: 12,
    notes: "Pekan Gelar Karya P5 & Persiapan SAS Ganjil",
  },
  {
    month: "Desember 2026",
    totalWeeks: 4,
    effectiveWeeks: 1,
    nonEffectiveWeeks: 3,
    kbmDays: 6,
    holidayDays: 25,
    notes: "SAS Ganjil, Pengolahan Nilai, Pembagian Rapor, & Libur Akhir Semester",
  },
];

// ==========================================
// 7. TAHAP F: PENGATURAN KURIKULUM & KKTP
// ==========================================

export interface CurriculumPolicySetting {
  kospName: string;
  curriculumType: "Kurikulum Merdeka" | "Kurikulum 2013";
  skKemen: string;
  implementationYear: string;
  p5Themes: string[];
  systemPilihanFaseF: string;
  alokasiP5PerPekan: number;
  kkmGeneralThreshold: number;
  remedialMaxScoreMode: "kktp" | "actual";
  gradingWeights: {
    formatif: number;
    sts: number;
    sas: number;
  };
}

export const initialCurriculumPolicy: CurriculumPolicySetting = {
  kospName: "Kurikulum Operasional Satuan Pendidikan (KOSP) SMA BPI 1 Bandung",
  curriculumType: "Kurikulum Merdeka",
  skKemen: "Kepmendikbudristek No. 262/M/2022 tentang Pedoman Penerapan Kurikulum",
  implementationYear: "2026/2027",
  p5Themes: [
    "Gaya Hidup Berkelanjutan",
    "Kearifan Lokal (Sunda & Nusantara)",
    "Bhinneka Tunggal Ika",
    "Kewirausahaan Berbasis Digital",
    "Rekayasa dan Teknologi untuk NKRI",
  ],
  systemPilihanFaseF: "Sistem Paket Peminatan Berbasis Minat, Bakat, dan Rekomendasi Karir Guru BK (4-5 Mata Pelajaran Pilihan)",
  alokasiP5PerPekan: 8,
  kkmGeneralThreshold: 75,
  remedialMaxScoreMode: "kktp",
  gradingWeights: {
    formatif: 40,
    sts: 30,
    sas: 30,
  },
};

export interface KKTPMatrixItem {
  id: string;
  subjectCode: string;
  subjectName: string;
  category: SubjectCategory;
  gradeLevel: "Semua" | "X (Fase E)" | "XI & XII (Fase F)";
  kktpScore: number;
  predicateA: { min: number; max: number };
  predicateB: { min: number; max: number };
  predicateC: { min: number; max: number };
  predicateD: { min: number; max: number };
  descriptionAchieved: string;
  descriptionNeedsGuidance: string;
}

export const initialMockKKTPList: KKTPMatrixItem[] = [
  {
    id: "kktp-001",
    subjectCode: "MP-MAT-01",
    subjectName: "Matematika",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Menunjukkan pemahaman logis-kritis dalam pemecahan masalah kalkulus, aljabar, dan statistika secara mandiri.",
    descriptionNeedsGuidance: "Perlu bimbingan intensif dalam manipulasi aljabar lanjutan dan interpretasi data statistik.",
  },
  {
    id: "kktp-002",
    subjectCode: "MP-MATL-01",
    subjectName: "Matematika Lanjutan",
    category: "Peminatan MIPA",
    gradeLevel: "XI & XII (Fase F)",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Sangat unggul dalam kalkulus diferensial-integral, matriks, dan pemodelan matematis kompleks.",
    descriptionNeedsGuidance: "Perlu penguatan konsep turunan parsial dan transformasi vektor linear.",
  },
  {
    id: "kktp-003",
    subjectCode: "MP-BIO-01",
    subjectName: "Biologi",
    category: "Peminatan MIPA",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Sangat terampil menganalisis proses bioteknologi, ekosistem lingkungan, dan genetika molekuler.",
    descriptionNeedsGuidance: "Perlu penguatan konsep pada materi hukum Mendel dan siklus pembelahan sel.",
  },
  {
    id: "kktp-004",
    subjectCode: "MP-FIS-01",
    subjectName: "Fisika",
    category: "Peminatan MIPA",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Sangat baik dalam merumuskan model matematis mekanika fluida, termodinamika, dan optika fisis.",
    descriptionNeedsGuidance: "Perlu latihan lebih banyak dalam analisis vektor dan rangkaian listrik dinamis.",
  },
  {
    id: "kktp-005",
    subjectCode: "MP-KIM-01",
    subjectName: "Kimia",
    category: "Peminatan MIPA",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Menguasai stoikiometri larutan, ikatan kimia, serta praktikum asam-basa dengan sangat teliti.",
    descriptionNeedsGuidance: "Perlu penguatan pada konsep kesetimbangan kimia dan bilangan oksidasi redoks.",
  },
  {
    id: "kktp-006",
    subjectCode: "MP-IND-01",
    subjectName: "Bahasa Indonesia",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Mampu menyusun teks argumentasi kritis, artikel ilmiah, dan resensi sastra secara sistematis dan santun.",
    descriptionNeedsGuidance: "Perlu bimbingan dalam kaidah ejaan PUEBI dan kohesi paragraf karya tulis ilmiah.",
  },
  {
    id: "kktp-007",
    subjectCode: "MP-ING-01",
    subjectName: "Bahasa Inggris",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Fluent and articulate in speaking, academic listening comprehension, and structured persuasive essays.",
    descriptionNeedsGuidance: "Needs further practice in complex sentence structures and academic vocabulary range.",
  },
  {
    id: "kktp-008",
    subjectCode: "MP-INGL-01",
    subjectName: "Bahasa Inggris Lanjutan",
    category: "Peminatan Bahasa",
    gradeLevel: "XI & XII (Fase F)",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Exceptional mastery in global debates, literary analysis, and advanced rhetoric.",
    descriptionNeedsGuidance: "Requires guidance in high-level nuance and complex stylistic devices in English writing.",
  },
  {
    id: "kktp-009",
    subjectCode: "MP-SOS-01",
    subjectName: "Sosiologi",
    category: "Peminatan IPS",
    gradeLevel: "XI & XII (Fase F)",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Mampu melakukan riset sosial lapangan dan menganalisis dinamika konflik serta solusi masyarakat madani.",
    descriptionNeedsGuidance: "Perlu bimbingan dalam metode analisis data sosiologis kualitatif.",
  },
  {
    id: "kktp-010",
    subjectCode: "MP-EKO-01",
    subjectName: "Ekonomi",
    category: "Peminatan IPS",
    gradeLevel: "Semua",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Sangat mahir menyusun laporan keuangan jurnal umum, buku besar, dan analisis pasar makro-mikro.",
    descriptionNeedsGuidance: "Perlu ketelitian dalam pembuatan jurnal penyesuaian dan neraca lajur akuntansi perusahaan jasa.",
  },
  {
    id: "kktp-011",
    subjectCode: "MP-GEO-01",
    subjectName: "Geografi",
    category: "Peminatan IPS",
    gradeLevel: "XI & XII (Fase F)",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Mampu membaca citra penginderaan jauh, SIG, dan analisis dinamika kependudukan.",
    descriptionNeedsGuidance: "Perlu penguatan dalam interpretasi peta topografi dan mitigasi kebencanaan.",
  },
  {
    id: "kktp-012",
    subjectCode: "MP-SEJ-01",
    subjectName: "Sejarah Indonesia",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Memahami kronologi peristiwa sejarah nasional dan mampu merefleksikan nilai-nilai kepahlawanan.",
    descriptionNeedsGuidance: "Perlu pendalaman pada historiografi masa pergerakan nasional dan kemerdekaan.",
  },
  {
    id: "kktp-013",
    subjectCode: "MP-PAI-01",
    subjectName: "Pendidikan Agama Islam",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 78,
    predicateA: { min: 92, max: 100 },
    predicateB: { min: 83, max: 91 },
    predicateC: { min: 78, max: 82 },
    predicateD: { min: 0, max: 77 },
    descriptionAchieved: "Memperlihatkan keteladanan akhlak mulia, penguasaan tajwid Al-Quran, dan pemahaman fiqih muamalah yang luhur.",
    descriptionNeedsGuidance: "Perlu pembiasaan hafalan ayat pilihan dan penguatan sejarah peradaban Islam.",
  },
  {
    id: "kktp-014",
    subjectCode: "MP-INF-01",
    subjectName: "Informatika",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Sangat terampil membuat program komputer, algoritma penyelesaian masalah, dan pemanfaatan AI.",
    descriptionNeedsGuidance: "Perlu latihan logika percabangan dan perulangan pemrograman.",
  },
  {
    id: "kktp-015",
    subjectCode: "MP-SNB-01",
    subjectName: "Seni Budaya",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Menunjukkan kreativitas seni rupa, musikalitas, dan apresiasi karya budaya nusantara.",
    descriptionNeedsGuidance: "Perlu peningkatan rasa percaya diri dalam pementasan dan teknik karya seni.",
  },
  {
    id: "kktp-016",
    subjectCode: "MP-PJK-01",
    subjectName: "PJOK",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Sangat bugar, menjunjung sportivitas, dan menguasai teknik dasar cabang olahraga.",
    descriptionNeedsGuidance: "Perlu peningkatan daya tahan fisik dan kedisiplinan pola hidup sehat.",
  },
  {
    id: "kktp-017",
    subjectCode: "MP-BK-01",
    subjectName: "Bimbingan Konseling (BK)",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Memiliki kematangan emosi, perencanaan karir masa depan terarah, dan adaptasi sosial positif.",
    descriptionNeedsGuidance: "Perlu bimbingan intensif dalam manajemen waktu dan eksplorasi bakat studi lanjut.",
  },
  {
    id: "kktp-018",
    subjectCode: "MP-EC-01",
    subjectName: "EC",
    category: "Muatan Lokal",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Active English speaker in conversational situations, presentation, and role play.",
    descriptionNeedsGuidance: "Needs confidence building in spontaneous English speaking.",
  },
  {
    id: "kktp-019",
    subjectCode: "MP-SND-01",
    subjectName: "Bahasa Sunda",
    category: "Muatan Lokal",
    gradeLevel: "Semua",
    kktpScore: 75,
    predicateA: { min: 90, max: 100 },
    predicateB: { min: 80, max: 89 },
    predicateC: { min: 75, max: 79 },
    predicateD: { min: 0, max: 74 },
    descriptionAchieved: "Mampu ngadongeng, nulis aksara Sunda, sarta nerapkeun Tatakrama Basa Sunda dina komunikasi sapopoe kalayan merenah.",
    descriptionNeedsGuidance: "Peryogi bimbingan dina undak usuk basa loma vs lemes sarta nulis carpon basa Sunda.",
  },
  {
    id: "kktp-020",
    subjectCode: "MP-PPKN-01",
    subjectName: "PPKn",
    category: "Umum",
    gradeLevel: "Semua",
    kktpScore: 76,
    predicateA: { min: 91, max: 100 },
    predicateB: { min: 81, max: 90 },
    predicateC: { min: 76, max: 80 },
    predicateD: { min: 0, max: 75 },
    descriptionAchieved: "Memahami dan mengamalkan nilai-nilai luhur Pancasila, konstitusi UUD 1945, serta kesadaran hukum.",
    descriptionNeedsGuidance: "Perlu peningkatan pemahaman sistem peradilan dan analisis isu penegakan HAM.",
  },
];

export interface JPAllocationItem {
  id: string;
  subjectName: string;
  category: SubjectCategory;
  phaseE_Intra: number;
  phaseE_P5: number;
  phaseE_Total: number;
  phaseF_Intra: number;
  phaseF_P5: number;
  phaseF_Total: number;
}

export const mockJPAllocations: JPAllocationItem[] = [
  {
    id: "jpa-001",
    subjectName: "Pendidikan Agama & Budi Pekerti",
    category: "Umum",
    phaseE_Intra: 2,
    phaseE_P5: 1,
    phaseE_Total: 3,
    phaseF_Intra: 2,
    phaseF_P5: 1,
    phaseF_Total: 3,
  },
  {
    id: "jpa-002",
    subjectName: "Pendidikan Pancasila & Kewarganegaraan",
    category: "Umum",
    phaseE_Intra: 1.5,
    phaseE_P5: 0.5,
    phaseE_Total: 2,
    phaseF_Intra: 1.5,
    phaseF_P5: 0.5,
    phaseF_Total: 2,
  },
  {
    id: "jpa-003",
    subjectName: "Bahasa Indonesia",
    category: "Umum",
    phaseE_Intra: 3,
    phaseE_P5: 1,
    phaseE_Total: 4,
    phaseF_Intra: 3,
    phaseF_P5: 1,
    phaseF_Total: 4,
  },
  {
    id: "jpa-004",
    subjectName: "Matematika",
    category: "Umum",
    phaseE_Intra: 3,
    phaseE_P5: 1,
    phaseE_Total: 4,
    phaseF_Intra: 3,
    phaseF_P5: 1,
    phaseF_Total: 4,
  },
  {
    id: "jpa-005",
    subjectName: "Bahasa Inggris",
    category: "Umum",
    phaseE_Intra: 2,
    phaseE_P5: 1,
    phaseE_Total: 3,
    phaseF_Intra: 2,
    phaseF_P5: 1,
    phaseF_Total: 3,
  },
  {
    id: "jpa-006",
    subjectName: "PJOK",
    category: "Umum",
    phaseE_Intra: 2,
    phaseE_P5: 1,
    phaseE_Total: 3,
    phaseF_Intra: 2,
    phaseF_P5: 1,
    phaseF_Total: 3,
  },
  {
    id: "jpa-007",
    subjectName: "Informatika & Koding",
    category: "Umum",
    phaseE_Intra: 2,
    phaseE_P5: 1,
    phaseE_Total: 3,
    phaseF_Intra: 0,
    phaseF_P5: 0,
    phaseF_Total: 0,
  },
  {
    id: "jpa-008",
    subjectName: "Mata Pelajaran Pilihan / Peminatan",
    category: "Peminatan MIPA",
    phaseE_Intra: 16,
    phaseE_P5: 2,
    phaseE_Total: 18,
    phaseF_Intra: 20,
    phaseF_P5: 2,
    phaseF_Total: 22,
  },
  {
    id: "jpa-009",
    subjectName: "Muatan Lokal (Bahasa Sunda)",
    category: "Muatan Lokal",
    phaseE_Intra: 2,
    phaseE_P5: 0,
    phaseE_Total: 2,
    phaseF_Intra: 2,
    phaseF_P5: 0,
    phaseF_Total: 2,
  },
  {
    id: "jpa-010",
    subjectName: "Bimbingan Konseling & Karir",
    category: "Umum",
    phaseE_Intra: 2,
    phaseE_P5: 0,
    phaseE_Total: 2,
    phaseF_Intra: 2,
    phaseF_P5: 0,
    phaseF_Total: 2,
  },
];

