from django.db import models class Partner(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255) external_id = models.CharField() def __str__(self): return f"Partner {self.id}" class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=255) telegram_id = models.CharField(max_length=50) def str(self): return f"Author {self.id} - {self.name}" class InventoryItem(models.Model): id = models.AutoField(primary_key=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) name = models.CharField(max_length=255) author = models.ForeignKey(Author, on_delete=models.CASCADE, null=True) partner = models.ForeignKey( Partner, related_name="Inventory", on_delete=models.CASCADE ) class Element(models.Model): id = models.AutoField(primary_key=True) external_id = models.CharField() element_id = models.CharField(max_length=100) photo = models.ImageField(upload_to=".", null=True) additional_text = models.TextField(null=True, blank=True, default="") created_at = models.DateTimeField(auto_now_add=True) inventory = models.ForeignKey( InventoryItem, related_name="Element", on_delete=models.CASCADE ) def __str__(self): return f"Element {self.id} (Inventory {self.inventory.id})"