servicetype.py 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from django.db import models
  2. from tickets.models import Ticket
  3. class ServiceType(models.Model):
  4. """
  5. Перечень типов услуг
  6. """
  7. # ID METASERVICE
  8. id_metaservice = models.PositiveIntegerField(
  9. help_text=" уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер."
  10. )
  11. # DATA
  12. codename = models.CharField(
  13. max_length=255,
  14. help_text="латинское наименование услуги в системе"
  15. )
  16. requirements = models.CharField(
  17. max_length=300,
  18. help_text="код требований на основе вспомогательных таблиц-справочников"
  19. )
  20. status = models.CharField(
  21. max_length=150,
  22. help_text="активность на основе системы заявок"
  23. )
  24. caption = models.CharField(
  25. max_length=255,
  26. help_text="наименование услуги для отображения пользователю"
  27. )
  28. description = models.TextField(
  29. blank=True,
  30. help_text="текстовое описание услуги"
  31. )
  32. link_agreement = models.CharField(
  33. max_length=400,
  34. help_text="ссылка на договор в вики об оказании услуги данного типа (аренда, перевозка и тп)"
  35. )
  36. price_type = models.CharField(
  37. max_length=150,
  38. help_text="ценообразование - код допустимых вариантов или код параметров, принимаемых во внимание и способ их учета (по сути хорошо закодировать формулу)"
  39. )
  40. # FIXME: service_comission field not exist
  41. # OTHER
  42. is_global = models.BooleanField(
  43. default=False,
  44. help_text="доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
  45. )
  46. is_visible = models.BooleanField(
  47. default=False,
  48. help_text="доступно ли для хранения в глобальном сервисе/нужна синхронизация данных"
  49. )
  50. # FK
  51. ticket_status = models.ForeignKey(
  52. Ticket,
  53. on_delete=models.DO_NOTHING,
  54. null=True,
  55. help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю."
  56. )
  57. class Meta:
  58. db_table = "servicetype"
  59. verbose_name = "Тип услуги"
  60. verbose_name_plural = "Типы услуг"