Archive Twitch chat badges
This commit is contained in:
parent
443bd88cb8
commit
6842581656
14 changed files with 1394 additions and 1 deletions
153
twitch/migrations/0006_add_chat_badges.py
Normal file
153
twitch/migrations/0006_add_chat_badges.py
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
# 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")],
|
||||
},
|
||||
),
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue