service.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from django.db import models
  2. from dbsynce.models.resource import Resource
  3. from dbsynce.models.company import Company
  4. from dbsynce.models.service_category import ServiceCategory
  5. from tickets.models import Ticket
  6. from dbsynce.docs.database.service import Service as HelpTexts
  7. from core.settings_vars import METASERVICE_ID
  8. class Service(models.Model):
  9. """
  10. service - спецификация услуги каждого конкретного поставщика
  11. (например, в рамках сервиса многие могут предоставлять услуги перевозки,
  12. но конкретный шаблон с конкретным тарифом относится к отдельному перевозчику)
  13. """
  14. # ID METASERVICE
  15. id_metaservice = models.PositiveIntegerField(
  16. default=METASERVICE_ID,
  17. help_text=HelpTexts.id_metaservice
  18. )
  19. codename = models.CharField(
  20. max_length=30,
  21. #help_text=HelpTexts.codename
  22. )
  23. requirements = models.CharField(
  24. max_length=300,
  25. #TODO fix default value!
  26. default="DSMPU",
  27. #help_text=HelpTexts.requirements
  28. )
  29. caption = models.CharField(
  30. max_length=255,
  31. null=True,
  32. #help_text=HelpTexts.caption
  33. )
  34. description = models.TextField(
  35. blank=True,
  36. #help_text=HelpTexts.description
  37. )
  38. resource_type = models.CharField(
  39. max_length=5,
  40. null=True,
  41. #help_text=HelpTexts.resource_type
  42. )
  43. # DATA
  44. #price_type = models.ForeignKey(
  45. # ServiceCategory,
  46. # max_length=1,
  47. # help_text=HelpTexts.price_type
  48. #)
  49. price_km = models.DecimalField(
  50. max_digits=9,
  51. decimal_places=2,
  52. null=True,
  53. help_text=HelpTexts.price_km
  54. )
  55. price_min = models.DecimalField(
  56. max_digits=9,
  57. decimal_places=2,
  58. null=True,
  59. help_text=HelpTexts.price_min
  60. )
  61. price_amount = models.DecimalField(
  62. max_digits=9,
  63. decimal_places=2,
  64. null=True,
  65. help_text=HelpTexts.price_amount
  66. )
  67. company_comission = models.FloatField(
  68. help_text=HelpTexts.company_comission
  69. )
  70. requirements = models.CharField(
  71. max_length=50,
  72. help_text=HelpTexts.requirements
  73. )
  74. status = models.CharField(
  75. max_length=1,
  76. help_text=HelpTexts.status,
  77. default="1",
  78. )
  79. # OTHER
  80. is_global = models.CharField(
  81. max_length=1,
  82. default="f",
  83. help_text=HelpTexts.is_global
  84. )
  85. is_visible = models.CharField(
  86. max_length=1,
  87. default="f",
  88. help_text=HelpTexts.is_visible
  89. )
  90. # FK
  91. ticket_status = models.ForeignKey(
  92. Ticket,
  93. null=True,
  94. on_delete=models.DO_NOTHING,
  95. help_text=HelpTexts.ticket_status
  96. )
  97. #resource = models.ForeignKey(
  98. # Resource,
  99. # on_delete=models.DO_NOTHING,
  100. # blank=True,
  101. # null=True,
  102. # help_text=HelpTexts.resource
  103. #)
  104. company = models.ForeignKey(
  105. Company,
  106. on_delete=models.DO_NOTHING,
  107. blank=True,
  108. null=True,
  109. #help_text=HelpTexts.company
  110. )
  111. service_category = models.ForeignKey(
  112. ServiceCategory,
  113. on_delete=models.DO_NOTHING,
  114. help_text=HelpTexts.service_category
  115. )
  116. class Meta:
  117. db_table = "service"
  118. verbose_name = "Услуга"
  119. verbose_name_plural = "Услуги"