from mongoengine import Document, IntField, StringField, DateTimeField, ReferenceField, DENY
from datetime import datetime
from models.course import Course
from models.exam import Exam
from models.sub_exam import SubExam
from models.chapter import Chapters
from models.video_courses_model import VideoCourseSubject
from models.topic import Topic
from models.configuration import Language


class Ebook(Document):
    exam_id = ReferenceField(Exam, required=True)
    sub_exam_id = ReferenceField(SubExam, required=False, default=None)
    subject_id = ReferenceField(VideoCourseSubject, required=False, default=None)
    chapter_id = ReferenceField(Chapters, required=False, default=None)
    topic_id = ReferenceField(Topic, required= False, default=None)
    language_id = ReferenceField(Language, required=True)

    # no matching logic; keep null
    course_id = ReferenceField(Course, required=False, reverse_delete_rule=DENY, default=None)

    title = StringField(required=True)
    author = StringField(required=True)
    publication_date = DateTimeField(default=datetime.utcnow)
    file_path = StringField(required=True)  # PDF path
    status = IntField(required=True, choices=[0, 1])  # 0: inactive, 1: active
    created_date = DateTimeField(default=datetime.utcnow)

    meta = {
        'collection': 'ebooks',
    
    }
