from django.db import models


class BaseModel(models.Model):
    lang1 = models.CharField(max_length=200, verbose_name='فارسی')
    is_for_adults = models.BooleanField(verbose_name='+18 سوال')

    class Meta:
        abstract = True

    def __str__(self):
        return self.lang1

    async def get(self, *attrs):
        if len(attrs) == 1:
            return getattr(self, attrs[0], None)
        else:
            return tuple(getattr(self, attr, None) for attr in attrs)


class Dare(BaseModel):
    class Meta:
        verbose_name = 'شجاعت'
        verbose_name_plural = 'شجاعت ها'


class Truth(BaseModel):
    class Meta:
        verbose_name = 'حقیقت'
        verbose_name_plural = "حقیقت ها"


class Would_you_rather(BaseModel):
    class Meta:
        verbose_name = 'ترجیح میدی'
        verbose_name_plural = "ترجیح میدی ها"


class challenge(models.Model):
    challenge_type = (
        ('map', 'نقشه ی گنج'),
        ('prize', 'جوایز')
    )
    type = models.CharField(max_length=30, choices=challenge_type, verbose_name='نوع چالش', primary_key=True)
    image = models.ImageField(upload_to='media/', verbose_name='عکس')
    link = models.URLField(verbose_name='لینک')
    text = models.TextField(verbose_name='متن توضیحات')
    button_text = models.CharField(max_length=40, verbose_name='متن دکمه')

    def __str__(self):
        return f'{self.type} - {self.text[0:50]}'
    class Meta:
        verbose_name = 'چالش'
        verbose_name_plural = 'چالش ها'

class abjad(models.Model):
    word = models.TextField(verbose_name='صورت ی سوال')
    difficulty = (
        ('hard', 'سخت'),
        ('normal', 'متوسط'),
        ('easy', 'اسون')
    )
    image = models.ImageField(upload_to='media/', verbose_name='عکس بازی افتابه', blank=True, null=True)
    difficulty_type = models.CharField(max_length=13, choices=difficulty, verbose_name='سختی')
    answer = models.CharField(max_length=30, verbose_name='جواب')
    option2 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
    option3 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
    option4 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
    def __str__(self):
        return f'{self.word}'
    class Meta:
        verbose_name = 'سوال ابجد'
        verbose_name_plural = 'سوالات ابجد'
    async def get(self, *attrs):
        if len(attrs) == 1:
            return getattr(self, attrs[0], None)
        else:
            return tuple(getattr(self, attr, None) for attr in attrs)

GAME_DATA = {
    Dare: {
        'button': 'dare',
        'game_name': 'شجاعت'
    },
    Truth: {
        'button': 'truth',
        'game_name': 'حقیقت'
    },
    Would_you_rather: {
        'button': 'wyr',
        'game_name': 'ترجیح میدی'
    }
}



from django.db import models


class MusicCategory(models.Model):
    name = models.CharField(max_length=40, verbose_name='نام دسته بندی')
    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'دسته بندی موزیک'
        verbose_name_plural = 'دسته بندی موزیک ها'

class MovieCategory(models.Model):
    name = models.CharField(max_length=40, verbose_name='نام دسته بندی')
    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'دسته بندی قیلم'
        verbose_name_plural = 'دسته بندی فیلم ها'


class UploadParent(models.Model):
    name = models.CharField(max_length=300, verbose_name='نام')
    message_id = models.CharField(max_length=40, verbose_name='ای دی پیام تلگرام')
    def __str__(self):
        return self.name 

class MusicModel(UploadParent):
    lyric = models.CharField(verbose_name='متن اهنگ', max_length=4000, blank=True, null=True)
    singer = models.CharField(max_length=300, verbose_name='خواننده', blank=True, null=True)
    category = models.ForeignKey(MusicCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True)
    trand = models.BooleanField(default=False, verbose_name='ترند')
    class Meta:
        verbose_name = 'مدل اهنگ'
        verbose_name_plural = 'مدل اهنگ ها'


class MovieModel(UploadParent):
    description = models.CharField(max_length=4000,verbose_name='توضیحات فیلم', blank=True, null=True)
    category = models.ForeignKey(MovieCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True)
    receommended = models.BooleanField(default=False, verbose_name='پیشنهادی')
    class Meta:
        verbose_name = 'مدل فیلم'
        verbose_name_plural = 'مدل فیلم ها'
    
