from django.db import models


class Subject(models.Model):
    name = models.CharField(max_length=100, verbose_name="과목명")

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = "과목"
        verbose_name_plural = "과목"


class Question(models.Model):
    DIFFICULTY_CHOICES = [
        ("easy", "쉬움"),
        ("normal", "보통"),
        ("hard", "어려움"),
    ]

    subject = models.ForeignKey(
        Subject,
        on_delete=models.CASCADE,
        related_name="questions",
        verbose_name="과목",
    )

    question = models.TextField(verbose_name="문제")

    choice1 = models.CharField(max_length=300, verbose_name="보기 1")
    choice2 = models.CharField(max_length=300, verbose_name="보기 2")
    choice3 = models.CharField(max_length=300, verbose_name="보기 3")
    choice4 = models.CharField(max_length=300, verbose_name="보기 4")

    answer = models.PositiveSmallIntegerField(
        choices=[
            (1, "보기 1"),
            (2, "보기 2"),
            (3, "보기 3"),
            (4, "보기 4"),
        ],
        verbose_name="정답",
    )

    explanation = models.TextField(
        blank=True,
        verbose_name="해설",
    )

    difficulty = models.CharField(
        max_length=10,
        choices=DIFFICULTY_CHOICES,
        default="normal",
        verbose_name="난이도",
    )

    created_at = models.DateTimeField(
        auto_now_add=True,
        verbose_name="등록일",
    )

    def __str__(self):
        return self.question[:50]

    class Meta:
        verbose_name = "문제"
        verbose_name_plural = "문제"