client.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from tickets.models import Ticket
  4. from dbsynce.docs.database.client import Client as HelpTexts
  5. from dbsynce.docs.verbose_names.client import Client as VerboseName
  6. from core.settings_vars import METASERVICE_ID
  7. from dbsynce.lib import dicts
  8. import core.settings_vars as sv
  9. class Client(models.Model):
  10. """
  11. Client - это таблица с клиентами. Клиент/пользователь/аккаунт
  12. в системе, который по логике получает услугу.
  13. """
  14. # ID METASERVICE
  15. id_metaservice = models.PositiveIntegerField(
  16. default=METASERVICE_ID,
  17. verbose_name = VerboseName.id_metaservice,
  18. help_text=HelpTexts.id_metaservice,
  19. )
  20. # DATA
  21. requirements = models.CharField(
  22. max_length=50,
  23. #TODO ADD CORRECT DEFAULT!
  24. default=sv.MIN_CLIENT_REQUIREMENTS,
  25. verbose_name = VerboseName.requirements,
  26. help_text=HelpTexts.requirements,
  27. )
  28. status = models.CharField(
  29. max_length=1,
  30. default="1",
  31. choices = list(dicts.activity_status_by_code.items()),
  32. verbose_name = VerboseName.status,
  33. help_text=HelpTexts.status,
  34. )
  35. # OTHER
  36. is_global = models.CharField(
  37. max_length=1,
  38. default="f",
  39. choices = list(dicts.is_global_by_code.items()),
  40. verbose_name = VerboseName.is_global,
  41. help_text=HelpTexts.is_global,
  42. )
  43. is_visible = models.CharField(
  44. max_length=1,
  45. default="f",
  46. choices = list(dicts.is_visible_by_code.items()),
  47. verbose_name = VerboseName.is_visible,
  48. help_text=HelpTexts.is_visible,
  49. )
  50. # FK
  51. ticket_status = models.ForeignKey(
  52. Ticket,
  53. on_delete=models.DO_NOTHING,
  54. verbose_name = VerboseName.ticket_status,
  55. help_text=HelpTexts.ticket_status,
  56. )
  57. user = models.ForeignKey(
  58. get_user_model(),
  59. on_delete=models.DO_NOTHING,
  60. verbose_name = VerboseName.user,
  61. help_text=HelpTexts.user,
  62. )
  63. def deactivate(self):
  64. self.status = "1"
  65. self.save()
  66. def activate(self):
  67. self.status = "0"
  68. self.save()
  69. class Meta:
  70. db_table = "client"
  71. verbose_name = "Клиента"
  72. verbose_name_plural = "Клиенты"