| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- <?php
 - 
 - namespace App\DTO;
 - 
 - use App\Models\Company;
 - 
 - readonly class CompanyDTO
 - {
 -     public function __construct(
 -         public string $name,
 -         public string $addressLine1,
 -         public string $addressLine2,
 -         public string $city,
 -         public string $state,
 -         public string $postalCode,
 -         public string $country,
 -     ) {}
 - 
 -     public static function fromModel(Company $company): self
 -     {
 -         $profile = $company->profile;
 -         $address = $profile->address ?? null;
 - 
 -         return new self(
 -             name: $company->name,
 -             addressLine1: $address?->address_line_1 ?? '',
 -             addressLine2: $address?->address_line_2 ?? '',
 -             city: $address?->city ?? '',
 -             state: $address?->state?->name ?? '',
 -             postalCode: $address?->postal_code ?? '',
 -             country: $address?->country?->name ?? '',
 -         );
 -     }
 - 
 -     public function getFormattedAddressHtml(): ?string
 -     {
 -         if (empty($this->addressLine1)) {
 -             return null;
 -         }
 - 
 -         $lines = array_filter([
 -             $this->addressLine1,
 -             $this->addressLine2,
 -             implode(', ', array_filter([
 -                 $this->city,
 -                 $this->state,
 -                 $this->postalCode,
 -             ])),
 -             $this->country,
 -         ]);
 - 
 -         return collect($lines)
 -             ->map(static fn ($line) => "<p>{$line}</p>")
 -             ->join('');
 -     }
 - }
 
 
  |