56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
|
|
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/<id>/ – удалить проблему"""
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
"""Модели справочника номенклатура и сообщения"""
|
|||
|
|
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]}"
|