servicetype.py 3.7 KB

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