from django.db import models class IssueCategory(models.Model): """Категории проблем""" name = models.CharField(max_length=255, unique=True) def __str__(self): return self.name class Zone(models.Model): """Зоны, где возникают проблемы""" name = models.CharField(max_length=255, unique=True) def __str__(self): return self.name class Issue(models.Model): """Конкретные проблемы""" category = models.ForeignKey(IssueCategory, on_delete=models.CASCADE, related_name="issues") zone = models.ForeignKey(Zone, on_delete=models.CASCADE, related_name="issues") description = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return f"{self.category.name} - {self.zone.name}: {self.description[:50]}" """GET /api/categories/ – список категорий POST /api/categories/ – создать категорию GET /api/zones/ – список зон POST /api/zones/ – создать зону GET /api/issues/ – список проблем POST /api/issues/ – добавить проблему DELETE /api/issues// – удалить проблему""" """Модели справочника номенклатура и сообщения""" class Nomenclature(models.Model): name = models.CharField(max_length=255) short_name = models.CharField(max_length=100) gtin = models.CharField(max_length=14, unique=True) groupe_water = models.CharField(max_length=255) groupe_names = models.CharField(max_length=255) def __str__(self): return self.name class Message(models.Model): identifier = models.CharField(max_length=100, unique=True) text = models.TextField() def __str__(self): 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