from mongoengine import Document, StringField, DateTimeField, ListField
from datetime import datetime

class MCQ(Document):
    filename = StringField(null=True)
    subject= StringField(required=True)
    question = StringField(required=True)
    option_a = StringField(required=True)
    option_b = StringField(required=True)
    option_c = StringField(required=True)
    option_d = StringField(required=True)
    figure_ref= StringField(null=True)
    correct_answer = StringField(required=True)
    explanation = StringField(null=True)
    created_at = DateTimeField(default=datetime.utcnow)

    meta = {'collection': 'mcq'}

    def to_json(self):
        return {
            'id': str(self.id),
            'output_file': self.output_file,
            'question': self.question,
            'option_a': self.option_a,
            'option_b': self.option_b,
            'option_c': self.option_c,
            'option_d': self.option_d,
            'correct_answer': self.correct_answer,
            'explanation': self.explanation,
            'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S')
        }

class MCQ2(Document):
    output_file = StringField(null=True)
    question = StringField(required=True)
    options = ListField(StringField(), required=True)
    correct_answer = StringField(required=True)
    explanation = StringField(null=True)
    created_at = DateTimeField(default=datetime.utcnow)

    meta = {'collection': 'mcq'}

    def to_json(self):
        return {
            'id': str(self.id),
            'output_file': self.output_file,
            'question': self.question,
            'option': self.options,
            'correct_answer': self.correct_answer,
            'explanation': self.explanation,
            'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S')
        }
