diff --git a/services/backend/apps/achievement/migrations/0002_achievement_need_count_achievement_type.py b/services/backend/apps/achievement/migrations/0002_achievement_need_count_achievement_type.py new file mode 100644 index 0000000..e16f3b6 --- /dev/null +++ b/services/backend/apps/achievement/migrations/0002_achievement_need_count_achievement_type.py @@ -0,0 +1,23 @@ +# Generated by Django 5.1.6 on 2025-03-02 12:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('achievement', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='achievement', + name='need_count', + field=models.IntegerField(default=5, help_text='Здесь нужно указать количество действий, необходимое для получения ачивок. Например, если вы указали в предыдущем пункте "Выполненные задания" а тут 5, то ачивка будет выдаваться за 5 решенных заданий', verbose_name='кол-во того, что нужно для получения ачивки'), + ), + migrations.AddField( + model_name='achievement', + name='type', + field=models.CharField(choices=[('correct_tasks', 'Выполненные задания')], default='correct_tasks', help_text='За какой тип достижений будет выдаваться ачивка', max_length=20, verbose_name='тип'), + ), + ] diff --git a/services/backend/apps/achievement/models.py b/services/backend/apps/achievement/models.py index 1e0460a..7bb796d 100644 --- a/services/backend/apps/achievement/models.py +++ b/services/backend/apps/achievement/models.py @@ -3,6 +3,9 @@ from django.db import models from apps.core.models import BaseModel class Achievement(BaseModel): + class AchievementType(models.TextChoices): + CORRECT_TASKS = "correct_tasks", "Выполненные задания" + def image_url_upload_to(instance, filename): return f"/achievements/{instance.id}/icon" @@ -14,6 +17,19 @@ class Achievement(BaseModel): upload_to=image_url_upload_to, ) + type = models.CharField( + max_length=20, + choices=AchievementType.choices, + verbose_name="тип", + help_text="За какой тип достижений будет выдаваться ачивка", + default=AchievementType.CORRECT_TASKS, + ) + need_count = models.IntegerField( + verbose_name="кол-во того, что нужно для получения ачивки", + help_text="Здесь нужно указать количество действий, необходимое для получения ачивок. Например, если вы указали в предыдущем пункте \"Выполненные задания\" а тут 5, то ачивка будет выдаваться за 5 решенных заданий", + default=5 + ) + def __str__(self): return self.name