/**
 * APPROVED MMC CAST CURRICULUM SOURCE DATASET (SPEC 52–55).
 *
 * Transcribed verbatim from the supplied workbook:
 *   "Proposed Curriculum AY 2026-2027 and Breakdown of Lec and Lab.xlsx"
 *   Sheets: CURRICULUM (primary) + BREAKDOWN LEC AND LAB (secondary)
 *
 * This is NOT demo data. Course codes, titles, units, hours and prerequisites
 * are preserved exactly as they appear in the source document. Nothing here is
 * invented, and no course was added to resolve the orphan prerequisite.
 *
 * The dataset is imported in DRAFT_REVIEW status and is deliberately NOT mapped
 * to Curriculum 2023 / 2024 / 2025 — the workbook carries conflicting effective
 * academic-year labels, so an administrator must confirm the mapping
 * (SPEC 52.4, 52.13).
 */

export const TERM_FIRST = "1ST SEMESTER";
export const TERM_SECOND = "2ND SEMESTER";

export interface ApprovedCourseRow {
  year: 1 | 2 | 3;
  term: typeof TERM_FIRST | typeof TERM_SECOND;
  code: string;
  title: string;
  lecture: number;
  laboratory: number;
  total: number;
  hoursPerWeek: number;
  prerequisite: string;
  /** The workbook's "Year-Long Final Grade" (**) marker. */
  yearLongMarker: boolean;
  /** Pairs the two semester components of a year-long subject (SPEC 52.6). */
  yearLongGroup: string | null;
  sourceRow: number;
}

export const APPROVED_SOURCE_WORKBOOK =
  "Proposed Curriculum AY 2026-2027 and Breakdown of Lec and Lab.xlsx";
export const APPROVED_SOURCE_NAME = "Approved MMC CAST MD Curriculum";
export const APPROVED_PRIMARY_SHEET = "CURRICULUM";
export const APPROVED_SECONDARY_SHEET = "BREAKDOWN LEC AND LAB";
export const APPROVED_PRIMARY_EFFECTIVE_AY = "2026-2027";
export const APPROVED_SECONDARY_EFFECTIVE_AY = "2024-2025";
export const APPROVED_CURRICULUM_CODE = "CURR-SRC-2026";

/** The workbook's own "Medical Courses" summary row — contradicts the detail. */
export const WORKBOOK_SUMMARY_MEDICAL_COURSE_UNITS = 235;
/** The workbook's final total, which agrees with the detailed semester sums. */
export const WORKBOOK_FINAL_TOTAL_UNITS = 237;

