spr migrated books, and tester
This commit is contained in:
191
cfg/amar/models/django/models.py
Normal file
191
cfg/amar/models/django/models.py
Normal file
@@ -0,0 +1,191 @@
|
||||
"""
|
||||
Django models - Generated from schema.json
|
||||
|
||||
DO NOT EDIT MANUALLY - Regenerate from schema.json
|
||||
"""
|
||||
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Status(models.TextChoices):
|
||||
PENDING = "pending", "Pending"
|
||||
PLANNED = "planned", "Planned"
|
||||
BUILDING = "building", "Building"
|
||||
DEV = "dev", "Dev"
|
||||
LIVE = "live", "Live"
|
||||
READY = "ready", "Ready"
|
||||
|
||||
|
||||
class System(models.TextChoices):
|
||||
ARTERY = "artery", "Artery"
|
||||
ALBUM = "album", "Album"
|
||||
WARD = "ward", "Ward"
|
||||
|
||||
|
||||
# === Shared Components ===
|
||||
|
||||
class Nest(models.Model):
|
||||
"""Runtime environment configuration. Shared across artery, ward."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="nests")
|
||||
config_path = models.CharField(max_length=255, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_nest"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Larder(models.Model):
|
||||
"""Data storage. When generated from Template = 'Book (written)'. Independent in ward/artery."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="larders")
|
||||
source_template = models.CharField(max_length=255, blank=True, null=True, help_text="Template name if generated")
|
||||
data_path = models.CharField(max_length=255, blank=True, null=True, help_text="Path to data files")
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_larder"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
# === System-Specific Components ===
|
||||
|
||||
class Vein(models.Model):
|
||||
"""Connector (artery). Single responsibility."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="veins")
|
||||
system = models.CharField(max_length=20, default="artery", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_vein"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Template(models.Model):
|
||||
"""Documentation template (album). Gherkin, BDD patterns."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="templates")
|
||||
template_path = models.CharField(max_length=255, blank=True, null=True, help_text="Path to template files")
|
||||
system = models.CharField(max_length=20, default="album", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_template"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Tool(models.Model):
|
||||
"""Execution tool (ward). Test runners, seeders."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="tools")
|
||||
system = models.CharField(max_length=20, default="ward", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_tool"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Monitor(models.Model):
|
||||
"""Service monitor (ward). Health checks, status watchers."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="monitors")
|
||||
system = models.CharField(max_length=20, default="ward", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_monitor"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Cabinet(models.Model):
|
||||
"""Tool cabinet (ward). Contains 0+ tools."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="cabinets")
|
||||
tools = models.ManyToManyField(Tool, blank=True)
|
||||
system = models.CharField(max_length=20, default="ward", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_cabinet"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
# === Composed Types ===
|
||||
|
||||
class Pulse(models.Model):
|
||||
"""Composed data flow (artery). Pulse = Vein + Nest + Larder."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="pulses")
|
||||
vein = models.ForeignKey(Vein, on_delete=models.SET_NULL, blank=True, null=True, related_name="pulses")
|
||||
nest = models.ForeignKey(Nest, on_delete=models.SET_NULL, blank=True, null=True, related_name="pulses")
|
||||
larder = models.ForeignKey(Larder, on_delete=models.SET_NULL, blank=True, null=True, related_name="pulses")
|
||||
system = models.CharField(max_length=20, default="artery", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_pulse"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Book(models.Model):
|
||||
"""Composed documentation (album). Book = Template + Larder."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="books")
|
||||
template = models.ForeignKey(Template, on_delete=models.SET_NULL, blank=True, null=True, related_name="books")
|
||||
larder = models.ForeignKey(Larder, on_delete=models.SET_NULL, blank=True, null=True, related_name="books")
|
||||
output_larder = models.ForeignKey(Larder, on_delete=models.SET_NULL, blank=True, null=True, related_name="books")
|
||||
system = models.CharField(max_length=20, default="album", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_book"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
|
||||
class Table(models.Model):
|
||||
"""Composed execution bundle (ward). Table = Cabinet + Nest + Larders."""
|
||||
name = models.CharField(max_length=255, help_text="Unique identifier")
|
||||
slug = models.SlugField(max_length=255, unique=True, help_text="URL-friendly identifier")
|
||||
title = models.CharField(max_length=255, help_text="Display title for UI")
|
||||
status = models.ForeignKey(Status, on_delete=models.SET_NULL, blank=True, null=True, related_name="tables")
|
||||
cabinet = models.ForeignKey(Cabinet, on_delete=models.SET_NULL, blank=True, null=True, related_name="tables")
|
||||
nest = models.ForeignKey(Nest, on_delete=models.SET_NULL, blank=True, null=True, related_name="tables")
|
||||
larders = models.ManyToManyField(Larder, blank=True)
|
||||
system = models.CharField(max_length=20, default="ward", editable=False)
|
||||
|
||||
class Meta:
|
||||
db_table = "pawprint_table"
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
Reference in New Issue
Block a user