import logging from firm.contract.models import Contract, ContractDraft from firm.core.depends import Registry from firm.current_firm import CurrentFirm, Partner from firm.db import client from firm.entity.models import Entity from firm.template.models import ContractTemplate, ProvisionTemplate from hub.firm import Firm collections = [CurrentFirm, Entity, Partner, Contract, ContractDraft, ContractTemplate, ProvisionTemplate] logger = logging.getLogger('uvicorn.error') async def create_documents_indexes(db): for collection in collections: if "indexes" in collection.document_config: for field in collection.document_config["indexes"]: collection.create_index(db, field) async def init_all_db(): logger.info("[FRM] Creating index for firms") for firm in await Firm.find({}).to_list(): reg = Registry(client, firm.instance, firm.firm) await reg.current_firm await create_documents_indexes(reg.db) async def init_db(): await init_all_db()