Files
python-tdd/src/apps/tooltips/models.py

39 lines
1.4 KiB
Python
Raw Normal View History

from django.db import models
class TooltipContent(models.Model):
"""
Static tooltip content for game objects planets, signs, houses, cards, etc.
Required: slug (unique lookup key), title (display name).
All other fields are optional; omitted fields render nothing in the template.
extras (JSONField) stores structured data that varies by tooltip type:
dignities dict {role: body/sign string, }
aspects list [{symbol, type, body, orb}, ]
keywords_up / keywords_rev list of strings (card upright/reversed keywords)
cautions list [{title, type_label, shoptalk, effect}, ]
nav dict {prv: slug, nxt: slug} for PRV/NXT navigation
"""
slug = models.SlugField(unique=True)
title = models.CharField(max_length=200)
# Optional display fields
type_label = models.CharField(max_length=100, blank=True)
symbol = models.CharField(max_length=10, blank=True)
degree_str = models.CharField(max_length=40, blank=True)
description = models.TextField(blank=True)
shoptalk = models.TextField(blank=True)
expiry = models.CharField(max_length=200, blank=True)
effect = models.TextField(blank=True)
# Structured data for tabular / list / nav sections
extras = models.JSONField(default=dict)
class Meta:
ordering = ['slug']
def __str__(self):
return self.title