from mongoengine import Document, StringField, DateTimeField, ReferenceField
from datetime import datetime
from flask import session
from models.exam import Exam
from models.sub_exam import SubExam
from models.video_courses_model import VideoCourseSubject
from models.chapter import Chapters
from models.topic import Topic
class Video(Document):
    """
    MongoEngine model for videos.
    Each video belongs to a teacher (admin_id).
    """

    admin_id = ReferenceField('Admin',required=True)
    exam_id = ReferenceField(Exam, required=True)
    sub_exam_id = ReferenceField(SubExam, required=False, default=None)
    subject_id = ReferenceField(VideoCourseSubject, required=True)
    chapter_id = ReferenceField(Chapters, required=False, default=None)
    topic_id = ReferenceField(Topic, required= False, default=None)
    author=StringField()
    title = StringField(required=True)
    description = StringField()
    subject = StringField()
    path = StringField()
    task_id = StringField(required=True)
    created_at = DateTimeField(default=datetime.utcnow)
    processing_start_datetime = DateTimeField()
    video_type = StringField(choices=["lecture", "mcq"], default="lecture")
    execution_completed_datetime = DateTimeField()
    review_status = StringField(
        choices=['not_reviewed', 'completed', 'rejected'],
        default='not_reviewed'
    )
    reviewed_by=StringField(default="")
    meta = {
        "collection": "videos"
    }