from mongoengine import Document, StringField, IntField, DateTimeField, ReferenceField
from datetime import datetime
from models.video_courses_model import VideoCourseSubject
from models.sub_exam import SubExam
from models.chapter import Chapters
from models.exam import Exam  # main exam



class Topic(Document):
    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=True)
    title        = StringField(required=True)
    status       = IntField(default=1)
    created_date = DateTimeField(default=datetime.utcnow)

    meta = {
        'collection': 'topics',
        'indexes': [
            '-created_date',                   # default sort
            'exam_id', 'sub_exam_id',         # common filters
            'subject_id', 'chapter_id',
            ('exam_id', '-created_date'),     # combo used by list screens
        ]
    }
