from flask import Blueprint, jsonify, request
from models.exam import Exam
from models.sub_exam import SubExam
from models.chapter import Chapters
from models.topic import Topic
from models.video_courses_model import VideoCourseSubject

metadata_routes = Blueprint('metadata_routes', __name__)

@metadata_routes.route('/exams', methods=['GET'])
def get_exams():
    exams = Exam.objects(status=1)
    exam_list = [{'id': str(exam.id), 'name': exam.exam_title} for exam in exams]
    return jsonify(exam_list)

@metadata_routes.route('/sub-exams/<exam_id>', methods=['GET'])
def get_sub_exams(exam_id):
    sub_exams = SubExam.objects(exam_id=exam_id, status=1)
    sub_exam_list = [{'id': str(sub_exam.id), 'name': sub_exam.sub_exam_title} for sub_exam in sub_exams]
    return jsonify(sub_exam_list)

@metadata_routes.route('/subjects/<sub_exam_id>', methods=['GET'])
def get_subjects(sub_exam_id):
    subjects = VideoCourseSubject.objects(sub_exam_id=sub_exam_id, status=1)
    subject_list = [{'id': str(subject.id), 'name': subject.subject_name} for subject in subjects]
    return jsonify(subject_list)

@metadata_routes.route('/chapters/<subject_id>', methods=['GET'])
def get_chapters(subject_id):
    chapters = Chapters.objects(subject_id=subject_id, status=1)
    chapter_list = [{'id': str(chapter.id), 'name': chapter.title} for chapter in chapters]
    return jsonify(chapter_list)

@metadata_routes.route('/topics/<chapter_id>', methods=['GET'])
def get_topics(chapter_id):
    topics = Topic.objects(chapter_id=chapter_id, status=1)
    topic_list = [{'id': str(topic.id), 'name': topic.title} for topic in topics]
    return jsonify(topic_list)
