facade pattern class customer(object)def __init__(self)pass @classmethod def fetch(clscustomer_code)fetch customer from persistent storage pass def save(self)save customer to persistent storage pass class loyaltyaccount(object)def __init__(self)pass @classmethod def fetch(clscustomer)fetch loyaltyaccount from persistent storage pass def calculate(selfinvoice)calculate the loyalty points received for this purchase pass def save(self)save loyalty account back to persistent storage pass if you want to process saleyou have to interact with all of these classes def complex_sales_processor(customer_codeitem_dict_listpayment_type)customer customer fetch_customer(customer_codeinvoice invoice(for item_dict in item_dict_listitem item fetch(item_dict["barcode"]item amount_in_stock item_dict["amount_purchased"item save(