feat: rebuild math life around marks and directed endings
This commit is contained in:
@@ -127,6 +127,42 @@ class StoryChoice(models.Model):
|
||||
ordering = ["sequence"]
|
||||
|
||||
|
||||
class StoryMark(models.Model):
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="story_marks",
|
||||
)
|
||||
story = models.ForeignKey(
|
||||
Story,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="collected_marks",
|
||||
)
|
||||
source_run = models.ForeignKey(
|
||||
StoryRun,
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name="acquired_marks",
|
||||
)
|
||||
code = models.CharField(max_length=60)
|
||||
name = models.CharField(max_length=80)
|
||||
domain = models.CharField(max_length=40)
|
||||
acquired_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(
|
||||
fields=("user", "story", "code"),
|
||||
name="unique_user_story_mark",
|
||||
)
|
||||
]
|
||||
ordering = ["acquired_at"]
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.user} · {self.name}"
|
||||
|
||||
|
||||
class UserRelationship(models.Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
||||
character = models.ForeignKey(Character, on_delete=models.CASCADE)
|
||||
|
||||
Reference in New Issue
Block a user