from datetime import datetime
from models.exam import Exam  # ReferenceField target
from mongoengine import Document, ReferenceField, StringField, IntField, DateTimeField

class SubExam(Document):
    exam_id = ReferenceField(Exam, required=True)          # PK of models/exam.py
    icon = StringField(null=True)                            # URL, like in exam list
    sub_exam_title = StringField(required=True)
    sub_exam_description = StringField(null=True)
    status = IntField(default=1, choices=[0, 1])             # 1=active, 0=inactive
    position = IntField(default=0)
    created_date = DateTimeField(default=datetime.utcnow)

    meta = {
        'collection': 'sub_exams_list',
        'indexes': ['exam_id', 'status', 'position', '-created_date']
    }

    def to_json(self):
        return {
            'id': str(self.id),
            'exam_id': str(self.exam_id.id) if self.exam_id else None,
            'icon': self.icon,
            'sub_exam_title': self.sub_exam_title,
            'sub_exam_description': self.sub_exam_description,
            'status': self.status,
            'position': self.position,
            'created_date': self.created_date.isoformat() if self.created_date else None
        }
