"""
Interview models for legacy tables.
"""

from tortoise import fields, models


class Interview(models.Model):
    """Model for the mip_interview_tbl table."""

    id = fields.IntField(pk=True, description="Interview ID")
    user_id = fields.IntField(description="User ID")
    interview_name = fields.CharField(max_length=255, description="Interview name")
    industry_id = fields.IntField(description="Industry ID")
    type_of_interview = fields.CharField(max_length=1, description="Type of interview")
    years_of_experience = fields.CharField(
        max_length=1, description="Years of experience"
    )
    duration_of_interview = fields.CharField(
        max_length=1, description="Duration of interview"
    )
    restart = fields.CharField(max_length=1, default="0", description="Restart flag")
    questions_id = fields.CharField(max_length=255, description="Questions ID list")
    interview_type = fields.CharField(
        max_length=1, null=True, default="0", description="Interview type"
    )
    hardware_detect = fields.CharField(
        max_length=1, default="0", description="Hardware detection"
    )
    interview_date = fields.DatetimeField(
        auto_now_add=True, description="Interview date"
    )
    bg_id = fields.IntField(null=True, description="Background ID")
    ai_feedback = fields.IntField(default=0, description="AI feedback status")
    status = fields.CharField(max_length=1, default="0", description="Interview status")

    class Meta:
        table = "mip_interview_tbl"
        table_description = "General interview table"

    def __str__(self):
        return f"<Interview(id={self.id}, name='{self.interview_name}', user_id={self.user_id})>"


class CustomInterview(models.Model):
    """Model for the mip_giving_custom_interview_tbl table."""

    id = fields.IntField(pk=True, description="Custom interview ID")
    user_id = fields.IntField(description="User ID")
    interview_id = fields.IntField(description="Interview ID")
    restart = fields.CharField(max_length=1, description="Restart flag")
    hardware_detect = fields.CharField(
        max_length=1, null=True, default="0", description="Hardware detection"
    )
    interview_date = fields.DatetimeField(
        auto_now_add=True, description="Interview date"
    )
    is_scripted = fields.CharField(
        max_length=1, default="0", description="Is scripted interview"
    )
    bg_id = fields.IntField(null=True, description="Background ID")
    ai_feedback = fields.CharField(
        max_length=1, default="0", description="AI feedback status"
    )
    status = fields.CharField(max_length=1, default="0", description="Interview status")

    class Meta:
        table = "mip_giving_custom_interview_tbl"
        table_description = "Custom interview table"

    def __str__(self):
        return f"<CustomInterview(id={self.id}, user_id={self.user_id}, interview_id={self.interview_id})>"
