Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ClientDTO.php 855B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\DTO;
  3. use App\Models\Common\Client;
  4. readonly class ClientDTO
  5. {
  6. public function __construct(
  7. public string $name,
  8. public string $addressLine1,
  9. public string $addressLine2,
  10. public string $city,
  11. public string $state,
  12. public string $postalCode,
  13. public string $country,
  14. ) {}
  15. public static function fromModel(Client $client): self
  16. {
  17. $address = $client->billingAddress ?? null;
  18. return new self(
  19. name: $client->name,
  20. addressLine1: $address?->address_line_1 ?? '',
  21. addressLine2: $address?->address_line_2 ?? '',
  22. city: $address?->city ?? '',
  23. state: $address?->state ?? '',
  24. postalCode: $address?->postal_code ?? '',
  25. country: $address?->country ?? '',
  26. );
  27. }
  28. }