pkmntrade.club/cards/models.py

51 lines
No EOL
1.8 KiB
Python

from django.db import models
from django.db.models import Prefetch
from django.apps import apps
class DeckNameTranslation(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=64)
deck = models.ForeignKey("Deck", on_delete=models.PROTECT, related_name='name_translations')
language = models.CharField(max_length=64)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class CardNameTranslation(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=64)
card = models.ForeignKey("Card", on_delete=models.PROTECT, related_name='name_translations')
language = models.CharField(max_length=64)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Deck(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=64)
hex_color = models.CharField(max_length=9)
cardset = models.CharField(max_length=8)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Card(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=128)
decks = models.ManyToManyField("Deck")
cardset = models.CharField(max_length=8)
cardnum = models.IntegerField()
style = models.CharField(max_length=255, null=False)
rarity_icon = models.CharField(max_length=8)
rarity_level = models.IntegerField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
# For display, we show the original rarity icons.
return f"{self.name} {self.rarity_icon} {self.cardset}"