mirror of
https://github.com/barkeser2002/offline-db.git
synced 2026-09-25 02:19:59 +03:00
- Added `Badge` and `UserBadge` models in `users` app. - Implemented `check_badges` service to award badges based on activity (Binge Watcher, Supporter, Veteran). - Added `post_save` signal on `WatchLog` to trigger badge checking automatically. - Added data migration to seed initial badges. - Added tests for badge logic. - Current Focus Mode: C (The Architect) Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
# Generated by Django 6.0.1 on 2026-01-19 15:04
|
|
|
|
import django.db.models.deletion
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
("users", "0001_initial"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="Badge",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.BigAutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
(
|
|
"slug",
|
|
models.SlugField(
|
|
help_text="Unique identifier for the badge logic", unique=True
|
|
),
|
|
),
|
|
("name", models.CharField(max_length=100)),
|
|
("description", models.TextField()),
|
|
("icon_url", models.URLField(blank=True, null=True)),
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name="UserBadge",
|
|
fields=[
|
|
(
|
|
"id",
|
|
models.BigAutoField(
|
|
auto_created=True,
|
|
primary_key=True,
|
|
serialize=False,
|
|
verbose_name="ID",
|
|
),
|
|
),
|
|
("awarded_at", models.DateTimeField(auto_now_add=True)),
|
|
(
|
|
"badge",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE, to="users.badge"
|
|
),
|
|
),
|
|
(
|
|
"user",
|
|
models.ForeignKey(
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="badges",
|
|
to=settings.AUTH_USER_MODEL,
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"verbose_name": "User Badge",
|
|
"verbose_name_plural": "User Badges",
|
|
"unique_together": {("user", "badge")},
|
|
},
|
|
),
|
|
]
|