Files
google-labs-jules[bot] 7a41318c35 feat(users): add Critic badge and Review system (#98)
- Implemented `Review` model in `content/models.py`.
- Added API endpoints for reviews in `content/api/`.
- Implemented "Critic" badge logic in `users/services.py` (awarded on first review).
- Seeded "Critic" badge via migration.
- Added comprehensive tests for reviews and badge awarding.
- Fixed startup crash by adding `content/api/__init__.py`.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-01-21 13:21:35 +00:00

69 lines
2.1 KiB
Python

# Generated by Django 5.1.6 on 2026-01-21 13:11
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("content", "0006_genre_anime_genres"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="Review",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"rating",
models.PositiveSmallIntegerField(
choices=[
(1, "1"),
(2, "2"),
(3, "3"),
(4, "4"),
(5, "5"),
(6, "6"),
(7, "7"),
(8, "8"),
(9, "9"),
(10, "10"),
]
),
),
("text", models.TextField()),
("created_at", models.DateTimeField(auto_now_add=True)),
(
"anime",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="reviews",
to="content.anime",
),
),
(
"user",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="reviews",
to=settings.AUTH_USER_MODEL,
),
),
],
options={
"unique_together": {("user", "anime")},
},
),
]