provider.py 4.0 KB

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