provider.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from dbsynce.models.service import Service
  4. from dbsynce.models.resource import Resource
  5. from tickets.models import Ticket
  6. from dbsynce.docs.database.provider import Provider as HelpTexts
  7. from core.settings_vars import METASERVICE_ID
  8. from dbsynce.lib import dicts
  9. class Provider(models.Model):
  10. """
  11. Provider – единица описания поставщика услуг/ответственного лица за определенный ресурс (например, машину).
  12. По сути - это надстройка к клиентскому аккаунту, иллюстрирующая, что данный пользователь может выступать не только в роли потребителя.
  13. То есть, по тому, какие “провайдеры” находятся по идентификатору пользователя - можно установить конкретный список услуг данного пользователя.
  14. """
  15. # ID METASERVICE
  16. id_metaservice = models.PositiveIntegerField(
  17. default=METASERVICE_ID,
  18. help_text=HelpTexts.id_metaservice
  19. )
  20. # DATA
  21. gap = models.IntegerField(
  22. help_text=HelpTexts.gap
  23. )
  24. # gap = models.DateTimeField(
  25. # max_length=10,
  26. # help_text=HelpTexts.gap
  27. # )
  28. requirements = models.CharField(
  29. max_length=50,
  30. #TODO ADD CORRECT DEFAULT!
  31. default="DSMPUB",
  32. help_text=HelpTexts.requirements
  33. )
  34. status = models.CharField(
  35. max_length=1,
  36. default="1",
  37. choices = list(dicts.activity_status_by_code.items()),
  38. help_text=HelpTexts.status
  39. )
  40. service_status = models.CharField(
  41. max_length=1,
  42. default="2",
  43. choices = list(dicts.service_status_by_code.items()),
  44. help_text=HelpTexts.service_status
  45. )
  46. location_type = models.CharField(
  47. max_length=1,
  48. choices = list(dicts.location_type_by_code.items()),
  49. help_text=HelpTexts.location_type
  50. )
  51. default_location = models.CharField(
  52. max_length=30,
  53. help_text=HelpTexts.default_location
  54. )
  55. # OTHER
  56. is_global = models.CharField(
  57. max_length=1,
  58. default="f",
  59. choices = list(dicts.is_global_by_code.items()),
  60. help_text=HelpTexts.is_global
  61. )
  62. is_visible = models.CharField(
  63. max_length=1,
  64. default="f",
  65. choices = list(dicts.is_visible_by_code.items()),
  66. help_text=HelpTexts.is_visible
  67. )
  68. # FK
  69. user = models.ForeignKey(
  70. get_user_model(),
  71. on_delete=models.DO_NOTHING,
  72. null=True,
  73. help_text=HelpTexts.user
  74. )
  75. ticket_status = models.ForeignKey(
  76. Ticket,
  77. on_delete=models.DO_NOTHING,
  78. null=True,
  79. help_text=HelpTexts.ticket_status
  80. )
  81. service = models.ForeignKey(
  82. Service,
  83. on_delete=models.DO_NOTHING,
  84. null=True,
  85. help_text=HelpTexts.service
  86. )
  87. resource = models.ForeignKey(
  88. Resource,
  89. on_delete=models.DO_NOTHING,
  90. blank=True,
  91. null=True,
  92. #help_text=HelpTexts.resource
  93. )
  94. class Meta:
  95. db_table = "provider"
  96. verbose_name = "Поставщик"
  97. verbose_name_plural = "Поставщики"