def METHOD_NAME(legal_type: str,
                    identifier: str,
                    create_office=False,
                    create_office_mailing_address=False,
                    create_office_delivery_address=False,
                    firm_num_persons_roles=0,
                    firm_num_org_roles=0,
                    create_firm_party_address=False,
                    filing_types=[],
                    filing_has_completing_party=[],
                    create_completing_party_address=[],
                    start_date=None,
                    person_cessation_dates=[],
                    org_cessation_dates=[]):
    business = factory_business(identifier=identifier,
                                legal_type=legal_type)
    if start_date:
        business.start_date = start_date
    if create_office:
        business_office = factory_office('businessOffice')
        if create_office_mailing_address:
            mailing_addr = factory_address('mailing')
            business_office.addresses.append(mailing_addr)
        if create_office_delivery_address:
            delivery_addr = factory_address('delivery')
            business_office.addresses.append(delivery_addr)
        business.offices.append(business_office)
    if firm_num_persons_roles > 0 or firm_num_org_roles > 0:
        firm_party_role = get_firm_party_role(legal_type)
        firm_party_roles = factory_party_roles(firm_party_role,
                                               firm_num_persons_roles,
                                               firm_num_org_roles,
                                               person_cessation_dates,
                                               org_cessation_dates)
        if create_firm_party_address:
            for party_role in firm_party_roles:
                mailing_addr = factory_address('mailing')
                mailing_addr.save()
                party_role.party.mailing_address_id = mailing_addr.id
        business.party_roles.extend(firm_party_roles)
    for idx, filing_type in enumerate(filing_types):
        filing = factory_filing(filing_type)
        has_completing_party = filing_has_completing_party[idx]
        if has_completing_party:
            completing_party_role = factory_party_role_person('completing_party')
            if create_completing_party_address:
                mailing_addr = factory_address('mailing')
                mailing_addr.save()
                completing_party_role.party.mailing_address_id = mailing_addr.id
            filing.filing_party_roles.append(completing_party_role)
        business.filings.append(filing)
    business.save()
    return business