diff --git a/issues/models.py b/issues/models.py index 283d9d1..ca17848 100644 --- a/issues/models.py +++ b/issues/models.py @@ -53,4 +53,41 @@ class Message(models.Model): text = models.TextField() def __str__(self): - return f"{self.identifier}: {self.text[:30]}" \ No newline at end of file + return f"{self.identifier}: {self.text[:30]}" + +class Plant(models.Model): + """Справочник заводов""" + name = models.CharField(max_length=255, unique=True) + + def __str__(self): + return self.name + + +class ProductionLine(models.Model): + """Справочник производственных линий""" + name = models.CharField(max_length=255, unique=True) + plant = models.ForeignKey(Plant, on_delete=models.CASCADE, related_name="lines") + + def __str__(self): + return f"{self.plant.name} - {self.name}" + + +class ProductionZone(models.Model): + """Справочник производственных зон""" + name = models.CharField(max_length=255) + line = models.ForeignKey(ProductionLine, on_delete=models.CASCADE, related_name="zones") + + class Meta: + unique_together = ('name', 'line') # Зона уникальна в пределах линии + + def __str__(self): + return f"{self.line.name} - {self.name}" + + +class DowntimeReason(models.Model): + """Справочник причин простоев""" + name = models.CharField(max_length=255, unique=True) + description = models.TextField(blank=True) + + def __str__(self): + return self.name