浏览代码

Merge branch 'get-files-from-metasynced' of blezz-tech/sharix-open-backend into send_msg

共有 2 个文件被更改,包括 46 次插入32 次删除
  1. 29 21
      models/company.py
  2. 17 11
      models/documents.py

+ 29 - 21
models/company.py

@@ -14,34 +14,41 @@ class Company(models.Model):
     )
 
     # FIXME: Нет уверенности, что после удаления пользователя следует оставлять `models.DO_NOTHING`
-    repr_id = models.ForeignKey(
+    repr_id =models.ForeignKey(
         get_user_model(),
+        blank=True,
+        verbose_name="Представитель организации",
         on_delete=models.DO_NOTHING,
-        help_text="Уникальный идентификатор представителя компании. Это обязательно пользователь-провайдер определенного типа. То есть нельзя назначить ответственного, который не может быть ответственным."
+        help_text="Уникальный идентификатор представителя компании"
     )
-
+    
     requirements = models.CharField(
         "Ограничения",
         max_length=150,
-        help_text="Код необходимого (самый строгий) для того, чтобы ресурс мог стать активным. Оно вставляется автоматом, в соответствии с профилем метасервиса. Далее, если кому-то из партнеров или пользователей надо строже - применяется более строгий вариант на данную связь."
+        default="DS01y04y05y06y07yMPUCS13MPUB",
+        help_text="Код необходимый для того, чтобы ресурс мог стать активным"
     )
     status = models.CharField(
         "Статус",
         max_length=150,
-        help_text="Статус обработки заявки в системе заявок"
+        default="deactivated",
+        help_text="Cтатус обработки заявки"
     )
 
     # FIXME: Нет уверенности, что после удаления заявки следует оставлять `models.DO_NOTHING`
     ticket_status = models.ForeignKey(
         Ticket,
-        on_delete=models.DO_NOTHING,
-        help_text="id заявки, по которой происходит проверка статуса relationship. State меняется только в результате изменений в заявке."
+        on_delete=models.SET_NULL,
+        blank=True,
+        null=True,
+        help_text="ID заявки, привязанной к текущей записи",
+        verbose_name="Связанный тикет"
     )
 
     inn = models.CharField(
         "ИНН компании",
         max_length=12,
-        unique=True,
+        unique=True
     )
     kpp = models.CharField(
         "КПП компании",
@@ -49,7 +56,7 @@ class Company(models.Model):
     )
     ogrn = models.CharField(
         "ОГРН компании",
-        max_length=15
+        max_length=13
     )
     bank_name = models.CharField(
         "Название банка",
@@ -67,26 +74,27 @@ class Company(models.Model):
     ks = models.CharField(
         "Корреспондентский счет",
         max_length=50,
-        help_text="Корреспондентский счёт (счёт, открываемый банковской организацией в подразделении самого банка)"
+        help_text="Корреспондентский счет (счет, открываемый банковской организацией в подразделении самого банка)"
     )
     address = models.CharField(
         "Юридический адрес",
-        max_length=150,
-        help_text="Юридический адрес"
+        max_length=150
     )
-    is_global = models.BooleanField(
-        default=False,
-        help_text="Доступно ли для хранения в глобальном сервисе/нужна синхронизация данных"
+    is_global = models.CharField(
+        max_length=1,
+        default="f",
+        help_text="Доступно ли для хранения в глобальном сервисе / Нужна синхронизация данных"
     )
-    is_visible = models.BooleanField(
-        default=False,
+    is_visible = models.CharField(
+        max_length=1,
+        default="f",
         help_text="Доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
     )
-
+    
     # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
-    id_metaservice = models.BigIntegerField(
-        null=True,
-        help_text="Уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер."
+    id_metaservice = models.PositiveBigIntegerField(
+        default=1,
+        help_text="Уникальный идентификатор метасервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких метасервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер."
     )
     
     def get_admin_url(self):

+ 17 - 11
models/documents.py

@@ -34,38 +34,47 @@ class Documents(models.Model):
         ("99", "Иное"),
     ]
     DOC_TYPES_DICT = dict(DOC_TYPES)
-
+    
     # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
     id_metaservice = models.BigIntegerField(
-        null=True,
+        default=1,
         help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Если при синхронизации возникает конфликт (несовместимость) с другим сервисом, предлагается или форсировать изменения везде (если возможно), либо is_global выставляется как false."
     )
     check_date = models.DateTimeField(
+        auto_now_add=True,
         help_text="timestamp проверки"
     )
     check_level = models.IntegerField(
+        null=True,
+        blank=True,
         help_text="информация об уровне проверки. Документ может быть проверен как платформой, так и мета-сервисом, так и партнером мета-сервиса, а может быть и никем (просто загружен). Указывается, так как достоверность проверки разная. Документ, проверенный только на низком уровне, не принимается во внимание как имеющийся до прохождения более высокоуровневой проверки. Информацию об уровнях проверки можно посмотреть по словарю Requirements. В данной таблице хранится информация о наиболее высоком уровне проверки."
     )
-    expire_date = models.DateTimeField(
+    expire_date = models.DateField(
         null=True,
+        blank=True,
         help_text="срок окончания действия документа."
     )
     # FIXME: requirements должно иметь другое значение поумолчанию
     requirements = models.CharField(
-        max_length=150
+        max_length=150,
+        default="fixme"
     )
     # FIXME: status должен иметь другое значение поумолчанию
     status = models.CharField(
         max_length=150,
+        default="deactivated",
         help_text="активность на основе системы заявок"
     )
     ticket_status = models.ForeignKey(
         Ticket,
-        on_delete=models.DO_NOTHING,
+        null=True,
+        blank=True,
+        on_delete=models.SET_NULL,
         help_text="id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю."
     )
     doc_type = models.CharField(
-        max_length=150,
+        max_length=2,
+        choices=DOC_TYPES,
         help_text="тип документа (паспорт/паспорт 1 страница и т д) в соответствии с классификатором типов документов (см описание в Requirements)"
     )
     user_id = models.ForeignKey(
@@ -90,15 +99,12 @@ class Documents(models.Model):
     )
     checked_by = models.ForeignKey(
         get_user_model(),
+        null=True,
+        blank=True,
         related_name="checked_by_doc",
         on_delete=models.DO_NOTHING,
-        null=True,
         help_text="userid проверившего"
     )
-    datalink = models.TextField(
-        blank=True,
-        help_text="адрес фактического размещения на физическом носителе, если информация настолько велика, что не может храниться внутри БД."
-    )
 
     @staticmethod
     def parse_requirements(requirements: str):