service.py 5.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from .template import Template
  2. class Service():
  3. description = (
  4. "service - спецификация услуги каждого конкретного поставщика "
  5. "(например, в рамках сервиса многие могут предоставлять услуги перевозки, "
  6. "но конкретный шаблон с конкретным тарифом относится к отдельному перевозчику)"
  7. )
  8. # ID METASERVICE
  9. id_metaservice = Template.id_metaservice
  10. # DATA
  11. price_alg = models.CharField(
  12. max_length=100,
  13. help_text="шаблон алгоритма расчета цены для оказываемой услуги (по этой переменной определяется, какую функцию для расчета цены вызывать)"
  14. )
  15. price_km = models.DecimalField(
  16. max_digits=9,
  17. decimal_places=2,
  18. help_text="значение параметра стоимости 1км данного поставщика для данного шаблона услуги"
  19. )
  20. price_min = models.DecimalField(
  21. max_digits=9,
  22. decimal_places=2,
  23. help_text="значение параметра стоимости 1мин данного поставщика для данного шаблона услуги"
  24. )
  25. price_amount = models.DecimalField(
  26. max_digits=9,
  27. decimal_places=2,
  28. help_text="значение параметра стоимости 1 услуги данного поставщика для данного шаблона услуги"
  29. )
  30. company_comission = models.FloatField(
  31. help_text="Коммисия сервиса"
  32. )
  33. requirements = models.CharField(
  34. max_length=150,
  35. help_text="код необходимого (самый строгий) для того, чтобы ресурс мог стать активным. Оно вставляется автоматом, в соответствии с профилем метасервиса. Далее, если кому-то из партнеров или пользователей надо строже - применяется более строгий вариант на данную связь."
  36. )
  37. service_status = models.CharField(
  38. max_length=150,
  39. help_text="статус спецификации типа услуги, принимает значения Online, Offline, Preorder with Gap. Online/offline выставляются по проверке параметров и желанию пользователя (например, если пользователь переключает себя online, но по какой-то причине ему такую услугу оказывать запрещено - оно не переключится, то есть надо перед сменой значения этого поля всегда запускать проверку)"
  40. )
  41. status = models.CharField(
  42. max_length=150,
  43. help_text="статус обработки заявки в системе заявок. активность на основе системы заяво"
  44. )
  45. # OTHER
  46. is_global = Template.is_global
  47. is_visible = Template.is_visible
  48. # FK
  49. ticket_status = models.ForeignKey(
  50. Ticket,
  51. on_delete=models.DO_NOTHING,
  52. help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю."
  53. )
  54. resource_id = models.ForeignKey(
  55. Resource,
  56. on_delete=models.DO_NOTHING,
  57. blank=True,
  58. null=True,
  59. help_text="ответственный за ресурс(не всегда). так как ресурсы сами услугу оказать не могут, а также один ресурс может быть представлен в виде разных услуг, то фактически с точки зрения смысла системы ресурс - это как неодушевленный пользователь. Без провайдера, который с его помощью оказывает услугу - никуда. Поле остается пустым, если сервис не предусматривает использование услуг. Стоит обратить внимание, что это не обязательно ответственный за ресурс. Например, за состояние автомобиля может быть ответственен пользователь (он и указывается в таблице со свойствами ресурса), а услугу доступа или перевозки может оказывать иное лицо."
  60. )
  61. servicetype_id = models.ForeignKey(
  62. ServiceType,
  63. on_delete=models.DO_NOTHING,
  64. help_text="тип оказываемой услуги по классификатору услуг сервиса"
  65. )