"""Logic for vendors.""" from typing import Any from carveouts.models import service_carveout def dataload_vendor_contract_store_carveouts( vendor_cont_store_list: list[dict[str, int]], ) -> list[dict[str, Any]]: """Dataload vendor level store carveouts. Args: vendor_cont_store_list (list) : List with (vendor contract, store) ids. Returns: list: data from vendor level store carveouts data load. """ carveouts = service_carveout.dataload_vendor_contract_carveout( vendor_cont_store_list ) carveout_dict = {} for carveout in carveouts: carveout_key = ( str(carveout["vendor_contract_id"]) + "," + str(carveout["dms_id"]) ) carveout_dict[carveout_key] = { "store_id": carveout["dms_id"], "distribution_type_ids": list( map(int, carveout["distribution_type_list"].split(",")) ), } # Return the response in the same order as the input response_data = [] for vendor_cont_store in vendor_cont_store_list: vend_contract_id = vendor_cont_store["vendor_contract_id"] delivery_store_id = vendor_cont_store["delivery_store_id"] carveout_key = str(vend_contract_id) + "," + str(delivery_store_id) response_data.append({"data": carveout_dict.get(carveout_key)}) return response_data