from django.db import models
from django.utils import timezone

class Level(models.Model):
    title = models.CharField(max_length=200, verbose_name="Մակարդակ")
    description = models.TextField(blank=True, verbose_name="Նկարագրություն")
    order = models.IntegerField(default=0, verbose_name="Հերթականություն")

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = "Մակարդակ"
        verbose_name_plural = "Մակարդակներ"
        ordering = ['order']

class Question(models.Model):
    level = models.ForeignKey(Level, on_delete=models.CASCADE, related_name="questions", verbose_name="Մակարդակ")
    text = models.TextField(verbose_name="Հարց")
    points = models.IntegerField(default=10, verbose_name="Միավորներ")
    time_limit = models.IntegerField(default=30, verbose_name="Ժամանակ (վայրկյան)")

    def __str__(self):
        return self.text[:50]

    class Meta:
        verbose_name = "Հարց"
        verbose_name_plural = "Հարցեր"

class Option(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name="options", verbose_name="Հարց")
    text = models.CharField(max_length=500, verbose_name="Տարբերակ")
    is_correct = models.BooleanField(default=False, verbose_name="Ճիշտ է")

    def __str__(self):
        return self.text

    class Meta:
        verbose_name = "Տարբերակ"
        verbose_name_plural = "Տարբերակներ"

class Score(models.Model):
    player_name = models.CharField(max_length=100, verbose_name="Խաղացող")
    score = models.IntegerField(verbose_name="Միավոր")
    level = models.ForeignKey(Level, on_delete=models.CASCADE, verbose_name="Մակարդակ")
    date_played = models.DateTimeField(default=timezone.now, verbose_name="Ամսաթիվ")

    def __str__(self):
        return f"{self.player_name} - {self.score}"

    class Meta:
        verbose_name = "Արդյունք"
        verbose_name_plural = "Արդյունքներ"
        ordering = ['-score', '-date_played']