feat: import additional exchange sections
All checks were successful
CI/CD Pipeline / Code Quality Checks (push) Successful in 2m41s
CI/CD Pipeline / Run Tests (push) Successful in 2m47s
CI/CD Pipeline / Build Docker Images (push) Successful in 2m24s
CI/CD Pipeline / Push to Gitea Registry (push) Successful in 0s
CI/CD Pipeline / Deploy to Server (push) Successful in 0s

This commit is contained in:
2026-05-12 15:19:26 +02:00
parent ed34603116
commit bd8e1a8400
25 changed files with 1117 additions and 72 deletions

View File

@@ -112,7 +112,69 @@ class ArbitrationCase(UUIDPrimaryKeyMixin, TimestampMixin, models.Model):
return f"{self.case_number} ({self.organization_id})"
class InformationSecurityRegistryEntry(UUIDPrimaryKeyMixin, TimestampMixin, models.Model):
class BankruptcyProcedure(UUIDPrimaryKeyMixin, TimestampMixin, models.Model):
organization = models.ForeignKey(
Organization,
on_delete=models.CASCADE,
related_name="bankruptcy_procedures",
verbose_name=_("организация"),
)
external_id = models.CharField(_("внешний ID"), max_length=255, db_index=True)
message_type = models.CharField(_("тип сообщения"), max_length=255, db_index=True)
message_date = models.DateField(
_("дата сообщения"), null=True, blank=True, db_index=True
)
case_number = models.CharField(
_("номер дела"), max_length=128, blank=True, default="", db_index=True
)
status = models.CharField(
_("статус"), max_length=64, blank=True, default="", db_index=True
)
source_url = models.TextField(_("ссылка на источник"), blank=True, default="")
class Meta:
ordering = ["-message_date", "case_number", "message_type"]
def __str__(self) -> str:
return f"{self.message_type} ({self.organization_id})"
class DefenseUnreliableSupplier(UUIDPrimaryKeyMixin, TimestampMixin, models.Model):
organization = models.ForeignKey(
Organization,
on_delete=models.CASCADE,
related_name="defense_unreliable_suppliers",
verbose_name=_("организация"),
)
external_id = models.CharField(_("внешний ID"), max_length=255, db_index=True)
registry_source = models.CharField(
_("источник реестра"), max_length=50, db_index=True
)
registry_number = models.CharField(
_("номер записи"), max_length=128, blank=True, default="", db_index=True
)
supplier_name = models.CharField(
_("наименование поставщика"), max_length=500, blank=True, default=""
)
reason = models.TextField(_("основание"), blank=True, default="")
included_at = models.DateField(
_("дата включения"), null=True, blank=True, db_index=True
)
status = models.CharField(
_("статус"), max_length=64, blank=True, default="", db_index=True
)
source_url = models.TextField(_("ссылка на источник"), blank=True, default="")
class Meta:
ordering = ["-included_at", "registry_source", "registry_number"]
def __str__(self) -> str:
return f"{self.registry_source}:{self.registry_number} ({self.organization_id})"
class InformationSecurityRegistryEntry(
UUIDPrimaryKeyMixin, TimestampMixin, models.Model
):
class PresenceStatus(models.TextChoices):
PRESENT = "present", _("В реестре")
ABSENT = "absent", _("Не в реестре")
@@ -123,6 +185,9 @@ class InformationSecurityRegistryEntry(UUIDPrimaryKeyMixin, TimestampMixin, mode
related_name="information_security_registry_entries",
verbose_name=_("организация"),
)
external_id = models.CharField(
_("внешний ID"), max_length=255, blank=True, default="", db_index=True
)
registry_name = models.CharField(
_("название реестра"), max_length=255, db_index=True
)
@@ -148,3 +213,37 @@ class InformationSecurityRegistryEntry(UUIDPrimaryKeyMixin, TimestampMixin, mode
def __str__(self) -> str:
return f"{self.registry_name} ({self.organization_id})"
class LaborVacancy(UUIDPrimaryKeyMixin, TimestampMixin, models.Model):
organization = models.ForeignKey(
Organization,
on_delete=models.CASCADE,
related_name="labor_vacancies",
verbose_name=_("организация"),
)
external_id = models.CharField(_("внешний ID"), max_length=255, db_index=True)
vacancy_source = models.CharField(
_("источник вакансии"), max_length=50, db_index=True
)
title = models.CharField(_("название вакансии"), max_length=500, db_index=True)
status = models.CharField(
_("статус"), max_length=64, blank=True, default="", db_index=True
)
published_at = models.DateField(
_("дата публикации"), null=True, blank=True, db_index=True
)
salary_amount = models.DecimalField(
_("зарплата"),
max_digits=20,
decimal_places=2,
null=True,
blank=True,
)
source_url = models.TextField(_("ссылка на источник"), blank=True, default="")
class Meta:
ordering = ["-published_at", "title"]
def __str__(self) -> str:
return f"{self.title} ({self.organization_id})"