provider.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from dbsynce.models.company import Company
  4. from dbsynce.models.service import Service
  5. from tickets.models import Ticket
  6. from dbsynce.docs.database.provider import Provider as HelpTexts
  7. class Provider(models.Model):
  8. """
  9. Provider – единица описания поставщика услуг/ответственного лица за определенный ресурс (например, машину).
  10. По сути - это надстройка к клиентскому аккаунту, иллюстрирующая, что данный пользователь может выступать не только в роли потребителя.
  11. То есть, по тому, какие “провайдеры” находятся по идентификатору пользователя - можно установить конкретный список услуг данного пользователя.
  12. """
  13. # ID METASERVICE
  14. id_metaservice = models.PositiveIntegerField(
  15. null=True,
  16. help_text=HelpTexts.id_metaservice
  17. )
  18. # DATA
  19. type = models.CharField(
  20. max_length=150,
  21. help_text=HelpTexts.type
  22. )
  23. requirements = models.CharField(
  24. max_length=300,
  25. help_text=HelpTexts.requirements
  26. )
  27. status = models.CharField(
  28. max_length=150,
  29. help_text=HelpTexts.status
  30. )
  31. location_type = models.CharField(
  32. max_length=300,
  33. help_text=HelpTexts.location_type
  34. )
  35. default_location = models.CharField(
  36. max_length=300,
  37. help_text=HelpTexts.default_location
  38. )
  39. # OTHER
  40. is_global = models.CharField(
  41. max_length=1,
  42. default="f",
  43. help_text=HelpTexts.is_global
  44. )
  45. is_visible = models.CharField(
  46. max_length=1,
  47. default="f",
  48. help_text=HelpTexts.is_visible
  49. )
  50. # FK
  51. user = models.ForeignKey(
  52. get_user_model(),
  53. on_delete=models.DO_NOTHING,
  54. null=True,
  55. help_text=HelpTexts.user
  56. )
  57. company = models.ForeignKey(
  58. Company,
  59. on_delete=models.DO_NOTHING,
  60. null=True,
  61. help_text=HelpTexts.company
  62. )
  63. ticket_status = models.ForeignKey(
  64. Ticket,
  65. on_delete=models.DO_NOTHING,
  66. null=True,
  67. help_text=HelpTexts.ticket_status
  68. )
  69. service = models.ForeignKey(
  70. Service,
  71. on_delete=models.DO_NOTHING,
  72. null=True,
  73. help_text=HelpTexts.service
  74. )
  75. class Meta:
  76. db_table = "provider"
  77. verbose_name = "Поставщик"
  78. verbose_name_plural = "Поставщики"