defcalculate_shipping_rate(origin_zip:str,dest_zip:str,weight_kg:float,service_level:str="standard",)->ShippingRate:"""Calculate shipping cost for a package. Determines the shipping zone, fetches carrier rates, and applies weight-based surcharges. """zone_info=FetchZoneMapping().call(origin_zip,dest_zip)carrier=FetchCarrierRates().call(zone_info.zone,weight_kg,service_level)base=carrier.base_ratefuel=carrier.fuel_surcharge# Weight surcharge: $1.50 per kg over 5kgweight_surcharge=max(0,(weight_kg-5))*1.50# Zone surcharge: $2 per zone beyond zone 3zone_surcharge=max(0,(zone_info.zone-3))*2.00# Cross-border feecross_border_fee=15.00ifzone_info.cross_borderelse0.00total=round(base+fuel+weight_surcharge+zone_surcharge+cross_border_fee,2)returnShippingRate(carrier=carrier.carrier,service_level=service_level,zone=zone_info.zone,base_rate=base,fuel_surcharge=fuel,weight_surcharge=round(weight_surcharge,2),zone_surcharge=zone_surcharge,cross_border_fee=cross_border_fee,total=total,)
defcompare_shipping_options(origin_zip:str,dest_zip:str,weight_kg:float)->ShippingComparison:"""Compare all available shipping options for a route. Returns pricing for standard, express, and overnight delivery. """options=[]forlevelin["standard","express","overnight"]:rate=calculate_shipping_rate(origin_zip,dest_zip,weight_kg,level)options.append(rate)returnShippingComparison(origin=origin_zip,destination=dest_zip,weight_kg=weight_kg,options=options,cheapest=min(options,key=lambdax:x.total).service_level,)