feat: import mostovik exchange sections
All checks were successful
CI/CD Pipeline / Run Tests (push) Successful in 6m12s
CI/CD Pipeline / Code Quality Checks (push) Successful in 6m19s
CI/CD Pipeline / Build Docker Images (push) Successful in 2m21s
CI/CD Pipeline / Push to Gitea Registry (push) Successful in 1s
CI/CD Pipeline / Deploy to Server (push) Successful in 1s

This commit is contained in:
2026-05-27 23:13:40 +02:00
parent bd8e1a8400
commit d1b0cd7945
49 changed files with 1831 additions and 319 deletions

View File

@@ -5,9 +5,13 @@ from apps.external_data.models import (
ArbitrationCase,
BankruptcyProcedure,
DefenseUnreliableSupplier,
FinancialReport,
FinancialReportLine,
IndustrialCertificate,
IndustrialProduct,
InformationSecurityRegistryEntry,
LaborVacancy,
ManufacturerRegistryEntry,
ProsecutorCheck,
PublicProcurement,
)
@@ -30,6 +34,32 @@ class IndustrialProductFactory(factory.django.DjangoModelFactory):
registry_number = factory.Sequence(lambda n: f"{1000 + n}/2026")
class IndustrialCertificateFactory(factory.django.DjangoModelFactory):
class Meta:
model = IndustrialCertificate
organization = factory.SubFactory(OrganizationFactory)
certificate_number = factory.Sequence(lambda n: f"CERT-{n:04d}")
issue_date = factory.LazyAttribute(lambda _: fake.date_this_year())
expiry_date = factory.LazyAttribute(lambda _: fake.date_this_decade())
certificate_file_url = factory.Sequence(
lambda n: f"https://minpromtorg.gov.ru/cert/{n}"
)
organisation_name = factory.LazyAttribute(lambda obj: obj.organization.name)
ogrn = factory.LazyAttribute(lambda obj: obj.organization.ogrn)
class ManufacturerRegistryEntryFactory(factory.django.DjangoModelFactory):
class Meta:
model = ManufacturerRegistryEntry
organization = factory.SubFactory(OrganizationFactory)
full_legal_name = factory.LazyAttribute(lambda obj: obj.organization.name)
inn = factory.LazyAttribute(lambda obj: obj.organization.inn)
ogrn = factory.LazyAttribute(lambda obj: obj.organization.ogrn)
address = factory.LazyAttribute(lambda _: fake.address())
class ProsecutorCheckFactory(factory.django.DjangoModelFactory):
class Meta:
model = ProsecutorCheck
@@ -126,3 +156,30 @@ class LaborVacancyFactory(factory.django.DjangoModelFactory):
published_at = factory.LazyAttribute(lambda _: fake.date_this_year())
salary_amount = "175000.00"
source_url = factory.Sequence(lambda n: f"https://trudvsem.ru/vacancy/{n}")
class FinancialReportFactory(factory.django.DjangoModelFactory):
class Meta:
model = FinancialReport
organization = factory.SubFactory(OrganizationFactory)
external_id = factory.Sequence(lambda n: f"fin-{n:04d}")
ogrn = factory.LazyAttribute(lambda obj: obj.organization.ogrn)
file_name = factory.Sequence(lambda n: f"fin_{n:04d}.xlsx")
file_hash = factory.Sequence(lambda n: f"{n:064x}"[-64:])
load_batch = factory.Sequence(lambda n: n + 1)
status = "success"
source = "api"
class FinancialReportLineFactory(factory.django.DjangoModelFactory):
class Meta:
model = FinancialReportLine
report = factory.SubFactory(FinancialReportFactory)
form_code = "1"
line_code = "1600"
line_name = "Баланс"
year = 2025
period_start = 1000
period_end = 1500