// Course timetabling with room and teacher clashes dataset (course-timetabling-with-room-and-teacher-clashes-dataset) v1 — Prisma seed
// Synthetic sample data, CC0-1.0. Generated deterministically; re-running the
// generator with the same spec and seed reproduces this file exactly.
//
// Delegates are named after the tables (prisma.courses), which assumes models
// mapped to those table names. Rename the delegates if your models differ.
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
    await prisma.courses.createMany({
        data: [
            { id: 1, programme: "autumn_programme", course_code: "CHM210", course_title: "Organic Chemistry", department: "sciences", enrolled: "38" },
            { id: 2, programme: "autumn_programme", course_code: "CHM110", course_title: "General Chemistry", department: "sciences", enrolled: "84" },
            { id: 3, programme: "autumn_programme", course_code: "PHY120", course_title: "Mechanics and Waves", department: "sciences", enrolled: "72" },
            { id: 4, programme: "autumn_programme", course_code: "BIO130", course_title: "Cell Biology", department: "sciences", enrolled: "66" },
            { id: 5, programme: "autumn_programme", course_code: "BIO240", course_title: "Ecology and Fieldwork", department: "sciences", enrolled: "24" },
            { id: 6, programme: "autumn_programme", course_code: "MAT101", course_title: "Calculus I", department: "mathematics", enrolled: "96" },
            { id: 7, programme: "autumn_programme", course_code: "MAT202", course_title: "Linear Algebra", department: "mathematics", enrolled: "44" },
            { id: 8, programme: "autumn_programme", course_code: "MAT310", course_title: "Probability Theory", department: "mathematics", enrolled: "28" },
            { id: 9, programme: "autumn_programme", course_code: "STA220", course_title: "Statistics for Scientists", department: "mathematics", enrolled: "58" },
            { id: 10, programme: "autumn_programme", course_code: "CSC101", course_title: "Programming Foundations", department: "computing", enrolled: "90" },
            { id: 11, programme: "autumn_programme", course_code: "CSC230", course_title: "Databases", department: "computing", enrolled: "40" },
            { id: 12, programme: "autumn_programme", course_code: "CSC320", course_title: "Operating Systems", department: "computing", enrolled: "30" },
            { id: 13, programme: "autumn_programme", course_code: "CSC340", course_title: "Machine Learning Basics", department: "computing", enrolled: "46" },
            { id: 14, programme: "autumn_programme", course_code: "HIS110", course_title: "Modern European History", department: "humanities", enrolled: "52" },
            { id: 15, programme: "autumn_programme", course_code: "HIS230", course_title: "Historians at Work", department: "humanities", enrolled: "20" },
            { id: 16, programme: "autumn_programme", course_code: "PHI105", course_title: "Introduction to Ethics", department: "humanities", enrolled: "70" },
            { id: 17, programme: "autumn_programme", course_code: "LIT210", course_title: "The Victorian Novel", department: "humanities", enrolled: "26" },
            { id: 18, programme: "autumn_programme", course_code: "LNG101", course_title: "Spanish for Beginners", department: "languages", enrolled: "22" },
            { id: 19, programme: "autumn_programme", course_code: "LNG102", course_title: "German for Beginners", department: "languages", enrolled: "18" },
            { id: 20, programme: "autumn_programme", course_code: "LNG210", course_title: "Intermediate French", department: "languages", enrolled: "16" },
            { id: 21, programme: "autumn_programme", course_code: "ART120", course_title: "Drawing Studio", department: "arts", enrolled: "18" },
            { id: 22, programme: "autumn_programme", course_code: "ART230", course_title: "Printmaking Workshop", department: "arts", enrolled: "14" },
            { id: 23, programme: "autumn_programme", course_code: "MUS110", course_title: "Music Theory", department: "arts", enrolled: "32" },
            { id: 24, programme: "autumn_programme", course_code: "ECO101", course_title: "Principles of Economics", department: "humanities", enrolled: "140" },
            { id: 25, programme: "autumn_programme", course_code: "PSY140", course_title: "Introduction to Psychology", department: "sciences", enrolled: "104" },
            { id: 26, programme: "autumn_programme", course_code: "GEO150", course_title: "Physical Geography", department: "sciences", enrolled: "36" },
        ],
    });
    await prisma.rooms.createMany({
        data: [
            { id: 1, site: "main_campus", room_code: "A101", capacity: "40", room_type: "seminar" },
            { id: 2, site: "main_campus", room_code: "A102", capacity: "45", room_type: "seminar" },
            { id: 3, site: "main_campus", room_code: "A210", capacity: "80", room_type: "lecture" },
            { id: 4, site: "main_campus", room_code: "B004", capacity: "160", room_type: "lecture" },
            { id: 5, site: "main_campus", room_code: "B020", capacity: "120", room_type: "lecture" },
            { id: 6, site: "main_campus", room_code: "B105", capacity: "60", room_type: "seminar" },
            { id: 7, site: "main_campus", room_code: "LAB1", capacity: "36", room_type: "lab" },
            { id: 8, site: "main_campus", room_code: "LAB2", capacity: "36", room_type: "lab" },
            { id: 9, site: "main_campus", room_code: "LAB3", capacity: "30", room_type: "lab" },
            { id: 10, site: "main_campus", room_code: "C301", capacity: "50", room_type: "seminar" },
        ],
    });
    await prisma.teachers.createMany({
        data: [
            { id: 1, first_name: "Selena", last_name: "Cronin", employment: "full_time", joined_on: "2023-07-31" },
            { id: 2, first_name: "Seamus", last_name: "Lesch", employment: "part_time", joined_on: "2013-08-18" },
            { id: 3, first_name: "Corbin", last_name: "Ebert", employment: "full_time", joined_on: "2019-03-11" },
            { id: 4, first_name: "Ryleigh", last_name: "Bauch", employment: "full_time", joined_on: "2024-03-01" },
            { id: 5, first_name: "Cloyd", last_name: "MacGyver", employment: "full_time", joined_on: "2012-06-17" },
            { id: 6, first_name: "Manuel", last_name: "Moen", employment: "part_time", joined_on: "2017-07-12" },
            { id: 7, first_name: "Leland", last_name: "Kreiger-Raynor", employment: "full_time", joined_on: "2016-11-19" },
            { id: 8, first_name: "Neil", last_name: "Murphy", employment: "full_time", joined_on: "2010-10-02" },
            { id: 9, first_name: "Felix", last_name: "Gerhold-Zieme", employment: "part_time", joined_on: "2022-12-18" },
            { id: 10, first_name: "Richard", last_name: "Krajcik", employment: "full_time", joined_on: "2024-09-28" },
            { id: 11, first_name: "Angus", last_name: "Rosenbaum", employment: "full_time", joined_on: "2019-12-27" },
            { id: 12, first_name: "Amari", last_name: "Windler", employment: "full_time", joined_on: "2019-05-27" },
            { id: 13, first_name: "Osbaldo", last_name: "Bernier", employment: "full_time", joined_on: "2012-03-24" },
            { id: 14, first_name: "Burnice", last_name: "McClure", employment: "part_time", joined_on: "2020-12-12" },
        ],
    });
    await prisma.time_slots.createMany({
        data: [
            { id: 1, term: "autumn_week", weekday: "Monday", period_no: "1", starts_at: "08:30:00", ends_at: "09:45:00" },
            { id: 2, term: "autumn_week", weekday: "Monday", period_no: "2", starts_at: "09:45:00", ends_at: "11:00:00" },
            { id: 3, term: "autumn_week", weekday: "Monday", period_no: "3", starts_at: "11:00:00", ends_at: "12:15:00" },
            { id: 4, term: "autumn_week", weekday: "Monday", period_no: "4", starts_at: "12:15:00", ends_at: "13:30:00" },
            { id: 5, term: "autumn_week", weekday: "Monday", period_no: "5", starts_at: "13:45:00", ends_at: "15:00:00" },
            { id: 6, term: "autumn_week", weekday: "Monday", period_no: "6", starts_at: "15:00:00", ends_at: "16:15:00" },
            { id: 7, term: "autumn_week", weekday: "Monday", period_no: "7", starts_at: "16:15:00", ends_at: "17:30:00" },
            { id: 8, term: "autumn_week", weekday: "Monday", period_no: "8", starts_at: "17:30:00", ends_at: "18:45:00" },
            { id: 9, term: "autumn_week", weekday: "Tuesday", period_no: "1", starts_at: "08:30:00", ends_at: "09:45:00" },
            { id: 10, term: "autumn_week", weekday: "Tuesday", period_no: "2", starts_at: "09:45:00", ends_at: "11:00:00" },
            { id: 11, term: "autumn_week", weekday: "Tuesday", period_no: "3", starts_at: "11:00:00", ends_at: "12:15:00" },
            { id: 12, term: "autumn_week", weekday: "Tuesday", period_no: "4", starts_at: "12:15:00", ends_at: "13:30:00" },
            { id: 13, term: "autumn_week", weekday: "Tuesday", period_no: "5", starts_at: "13:45:00", ends_at: "15:00:00" },
            { id: 14, term: "autumn_week", weekday: "Tuesday", period_no: "6", starts_at: "15:00:00", ends_at: "16:15:00" },
            { id: 15, term: "autumn_week", weekday: "Tuesday", period_no: "7", starts_at: "16:15:00", ends_at: "17:30:00" },
            { id: 16, term: "autumn_week", weekday: "Tuesday", period_no: "8", starts_at: "17:30:00", ends_at: "18:45:00" },
            { id: 17, term: "autumn_week", weekday: "Wednesday", period_no: "1", starts_at: "08:30:00", ends_at: "09:45:00" },
            { id: 18, term: "autumn_week", weekday: "Wednesday", period_no: "2", starts_at: "09:45:00", ends_at: "11:00:00" },
            { id: 19, term: "autumn_week", weekday: "Wednesday", period_no: "3", starts_at: "11:00:00", ends_at: "12:15:00" },
            { id: 20, term: "autumn_week", weekday: "Wednesday", period_no: "4", starts_at: "12:15:00", ends_at: "13:30:00" },
            { id: 21, term: "autumn_week", weekday: "Wednesday", period_no: "5", starts_at: "13:45:00", ends_at: "15:00:00" },
            { id: 22, term: "autumn_week", weekday: "Wednesday", period_no: "6", starts_at: "15:00:00", ends_at: "16:15:00" },
            { id: 23, term: "autumn_week", weekday: "Wednesday", period_no: "7", starts_at: "16:15:00", ends_at: "17:30:00" },
            { id: 24, term: "autumn_week", weekday: "Wednesday", period_no: "8", starts_at: "17:30:00", ends_at: "18:45:00" },
            { id: 25, term: "autumn_week", weekday: "Thursday", period_no: "1", starts_at: "08:30:00", ends_at: "09:45:00" },
            { id: 26, term: "autumn_week", weekday: "Thursday", period_no: "2", starts_at: "09:45:00", ends_at: "11:00:00" },
            { id: 27, term: "autumn_week", weekday: "Thursday", period_no: "3", starts_at: "11:00:00", ends_at: "12:15:00" },
            { id: 28, term: "autumn_week", weekday: "Thursday", period_no: "4", starts_at: "12:15:00", ends_at: "13:30:00" },
            { id: 29, term: "autumn_week", weekday: "Thursday", period_no: "5", starts_at: "13:45:00", ends_at: "15:00:00" },
            { id: 30, term: "autumn_week", weekday: "Thursday", period_no: "6", starts_at: "15:00:00", ends_at: "16:15:00" },
            { id: 31, term: "autumn_week", weekday: "Thursday", period_no: "7", starts_at: "16:15:00", ends_at: "17:30:00" },
            { id: 32, term: "autumn_week", weekday: "Thursday", period_no: "8", starts_at: "17:30:00", ends_at: "18:45:00" },
            { id: 33, term: "autumn_week", weekday: "Friday", period_no: "1", starts_at: "08:30:00", ends_at: "09:45:00" },
            { id: 34, term: "autumn_week", weekday: "Friday", period_no: "2", starts_at: "09:45:00", ends_at: "11:00:00" },
            { id: 35, term: "autumn_week", weekday: "Friday", period_no: "3", starts_at: "11:00:00", ends_at: "12:15:00" },
            { id: 36, term: "autumn_week", weekday: "Friday", period_no: "4", starts_at: "12:15:00", ends_at: "13:30:00" },
            { id: 37, term: "autumn_week", weekday: "Friday", period_no: "5", starts_at: "13:45:00", ends_at: "15:00:00" },
            { id: 38, term: "autumn_week", weekday: "Friday", period_no: "6", starts_at: "15:00:00", ends_at: "16:15:00" },
            { id: 39, term: "autumn_week", weekday: "Friday", period_no: "7", starts_at: "16:15:00", ends_at: "17:30:00" },
            { id: 40, term: "autumn_week", weekday: "Friday", period_no: "8", starts_at: "17:30:00", ends_at: "18:45:00" },
        ],
    });
    await prisma.sessions.createMany({
        data: [
            { id: 1, course_id: 13, teacher_id: 8, room_id: 6, slot_id: 5, session_type: "lecture" },
            { id: 2, course_id: 6, teacher_id: 10, room_id: 6, slot_id: 22, session_type: "lecture" },
            { id: 3, course_id: 15, teacher_id: 9, room_id: 6, slot_id: 19, session_type: "lecture" },
            { id: 4, course_id: 3, teacher_id: 4, room_id: 3, slot_id: 24, session_type: "lecture" },
            { id: 5, course_id: 5, teacher_id: 13, room_id: 10, slot_id: 35, session_type: "lecture" },
            { id: 6, course_id: 16, teacher_id: 1, room_id: 7, slot_id: 28, session_type: "lab" },
            { id: 7, course_id: 18, teacher_id: 6, room_id: 5, slot_id: 2, session_type: "lab" },
            { id: 8, course_id: 23, teacher_id: 14, room_id: 8, slot_id: 18, session_type: "tutorial" },
            { id: 9, course_id: 12, teacher_id: 13, room_id: 8, slot_id: 27, session_type: "lecture" },
            { id: 10, course_id: 5, teacher_id: 11, room_id: 10, slot_id: 1, session_type: "tutorial" },
            { id: 11, course_id: 14, teacher_id: 2, room_id: 1, slot_id: 31, session_type: "lecture" },
            { id: 12, course_id: 18, teacher_id: 7, room_id: 5, slot_id: 21, session_type: "lecture" },
            { id: 13, course_id: 1, teacher_id: 4, room_id: 6, slot_id: 38, session_type: "lecture" },
            { id: 14, course_id: 4, teacher_id: 14, room_id: 4, slot_id: 34, session_type: "lab" },
            { id: 15, course_id: 17, teacher_id: 11, room_id: 9, slot_id: 18, session_type: "tutorial" },
            { id: 16, course_id: 10, teacher_id: 4, room_id: 3, slot_id: 11, session_type: "tutorial" },
            { id: 17, course_id: 20, teacher_id: 4, room_id: 3, slot_id: 34, session_type: "lecture" },
            { id: 18, course_id: 20, teacher_id: 4, room_id: 3, slot_id: 29, session_type: "lecture" },
            { id: 19, course_id: 22, teacher_id: 1, room_id: 5, slot_id: 35, session_type: "tutorial" },
            { id: 20, course_id: 7, teacher_id: 10, room_id: 10, slot_id: 7, session_type: "lab" },
            { id: 21, course_id: 11, teacher_id: 11, room_id: 4, slot_id: 3, session_type: "lecture" },
            { id: 22, course_id: 15, teacher_id: 4, room_id: 3, slot_id: 14, session_type: "lecture" },
            { id: 23, course_id: 23, teacher_id: 1, room_id: 3, slot_id: 28, session_type: "lab" },
            { id: 24, course_id: 8, teacher_id: 7, room_id: 5, slot_id: 12, session_type: "lecture" },
            { id: 25, course_id: 2, teacher_id: 2, room_id: 2, slot_id: 38, session_type: "lecture" },
            { id: 26, course_id: 8, teacher_id: 5, room_id: 4, slot_id: 12, session_type: "tutorial" },
            { id: 27, course_id: 24, teacher_id: 14, room_id: 5, slot_id: 31, session_type: "lecture" },
            { id: 28, course_id: 19, teacher_id: 11, room_id: 1, slot_id: 34, session_type: "lecture" },
            { id: 29, course_id: 26, teacher_id: 12, room_id: 6, slot_id: 10, session_type: "lab" },
            { id: 30, course_id: 6, teacher_id: 4, room_id: 5, slot_id: 29, session_type: "tutorial" },
            { id: 31, course_id: 7, teacher_id: 3, room_id: 8, slot_id: 14, session_type: "tutorial" },
            { id: 32, course_id: 4, teacher_id: 6, room_id: 2, slot_id: 27, session_type: "tutorial" },
            { id: 33, course_id: 2, teacher_id: 4, room_id: 7, slot_id: 16, session_type: "lecture" },
            { id: 34, course_id: 4, teacher_id: 6, room_id: 10, slot_id: 14, session_type: "lecture" },
            { id: 35, course_id: 23, teacher_id: 6, room_id: 10, slot_id: 40, session_type: "tutorial" },
            { id: 36, course_id: 22, teacher_id: 5, room_id: 8, slot_id: 17, session_type: "tutorial" },
            { id: 37, course_id: 21, teacher_id: 4, room_id: 10, slot_id: 14, session_type: "lab" },
            { id: 38, course_id: 1, teacher_id: 7, room_id: 7, slot_id: 29, session_type: "tutorial" },
            { id: 39, course_id: 13, teacher_id: 6, room_id: 5, slot_id: 25, session_type: "lab" },
            { id: 40, course_id: 6, teacher_id: 14, room_id: 5, slot_id: 23, session_type: "lab" },
            { id: 41, course_id: 26, teacher_id: 4, room_id: 2, slot_id: 7, session_type: "lab" },
            { id: 42, course_id: 1, teacher_id: 3, room_id: 5, slot_id: 36, session_type: "tutorial" },
            { id: 43, course_id: 21, teacher_id: 12, room_id: 5, slot_id: 31, session_type: "tutorial" },
            { id: 44, course_id: 11, teacher_id: 1, room_id: 7, slot_id: 3, session_type: "lecture" },
            { id: 45, course_id: 12, teacher_id: 7, room_id: 10, slot_id: 19, session_type: "lecture" },
            { id: 46, course_id: 17, teacher_id: 2, room_id: 5, slot_id: 39, session_type: "tutorial" },
            { id: 47, course_id: 20, teacher_id: 1, room_id: 10, slot_id: 19, session_type: "lecture" },
            { id: 48, course_id: 9, teacher_id: 6, room_id: 2, slot_id: 9, session_type: "lab" },
            { id: 49, course_id: 6, teacher_id: 9, room_id: 8, slot_id: 17, session_type: "tutorial" },
            { id: 50, course_id: 19, teacher_id: 1, room_id: 3, slot_id: 38, session_type: "lecture" },
            { id: 51, course_id: 18, teacher_id: 1, room_id: 5, slot_id: 27, session_type: "lab" },
            { id: 52, course_id: 12, teacher_id: 7, room_id: 3, slot_id: 1, session_type: "lecture" },
            { id: 53, course_id: 1, teacher_id: 10, room_id: 1, slot_id: 28, session_type: "lecture" },
            { id: 54, course_id: 21, teacher_id: 4, room_id: 6, slot_id: 34, session_type: "lab" },
            { id: 55, course_id: 11, teacher_id: 11, room_id: 6, slot_id: 6, session_type: "tutorial" },
            { id: 56, course_id: 14, teacher_id: 12, room_id: 4, slot_id: 19, session_type: "tutorial" },
            { id: 57, course_id: 25, teacher_id: 1, room_id: 4, slot_id: 4, session_type: "lecture" },
            { id: 58, course_id: 24, teacher_id: 10, room_id: 2, slot_id: 23, session_type: "lecture" },
            { id: 59, course_id: 16, teacher_id: 14, room_id: 6, slot_id: 24, session_type: "tutorial" },
            { id: 60, course_id: 11, teacher_id: 3, room_id: 3, slot_id: 10, session_type: "tutorial" },
            { id: 61, course_id: 19, teacher_id: 1, room_id: 3, slot_id: 27, session_type: "lecture" },
            { id: 62, course_id: 26, teacher_id: 13, room_id: 2, slot_id: 4, session_type: "tutorial" },
            { id: 63, course_id: 3, teacher_id: 1, room_id: 4, slot_id: 14, session_type: "tutorial" },
            { id: 64, course_id: 25, teacher_id: 10, room_id: 10, slot_id: 7, session_type: "lab" },
            { id: 65, course_id: 18, teacher_id: 2, room_id: 2, slot_id: 4, session_type: "lecture" },
            { id: 66, course_id: 9, teacher_id: 4, room_id: 10, slot_id: 13, session_type: "lecture" },
            { id: 67, course_id: 12, teacher_id: 7, room_id: 10, slot_id: 14, session_type: "tutorial" },
            { id: 68, course_id: 2, teacher_id: 5, room_id: 9, slot_id: 29, session_type: "lecture" },
            { id: 69, course_id: 17, teacher_id: 6, room_id: 8, slot_id: 39, session_type: "tutorial" },
            { id: 70, course_id: 24, teacher_id: 3, room_id: 5, slot_id: 26, session_type: "tutorial" },
            { id: 71, course_id: 13, teacher_id: 14, room_id: 9, slot_id: 22, session_type: "lecture" },
            { id: 72, course_id: 22, teacher_id: 10, room_id: 4, slot_id: 4, session_type: "lab" },
            { id: 73, course_id: 14, teacher_id: 7, room_id: 7, slot_id: 6, session_type: "tutorial" },
            { id: 74, course_id: 5, teacher_id: 1, room_id: 4, slot_id: 11, session_type: "tutorial" },
            { id: 75, course_id: 5, teacher_id: 8, room_id: 5, slot_id: 20, session_type: "tutorial" },
            { id: 76, course_id: 9, teacher_id: 1, room_id: 3, slot_id: 11, session_type: "lecture" },
            { id: 77, course_id: 3, teacher_id: 7, room_id: 3, slot_id: 18, session_type: "lab" },
            { id: 78, course_id: 3, teacher_id: 6, room_id: 2, slot_id: 37, session_type: "lecture" },
            { id: 79, course_id: 19, teacher_id: 3, room_id: 7, slot_id: 22, session_type: "lab" },
            { id: 80, course_id: 10, teacher_id: 4, room_id: 4, slot_id: 27, session_type: "lecture" },
            { id: 81, course_id: 16, teacher_id: 2, room_id: 5, slot_id: 11, session_type: "tutorial" },
            { id: 82, course_id: 10, teacher_id: 1, room_id: 5, slot_id: 3, session_type: "lecture" },
            { id: 83, course_id: 7, teacher_id: 2, room_id: 1, slot_id: 11, session_type: "lab" },
            { id: 84, course_id: 15, teacher_id: 1, room_id: 4, slot_id: 31, session_type: "lab" },
            { id: 85, course_id: 21, teacher_id: 3, room_id: 3, slot_id: 31, session_type: "lecture" },
            { id: 86, course_id: 7, teacher_id: 1, room_id: 3, slot_id: 21, session_type: "lab" },
            { id: 87, course_id: 15, teacher_id: 3, room_id: 5, slot_id: 39, session_type: "lecture" },
            { id: 88, course_id: 8, teacher_id: 11, room_id: 3, slot_id: 29, session_type: "lecture" },
            { id: 89, course_id: 25, teacher_id: 8, room_id: 5, slot_id: 1, session_type: "lecture" },
        ],
    });
}

main()
    .then(() => prisma.$disconnect())
    .catch(async error => {
        console.error(error);
        await prisma.$disconnect();
        process.exit(1);
    });
