1+ <?php
2+
3+ namespace Piggy \Api \Mappers \Orders ;
4+
5+ use Piggy \Api \Mappers \Contacts \ContactMapper ;
6+ use Piggy \Api \Mappers \Shops \ShopMapper ;
7+ use Piggy \Api \Models \Orders \Order ;
8+ use stdClass ;
9+
10+ class OrderMapper
11+ {
12+ public function map (stdClass $ data ): Order
13+ {
14+ $ contact = null ;
15+ if (isset ($ data ->contact )) {
16+ $ mapper = new ContactMapper ();
17+ $ contact = $ mapper ->map ($ data ->contact );
18+ }
19+
20+ $ shop = null ;
21+ if (isset ($ data ->business_profile )) {
22+ $ mapper = new ShopMapper ();
23+ $ shop = $ mapper ->map ($ data ->business_profile );
24+ }
25+
26+ $ lineItems = [];
27+ if (isset ($ data ->line_items )) {
28+ $ mapper = new LineItemMapper ();
29+ $ lineItems = $ mapper ->map ($ data ->line_items );
30+ }
31+
32+ return new Order (
33+ $ data ->uuid ,
34+ $ data ->external_identifier ,
35+ $ data ->currency ,
36+ $ data ->reference ?? null ,
37+ $ data ->status ,
38+ $ data ->payment_status ,
39+ $ data ->formatted_total_order_amount ,
40+ isset ($ data ->order_amount ) ? (int ) $ data ->order_amount : null ,
41+ (int ) $ data ->total_charges_amount ,
42+ (int ) $ data ->total_discount_amount ,
43+ (int ) $ data ->total_order_amount ,
44+ $ data ->paid_at ?? null ,
45+ $ data ->created_at ,
46+ $ data ->updated_at ,
47+ $ contact ,
48+ $ shop ,
49+ $ lineItems ,
50+ $ data ->applied_discounts ,
51+ $ data ->charges
52+ );
53+ }
54+ }
0 commit comments