"""Copy pricing data for digital product logic.""" from oto import response from pricing.logic import product_orchard_pricing_tier TRACKS_PRICING_FAMILY = 2 ALBUM_PRICING_FAMILY = 3 def copy_pricing_for_digital_product( source_product_id, destination_product_id): """Logic for copy pricing for digital product. Args: source_product_id (int): the product_id of the product to copy from. destination_product_id (int): the product_id of the product to copy to. Returns: response.Response """ tracks_pricing_tier_response = ( product_orchard_pricing_tier.get_by_product_id_and_pricing_family_id( product_id=source_product_id, pricing_family_id=TRACKS_PRICING_FAMILY)) if not tracks_pricing_tier_response: return tracks_pricing_tier_response tracks_pricing = tracks_pricing_tier_response.message tracks_pricing_data = dict( orchard_pricing_tier_id=tracks_pricing.get('orchard_pricing_tier_id')) album_pricing_tier_response = ( product_orchard_pricing_tier.get_by_product_id_and_pricing_family_id( product_id=source_product_id, pricing_family_id=ALBUM_PRICING_FAMILY)) if not album_pricing_tier_response: return album_pricing_tier_response album_pricing = album_pricing_tier_response.message album_pricing_data = dict( orchard_pricing_tier_id=album_pricing.get('orchard_pricing_tier_id')) copied_tracks_pricing = ( product_orchard_pricing_tier.update_product_with_orchard_pricing_tier( product_id=destination_product_id, pricing_family_id=TRACKS_PRICING_FAMILY, data=tracks_pricing_data)) if not copied_tracks_pricing: return copied_tracks_pricing copied_album_pricing = ( product_orchard_pricing_tier.update_product_with_orchard_pricing_tier( product_id=destination_product_id, pricing_family_id=ALBUM_PRICING_FAMILY, data=album_pricing_data)) if not copied_album_pricing: return copied_album_pricing return response.Response()