service_category.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from django.db import models
  2. from tickets.models import Ticket
  3. from dbsynce.docs.database.service_category import ServiceCategory as HelpTexts
  4. from dbsynce.docs.verbose_names.service_category import ServiceCategory as VerboseName
  5. from core.settings_vars import METASERVICE_ID
  6. from dbsynce.lib import dicts
  7. class ServiceCategory(models.Model):
  8. """
  9. Перечень типов услуг
  10. """
  11. # ID METASERVICE
  12. id_metaservice = models.PositiveIntegerField(
  13. default=METASERVICE_ID,
  14. verbose_name = VerboseName.id_metaservice,
  15. help_text=HelpTexts.id_metaservice,
  16. )
  17. # DATA
  18. codename = models.CharField(
  19. max_length=30,
  20. verbose_name = VerboseName.codename,
  21. help_text=HelpTexts.codename,
  22. )
  23. requirements = models.CharField(
  24. max_length=50,
  25. #TODO fix default value!
  26. default="DSMPU",
  27. verbose_name = VerboseName.requirements,
  28. help_text=HelpTexts.requirements,
  29. )
  30. status = models.CharField(
  31. max_length=1,
  32. default="1",
  33. choices = list(dicts.activity_status_by_code.items()),
  34. #choices = list(dicts.activity_status.items()),
  35. verbose_name = VerboseName.status,
  36. help_text=HelpTexts.status,
  37. )
  38. caption = models.CharField(
  39. max_length=255,
  40. verbose_name = VerboseName.caption,
  41. help_text=HelpTexts.caption,
  42. )
  43. description = models.TextField(
  44. blank=True,
  45. verbose_name = VerboseName.description,
  46. help_text=HelpTexts.description,
  47. )
  48. link_agreement = models.CharField(
  49. max_length=400,
  50. verbose_name = VerboseName.link_agreement,
  51. help_text=HelpTexts.link_agreement,
  52. )
  53. price_type = models.CharField(
  54. max_length=1,
  55. choices = list(dicts.price_type_by_code.items()),
  56. verbose_name = VerboseName.price_type,
  57. help_text=HelpTexts.price_type,
  58. )
  59. metaservice_comission = models.FloatField(
  60. verbose_name = VerboseName.metaservice_comission,
  61. help_text=HelpTexts.metaservice_comission,
  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. ticket_status = models.ForeignKey(
  80. Ticket,
  81. on_delete=models.DO_NOTHING,
  82. null=True,
  83. verbose_name = VerboseName.ticket_status,
  84. help_text=HelpTexts.ticket_status,
  85. )
  86. class Meta:
  87. db_table = "service_category"
  88. verbose_name = "Тип услуги"
  89. verbose_name_plural = "Типы услуг"