import random
def generate_timetable(streams, subjects, teacher_subjects):
    print("=== GENERATE TIMETABLE DEBUG ===")

    print("Subjects (TimetableSubject):")
    for s in subjects:
        print("  ", s.id, s.exam_subject.subject_code)

    print("TeacherSubject assignments:")
    for ts in teacher_subjects:
        print(
            "  Teacher:", ts.teacher_id,
            "Subject:", getattr(ts.subject, "subject_code", ts.subject),
            "Stream:", ts.stream_id
        )

    DAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
    PERIODS = ["P1", "P2", "P3", "P4", "BREAK", "P6", "P7", "P8", "P9", "LUNCH", "P11", "P12"]

    timetable = {
        day: {stream.id: {p: None for p in PERIODS} for stream in streams}
        for day in DAYS
    }

    for day in DAYS:
        for stream in streams:
            timetable[day][stream.id]["BREAK"] = "BREAK"
            timetable[day][stream.id]["LUNCH"] = "LUNCH"

    for subject in subjects:
        print(f"\nTrying to place subject: {subject.exam_subject.subject_code}")

        for ts in teacher_subjects:
            print(
                "  Compare TS.subject:",
                getattr(ts.subject, "subject_code", ts.subject),
                "WITH TimetableSubject.exam_subject:",
                subject.exam_subject.subject_code
            )

    print("=== END DEBUG ===")
    return timetable
