| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- <?php
 
- namespace App\Shop\Addresses\Transformations;
 
- use App\Shop\Addresses\Address;
 
- use App\Shop\Cities\Repositories\CityRepository;
 
- use App\Shop\Countries\Repositories\CountryRepository;
 
- use App\Shop\Customers\Customer;
 
- use App\Shop\Customers\Repositories\CustomerRepository;
 
- use App\Shop\Provinces\Province;
 
- use App\Shop\Provinces\Repositories\ProvinceRepository;
 
- use App\Shop\Cities\City;
 
- use App\Shop\Countries\Country;
 
- trait AddressTransformable
 
- {
 
-     /**
 
-      * Transform the address
 
-      *
 
-      * @param Address $address
 
-      *
 
-      * @return Address
 
-      * @throws \App\Shop\Cities\Exceptions\CityNotFoundException
 
-      * @throws \App\Shop\Countries\Exceptions\CountryNotFoundException
 
-      * @throws \App\Shop\Customers\Exceptions\CustomerNotFoundException
 
-      */
 
-     public function transformAddress(Address $address)
 
-     {
 
-         $obj = new Address;
 
-         $obj->id = $address->id;
 
-         $obj->alias = $address->alias;
 
-         $obj->address_1 = $address->address_1;
 
-         $obj->address_2 = $address->address_2;
 
-         $obj->zip = $address->zip;
 
-         $obj->city = $address->city;
 
-         if (isset($address->province_id)) {
 
-             $provinceRepo = new ProvinceRepository(new Province);
 
-             $province = $provinceRepo->findProvinceById($address->province_id);
 
-             $obj->province = $province->name;
 
-         }
 
-         $countryRepo = new CountryRepository(new Country);
 
-         $country = $countryRepo->findCountryById($address->country_id);
 
-         $obj->country = $country->name;
 
-         $customerRepo = new CustomerRepository(new Customer);
 
-         $customer = $customerRepo->findCustomerById($address->customer_id);
 
-         $obj->customer = $customer->name;
 
-         $obj->status = $address->status;
 
-         return $obj;
 
-     }
 
- }
 
 
  |