export const APPROVED_COURSES: ApprovedCourseRow[] = [
  // ---------------------------------------------------------------- Year 1 S1
  { year: 1, term: TERM_FIRST, code: "HSB 1-AG", title: "Normal Organ Systems (Structure-Gross)", lecture: 3, laboratory: 5, total: 8, hoursPerWeek: 10, prerequisite: "Any B.S. Course", yearLongMarker: true, yearLongGroup: "YL-HSB-GROSS", sourceRow: 1 },
  { year: 1, term: TERM_FIRST, code: "HSB 1-AH", title: "Normal Organ Systems (Structure-Histology)", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 6, prerequisite: "Any B.S. Course", yearLongMarker: true, yearLongGroup: "YL-HSB-HISTO", sourceRow: 2 },
  { year: 1, term: TERM_FIRST, code: "PHYSIO 1-A", title: "Normal Organ Systems (Function)", lecture: 4, laboratory: 4, total: 8, hoursPerWeek: 10, prerequisite: "Any B.S. Course", yearLongMarker: true, yearLongGroup: "YL-PHYSIO-1", sourceRow: 3 },
  { year: 1, term: TERM_FIRST, code: "BPE 1-A", title: "Basic PE & Imaging", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 4, prerequisite: "Any B.S. Course", yearLongMarker: true, yearLongGroup: "YL-BPE-1", sourceRow: 4 },
  { year: 1, term: TERM_FIRST, code: "PH1", title: "Public Health I", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Any B.S. Course", yearLongMarker: false, yearLongGroup: null, sourceRow: 5 },
  { year: 1, term: TERM_FIRST, code: "CAM", title: "Complimentary & Alternative Medicine", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Any B.S. Course", yearLongMarker: false, yearLongGroup: null, sourceRow: 6 },
  { year: 1, term: TERM_FIRST, code: "Biochem 1-A", title: "Biochemistry & Nutrition", lecture: 3, laboratory: 4, total: 7, hoursPerWeek: 9, prerequisite: "Organic & Inorganic Chemistry", yearLongMarker: true, yearLongGroup: "YL-BIOCHEM-1", sourceRow: 7 },
  { year: 1, term: TERM_FIRST, code: "CFM 1-A", title: "Community & Family Medicine", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Any B.S. Course", yearLongMarker: true, yearLongGroup: "YL-CFM-1", sourceRow: 8 },

  // ---------------------------------------------------------------- Year 1 S2
  { year: 1, term: TERM_SECOND, code: "HSB 1-BG", title: "Normal Organ Systems (Structure-Gross)", lecture: 3, laboratory: 5, total: 8, hoursPerWeek: 10, prerequisite: "HSB 1-AG", yearLongMarker: false, yearLongGroup: "YL-HSB-GROSS", sourceRow: 9 },
  { year: 1, term: TERM_SECOND, code: "HSB 1-BH", title: "Normal Organ Systems (Structure-Histology)", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 6, prerequisite: "HSB 1-AH", yearLongMarker: false, yearLongGroup: "YL-HSB-HISTO", sourceRow: 10 },
  { year: 1, term: TERM_SECOND, code: "PHYSIO 1-B", title: "Normal Organ Systems (Function)", lecture: 4, laboratory: 4, total: 8, hoursPerWeek: 10, prerequisite: "PHYSIO 1-A", yearLongMarker: false, yearLongGroup: "YL-PHYSIO-1", sourceRow: 11 },
  { year: 1, term: TERM_SECOND, code: "BPE 1-B", title: "Basic PE & Imaging", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 4, prerequisite: "BPE 1-A", yearLongMarker: false, yearLongGroup: "YL-BPE-1", sourceRow: 12 },
  { year: 1, term: TERM_SECOND, code: "Biochem 1-B", title: "Biochemistry & Nutrition", lecture: 3, laboratory: 4, total: 7, hoursPerWeek: 9, prerequisite: "Biochem 1-A", yearLongMarker: false, yearLongGroup: "YL-BIOCHEM-1", sourceRow: 13 },
  { year: 1, term: TERM_SECOND, code: "CFM 1-B", title: "Community & Family Medicine", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "CFM 1-A", yearLongMarker: false, yearLongGroup: "YL-CFM-1", sourceRow: 14 },
  { year: 1, term: TERM_SECOND, code: "Psychobio", title: "Psychobiology", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Any B.S. Course", yearLongMarker: false, yearLongGroup: null, sourceRow: 15 },

  // ---------------------------------------------------------------- Year 2 S1
  { year: 2, term: TERM_FIRST, code: "Patho 2-A", title: "Abnormal Organ Systems (Structure)/Pathology and Laboratory and Procedure", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B", yearLongMarker: true, yearLongGroup: "YL-PATHO-2", sourceRow: 16 },
  { year: 2, term: TERM_FIRST, code: "PD 2-A", title: "Abnormal Organ Systems (Function)/ PD, Abnormal Imaging, Laboratory Analysis", lecture: 5, laboratory: 3, total: 8, hoursPerWeek: 8, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, BPE 1-A&B", yearLongMarker: true, yearLongGroup: "YL-PD-2", sourceRow: 17 },
  { year: 2, term: TERM_FIRST, code: "Pharma A", title: "Basic & Applied Pharmacology", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B", yearLongMarker: true, yearLongGroup: "YL-PHARMA", sourceRow: 18 },
  { year: 2, term: TERM_FIRST, code: "Ethics 2-A", title: "Bioethics II", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Ethics 1", yearLongMarker: false, yearLongGroup: null, sourceRow: 19 },
  { year: 2, term: TERM_FIRST, code: "CFM 2-A", title: "Community & Family Medicine II", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "CFM 1-A&B", yearLongMarker: true, yearLongGroup: "YL-CFM-2", sourceRow: 20 },
  { year: 2, term: TERM_FIRST, code: "Med Micro", title: "Medical Microbiology", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 21 },
  { year: 2, term: TERM_FIRST, code: "Psychopath", title: "Psychopathology", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Psychobio", yearLongMarker: false, yearLongGroup: null, sourceRow: 22 },
  { year: 2, term: TERM_FIRST, code: "Basic Surg", title: "Basic Surgery", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, BPE 1-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 23 },
  { year: 2, term: TERM_FIRST, code: "PH 2-A", title: "Public Health II-A (Epidemiologic Principles & Method)", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "PH1", yearLongMarker: false, yearLongGroup: null, sourceRow: 24 },
  { year: 2, term: TERM_FIRST, code: "ER", title: "Emergency Medicine", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 25 },
  { year: 2, term: TERM_FIRST, code: "IMI", title: "Introduction to Medical Informatics", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Basic Computer Subject", yearLongMarker: false, yearLongGroup: null, sourceRow: 26 },

  // ---------------------------------------------------------------- Year 2 S2
  { year: 2, term: TERM_SECOND, code: "Patho 2-B", title: "Abnormal Organ Systems (Structure)/Pathology and Laboratory and Procedure", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "Patho 2-A", yearLongMarker: false, yearLongGroup: "YL-PATHO-2", sourceRow: 27 },
  { year: 2, term: TERM_SECOND, code: "PD 2-B", title: "Abnormal Organ Systems (Function)/ PD, Abnormal Imaging, Laboratory Analysis", lecture: 5, laboratory: 3, total: 8, hoursPerWeek: 8, prerequisite: "PD 2-A", yearLongMarker: false, yearLongGroup: "YL-PD-2", sourceRow: 28 },
  { year: 2, term: TERM_SECOND, code: "Pharma B", title: "Basic & Applied Pharmacology", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "Pharma A", yearLongMarker: false, yearLongGroup: "YL-PHARMA", sourceRow: 29 },
  { year: 2, term: TERM_SECOND, code: "Ethics 2-B", title: "Bioethics II", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "Ethics 2-A", yearLongMarker: false, yearLongGroup: null, sourceRow: 30 },
  { year: 2, term: TERM_SECOND, code: "CFM 2-B", title: "Community & Family Medicine II", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "CFM 2-A", yearLongMarker: false, yearLongGroup: "YL-CFM-2", sourceRow: 31 },
  { year: 2, term: TERM_SECOND, code: "Med Para", title: "Medical Parasitology", lecture: 3, laboratory: 3, total: 6, hoursPerWeek: 6, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 32 },
  { year: 2, term: TERM_SECOND, code: "Psych", title: "Psychiatry", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "Psychobio, Psychopath", yearLongMarker: false, yearLongGroup: null, sourceRow: 33 },
  { year: 2, term: TERM_SECOND, code: "PH 2-B", title: "Public Health II-B (Biostatistics)", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "PH 2-A", yearLongMarker: false, yearLongGroup: null, sourceRow: 34 },
  { year: 2, term: TERM_SECOND, code: "Basic Ped", title: "Basic Pediatrics", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, BPE 1-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 35 },
  { year: 2, term: TERM_SECOND, code: "Research 1", title: "Research Protocol", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "none", yearLongMarker: false, yearLongGroup: null, sourceRow: 36 },

  // ---------------------------------------------------------------- Year 3 S1
  { year: 3, term: TERM_FIRST, code: "IM 3-A", title: "Internal Medicine", lecture: 6, laboratory: 4, total: 10, hoursPerWeek: 10, prerequisite: "Patho 2-A&B, Med Micro, Med Para, PD2-A&B", yearLongMarker: true, yearLongGroup: "YL-IM-3", sourceRow: 37 },
  { year: 3, term: TERM_FIRST, code: "Clin Surg 3-A", title: "Surgery/Anesthesia", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "Basic Surg, PD2-A&B", yearLongMarker: true, yearLongGroup: "YL-CLIN-SURG-3", sourceRow: 38 },
  { year: 3, term: TERM_FIRST, code: "PH 3-A", title: "Public Health III-A (Biomedical Basis of Public Health)", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "PH1, 2-A, 2-B", yearLongMarker: false, yearLongGroup: null, sourceRow: 39 },
  { year: 3, term: TERM_FIRST, code: "Optha", title: "Ophthalmology", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, PHARMA A&B, Med Micro, Med Para", yearLongMarker: false, yearLongGroup: null, sourceRow: 40 },
  { year: 3, term: TERM_FIRST, code: "Neuro", title: "Neurology", lecture: 2, laboratory: 1, total: 3, hoursPerWeek: 3, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, PHARMA A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 41 },
  { year: 3, term: TERM_FIRST, code: "Clin Ped 3-A", title: "Clinical Pediatrics", lecture: 4, laboratory: 1, total: 5, hoursPerWeek: 5, prerequisite: "Basic Ped, PD2-A&B", yearLongMarker: true, yearLongGroup: "YL-CLIN-PED-3", sourceRow: 42 },
  { year: 3, term: TERM_FIRST, code: "OB 3-A", title: "Obstetrics", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 4, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, PHARMA A&B, PD2-A&B", yearLongMarker: true, yearLongGroup: "YL-OB-3", sourceRow: 43 },
  { year: 3, term: TERM_FIRST, code: "CFM 3-A", title: "Community & Family Medicine III", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "CFM 2-B", yearLongMarker: true, yearLongGroup: "YL-CFM-3", sourceRow: 44 },
  { year: 3, term: TERM_FIRST, code: "Research 2", title: "Applied Research 1", lecture: 1, laboratory: 3, total: 4, hoursPerWeek: 4, prerequisite: "Research 1", yearLongMarker: false, yearLongGroup: null, sourceRow: 45 },
  { year: 3, term: TERM_FIRST, code: "Med Juris-LM", title: "Medical Jurisprudence / Legal Medicine", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "First and Second year Subjects", yearLongMarker: false, yearLongGroup: null, sourceRow: 46 },

  // ---------------------------------------------------------------- Year 3 S2
  { year: 3, term: TERM_SECOND, code: "IM 3-B", title: "Internal Medicine", lecture: 6, laboratory: 4, total: 10, hoursPerWeek: 10, prerequisite: "IM 3-A", yearLongMarker: false, yearLongGroup: "YL-IM-3", sourceRow: 47 },
  { year: 3, term: TERM_SECOND, code: "PH 3-B", title: "Public Health III-B (Social & Behavioral Factors in Health)", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "PH 1, 2-A, 2-B & 3-A", yearLongMarker: false, yearLongGroup: null, sourceRow: 48 },
  { year: 3, term: TERM_SECOND, code: "Clin Ped 3-B", title: "Clinical Pediatrics", lecture: 4, laboratory: 1, total: 5, hoursPerWeek: 5, prerequisite: "Clin Ped 3-A", yearLongMarker: false, yearLongGroup: "YL-CLIN-PED-3", sourceRow: 49 },
  { year: 3, term: TERM_SECOND, code: "Otorhino", title: "Otorhinolaryngology", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, PHARMA A&B, Med Micro", yearLongMarker: false, yearLongGroup: null, sourceRow: 50 },
  { year: 3, term: TERM_SECOND, code: "GYN", title: "Gynecology", lecture: 2, laboratory: 1, total: 3, hoursPerWeek: 3, prerequisite: "HSB 1-AG/BG&AH/BH, PHYSIO 1-A&B, Biochem 1-A&B, PHARMA A&B, Med Micro,PD2-A&B", yearLongMarker: false, yearLongGroup: null, sourceRow: 51 },
  { year: 3, term: TERM_SECOND, code: "ICC", title: "Integrative Clinical Correlation", lecture: 4, laboratory: 0, total: 4, hoursPerWeek: 4, prerequisite: "All Basic Subjects, On-going Internal Medicine", yearLongMarker: false, yearLongGroup: null, sourceRow: 52 },
  { year: 3, term: TERM_SECOND, code: "Clin Surg 3-B", title: "Surgery/Anesthesia", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "Clinical Surgery 3-A", yearLongMarker: false, yearLongGroup: "YL-CLIN-SURG-3", sourceRow: 53 },
  { year: 3, term: TERM_SECOND, code: "OB 3-B", title: "Obstetrics", lecture: 3, laboratory: 1, total: 4, hoursPerWeek: 4, prerequisite: "OB 3-A", yearLongMarker: false, yearLongGroup: "YL-OB-3", sourceRow: 54 },
  { year: 3, term: TERM_SECOND, code: "CFM 3-B", title: "Community & Family Medicine III", lecture: 3, laboratory: 0, total: 3, hoursPerWeek: 3, prerequisite: "CFM 3-A", yearLongMarker: false, yearLongGroup: "YL-CFM-3", sourceRow: 55 },
  { year: 3, term: TERM_SECOND, code: "Research 3", title: "Applied Research 2", lecture: 1, laboratory: 3, total: 4, hoursPerWeek: 4, prerequisite: "Research 2", yearLongMarker: false, yearLongGroup: null, sourceRow: 56 },
  { year: 3, term: TERM_SECOND, code: "HE", title: "Health Economics", lecture: 2, laboratory: 0, total: 2, hoursPerWeek: 2, prerequisite: "none", yearLongMarker: false, yearLongGroup: null, sourceRow: 57 },
];

export interface ApprovedNonUnitRow {
  requirementType: "SUMMER_TRAINING" | "CLERKSHIP_CORE" | "CLERKSHIP_ELECTIVE";
  code: string | null;
  title: string;
  academicYear: number | null;
  term: string | null;
  hours: number | null;
  months: number | null;
  elective: boolean;
  electiveGroup: string | null;
  minimumSelections: number | null;
  notes: string | null;
}

export const CLERKSHIP_ELECTIVE_GROUP = "CLERKSHIP-ELECTIVES";
export const CLERKSHIP_REQUIRED_ELECTIVE_SELECTIONS = 2;
export const CLERKSHIP_DURATION_MONTHS = 12;
export const CLERKSHIP_REFERENCE_DAYS = 365;

/**
 * Summer training and the 12-month clinical clerkship. These are duration-based
 * requirements. They are tracked, but they NEVER enter the credited-unit
 * numerator or the 237-unit denominator (SPEC 52.7, 52.8, 54).
 */
export const APPROVED_NON_UNIT_REQUIREMENTS: ApprovedNonUnitRow[] = [
  {
    requirementType: "SUMMER_TRAINING",
    code: "CI1",
    title: "Summer Enhancement Program",
    academicYear: 2,
    term: "SUMMER",
    hours: 80,
    months: null,
    elective: false,
    electiveGroup: null,
    minimumSelections: null,
    notes: "Training duration: 2 weeks. Primary CURRICULUM sheet value; the BREAKDOWN sheet labels this row \"Community Immersion\".",
  },
  {
    requirementType: "SUMMER_TRAINING",
    code: "CI1",
    title: "Community Immersion",
    academicYear: 3,
    term: "SUMMER",
    hours: 80,
    months: null,
    elective: false,
    electiveGroup: null,
    minimumSelections: null,
    notes: "Training duration: 2 weeks. Primary CURRICULUM sheet codes this CI1; the BREAKDOWN sheet codes it CI2.",
  },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Internal Medicine", academicYear: 4, term: "CLERKSHIP", hours: null, months: 2, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Surgery", academicYear: 4, term: "CLERKSHIP", hours: null, months: 2, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "OB & Gynecology", academicYear: 4, term: "CLERKSHIP", hours: null, months: 2, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Pediatrics", academicYear: 4, term: "CLERKSHIP", hours: null, months: 2, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Community & Family Medicine", academicYear: 4, term: "CLERKSHIP", hours: null, months: 1, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Infectious Disease", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Otorhinolaryngology", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Ophthalmology", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_CORE", code: null, title: "Psychiatry", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: false, electiveGroup: null, minimumSelections: null, notes: null },
  { requirementType: "CLERKSHIP_ELECTIVE", code: null, title: "Rehabilitation Medicine", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: true, electiveGroup: CLERKSHIP_ELECTIVE_GROUP, minimumSelections: CLERKSHIP_REQUIRED_ELECTIVE_SELECTIONS, notes: "Choose 2 electives to complete 12 months." },
  { requirementType: "CLERKSHIP_ELECTIVE", code: null, title: "Radiology", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: true, electiveGroup: CLERKSHIP_ELECTIVE_GROUP, minimumSelections: CLERKSHIP_REQUIRED_ELECTIVE_SELECTIONS, notes: "Choose 2 electives to complete 12 months." },
  { requirementType: "CLERKSHIP_ELECTIVE", code: null, title: "Women's Health Care Center", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: true, electiveGroup: CLERKSHIP_ELECTIVE_GROUP, minimumSelections: CLERKSHIP_REQUIRED_ELECTIVE_SELECTIONS, notes: "Choose 2 electives to complete 12 months." },
  { requirementType: "CLERKSHIP_ELECTIVE", code: null, title: "Heart Station", academicYear: 4, term: "CLERKSHIP", hours: null, months: 0.5, elective: true, electiveGroup: CLERKSHIP_ELECTIVE_GROUP, minimumSelections: CLERKSHIP_REQUIRED_ELECTIVE_SELECTIONS, notes: "Choose 2 electives to complete 12 months." },
];

/** Semester totals as printed in the workbook, used to verify the transcription. */
export const EXPECTED_SEMESTER_TOTALS: { year: 1 | 2 | 3; term: string; units: number }[] = [
  { year: 1, term: TERM_FIRST, units: 37 },
  { year: 1, term: TERM_SECOND, units: 35 },
  { year: 2, term: TERM_FIRST, units: 41 },
  { year: 2, term: TERM_SECOND, units: 41 },
  { year: 3, term: TERM_FIRST, units: 40 },
  { year: 3, term: TERM_SECOND, units: 43 },
];

export const EXPECTED_YEAR_TOTALS = { 1: 72, 2: 82, 3: 83 } as const;
export const EXPECTED_TOTAL_PROGRAM_UNITS = 237;
export const EXPECTED_UNIT_BEARING_ROWS = 57;
