153 lines
6.1 KiB
Python
153 lines
6.1 KiB
Python
# Generated by Django 6.0.1 on 2026-01-15 21:57
|
|
from __future__ import annotations
|
|
|
|
import django.db.models.deletion
|
|
from django.db import migrations
|
|
from django.db import models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
"""Add ChatBadgeSet and ChatBadge models for Twitch chat badges."""
|
|
|
|
dependencies = [
|
|
("twitch", "0005_add_reward_campaign"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name="ChatBadgeSet",
|
|
fields=[
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
|
(
|
|
"set_id",
|
|
models.TextField(
|
|
help_text="Identifier for this badge set (e.g., 'vip', 'subscriber', 'bits').",
|
|
unique=True,
|
|
verbose_name="Set ID",
|
|
),
|
|
),
|
|
(
|
|
"added_at",
|
|
models.DateTimeField(
|
|
auto_now_add=True,
|
|
help_text="Timestamp when this badge set record was created.",
|
|
verbose_name="Added At",
|
|
),
|
|
),
|
|
(
|
|
"updated_at",
|
|
models.DateTimeField(
|
|
auto_now=True,
|
|
help_text="Timestamp when this badge set record was last updated.",
|
|
verbose_name="Updated At",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"ordering": ["set_id"],
|
|
"indexes": [
|
|
models.Index(fields=["set_id"], name="twitch_chat_set_id_9319f2_idx"),
|
|
models.Index(fields=["added_at"], name="twitch_chat_added_a_b0023a_idx"),
|
|
models.Index(fields=["updated_at"], name="twitch_chat_updated_90afed_idx"),
|
|
],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name="ChatBadge",
|
|
fields=[
|
|
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
|
(
|
|
"badge_id",
|
|
models.TextField(
|
|
help_text="Version identifier for this badge (e.g., '1', 'Alliance', '10000').",
|
|
verbose_name="Badge ID",
|
|
),
|
|
),
|
|
(
|
|
"image_url_1x",
|
|
models.URLField(
|
|
help_text="URL to the small version (18px x 18px) of the badge.",
|
|
max_length=500,
|
|
verbose_name="Image URL (18px)",
|
|
),
|
|
),
|
|
(
|
|
"image_url_2x",
|
|
models.URLField(
|
|
help_text="URL to the medium version (36px x 36px) of the badge.",
|
|
max_length=500,
|
|
verbose_name="Image URL (36px)",
|
|
),
|
|
),
|
|
(
|
|
"image_url_4x",
|
|
models.URLField(
|
|
help_text="URL to the large version (72px x 72px) of the badge.",
|
|
max_length=500,
|
|
verbose_name="Image URL (72px)",
|
|
),
|
|
),
|
|
("title", models.TextField(help_text="The title of the badge (e.g., 'VIP').", verbose_name="Title")),
|
|
(
|
|
"description",
|
|
models.TextField(help_text="The description of the badge.", verbose_name="Description"),
|
|
),
|
|
(
|
|
"click_action",
|
|
models.TextField(
|
|
blank=True,
|
|
help_text="The action to take when clicking on the badge (e.g., 'visit_url').",
|
|
null=True,
|
|
verbose_name="Click Action",
|
|
),
|
|
),
|
|
(
|
|
"click_url",
|
|
models.URLField(
|
|
blank=True,
|
|
help_text="The URL to navigate to when clicking on the badge.",
|
|
max_length=500,
|
|
null=True,
|
|
verbose_name="Click URL",
|
|
),
|
|
),
|
|
(
|
|
"added_at",
|
|
models.DateTimeField(
|
|
auto_now_add=True,
|
|
help_text="Timestamp when this badge record was created.",
|
|
verbose_name="Added At",
|
|
),
|
|
),
|
|
(
|
|
"updated_at",
|
|
models.DateTimeField(
|
|
auto_now=True,
|
|
help_text="Timestamp when this badge record was last updated.",
|
|
verbose_name="Updated At",
|
|
),
|
|
),
|
|
(
|
|
"badge_set",
|
|
models.ForeignKey(
|
|
help_text="The badge set this badge belongs to.",
|
|
on_delete=django.db.models.deletion.CASCADE,
|
|
related_name="badges",
|
|
to="twitch.chatbadgeset",
|
|
verbose_name="Badge Set",
|
|
),
|
|
),
|
|
],
|
|
options={
|
|
"ordering": ["badge_set", "badge_id"],
|
|
"indexes": [
|
|
models.Index(fields=["badge_set"], name="twitch_chat_badge_s_54f225_idx"),
|
|
models.Index(fields=["badge_id"], name="twitch_chat_badge_i_58a68a_idx"),
|
|
models.Index(fields=["title"], name="twitch_chat_title_0f42d2_idx"),
|
|
models.Index(fields=["added_at"], name="twitch_chat_added_a_9ba7dd_idx"),
|
|
models.Index(fields=["updated_at"], name="twitch_chat_updated_568ad1_idx"),
|
|
],
|
|
"constraints": [models.UniqueConstraint(fields=("badge_set", "badge_id"), name="unique_badge_set_id")],
|
|
},
|
|
),
|
|
]
|