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

class OldPapers(Document):
    # Explicit categorization (no course matching)
    exam_id = ReferenceField(Exam, required=True)
    sub_exam_id = ReferenceField(SubExam, required=True)

    # Keep course_id nullable
    course_id = ReferenceField(Course, required=False, reverse_delete_rule=DENY, default=None)

    paper_title = StringField(required=True)
    duration = IntField(required=True)              # minutes
    number_of_questions = IntField(required=True)
    content_file_path = StringField(required=True)  # PDF path
    status = IntField(required=True)                # 1=active, 0=inactive
    created_date = DateTimeField(default=datetime.utcnow)

    meta = {
        'collection': 'old_papers',
        'indexes': ['exam_id', 'sub_exam_id', 'status', '-created_date']
    }
