src/DTO/LicenciasOnline/ActivateLicenseDTO.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\DTO\LicenciasOnline;
  3. use App\Entity\License;
  4. use App\Entity\User;
  5. class ActivateLicenseDTO
  6. {
  7.     private License $license;
  8.     private User $user;
  9.     private ?string $purchaseOrderNumber;
  10.     private string $customerUserEmail;
  11.     private string $partnerUserEmail;
  12.     private string $contactId;
  13.     private ?string $domain;
  14.     private ?string $countryCode;
  15.     private ?string $address;
  16.     private ?string $city;
  17.     private ?string $companyName;
  18.     private ?string $phoneNumber;
  19.     private ?string $postalCode;
  20.     private ?string $state;
  21.     private ?string $firstName;
  22.     private ?string $lastName;
  23.     public function __construct(
  24.         License $license,
  25.         User $user,
  26.         string $contactId,
  27.         ?string $purchaseOrderNumber null,
  28.         ?string $domain null,
  29.         ?string $countryCode null,
  30.         ?string $address null,
  31.         ?string $city null,
  32.         ?string $companyName null,
  33.         ?string $phoneNumber null,
  34.         ?string $postalCode null,
  35.         ?string $state null,
  36.         ?string $firstName null,
  37.         ?string $lastName null,
  38.         string $customerUserEmail,
  39.         ?string $partnerUserEmail null
  40.     ) {
  41.         $this->license $license;
  42.         $this->user $user;
  43.         $this->contactId $contactId;
  44.         $this->purchaseOrderNumber $purchaseOrderNumber;
  45.         $this->domain $domain;
  46.         $this->countryCode $countryCode;
  47.         $this->address $address;
  48.         $this->city $city;
  49.         $this->companyName $companyName;
  50.         $this->phoneNumber $phoneNumber;
  51.         $this->postalCode $postalCode;
  52.         $this->state $state;
  53.         $this->firstName $firstName;
  54.         $this->lastName $lastName;
  55.         $this->customerUserEmail $customerUserEmail;
  56.         $this->partnerUserEmail $partnerUserEmail;
  57.     }
  58.     public function getLicense(): License
  59.     {
  60.         return $this->license;
  61.     }
  62.     public function getUser(): User
  63.     {
  64.         return $this->user;
  65.     }
  66.     public function getContactId(): string
  67.     {
  68.         return $this->contactId;
  69.     }
  70.     public function getPurchaseOrderNumber(): ?string
  71.     {
  72.         return $this->purchaseOrderNumber;
  73.     }
  74.     public function getDomain(): ?string
  75.     {
  76.         return $this->domain;
  77.     }
  78.     public function getCountryCode(): ?string
  79.     {
  80.         return $this->countryCode;
  81.     }
  82.     public function getAddress(): ?string
  83.     {
  84.         return $this->address;
  85.     }
  86.     public function getCity(): ?string
  87.     {
  88.         return $this->city;
  89.     }
  90.     public function getCompanyName(): ?string
  91.     {
  92.         return $this->companyName;
  93.     }
  94.     public function getPhoneNumber(): ?string
  95.     {
  96.         return $this->phoneNumber;
  97.     }
  98.     public function getPostalCode(): ?string
  99.     {
  100.         return $this->postalCode;
  101.     }
  102.     public function getState(): ?string
  103.     {
  104.         return $this->state;
  105.     }
  106.     public function getFirstName(): ?string
  107.     {
  108.         return $this->firstName;
  109.     }
  110.     public function getLastName(): ?string
  111.     {
  112.         return $this->lastName;
  113.     }
  114.     public function getCustomerUserEmail(): ?string
  115.     {
  116.         return $this->customerUserEmail;
  117.     }
  118.     public function getPartnerUserEmail(): ?string
  119.     {
  120.         return $this->partnerUserEmail;
  121.     }
  122.     public static function fromEntities(License $licenseUser $user, array $data): self
  123.     {
  124.         return new self(
  125.             $license,
  126.             $user,
  127.             $data['data']['csp']['agreement']['contact_id'] ?? '',
  128.             $data['purchaseOrderNumber'] ?? '',
  129.             $data['data']['csp']['agreement']['domain'] ?? '',
  130.             $data['data']['csp']['agreement']['countryCode'] ?? '',
  131.             $data['data']['csp']['customer']['address'] ?? '',
  132.             $data['data']['csp']['customer']['city'] ?? '',
  133.             $data['data']['csp']['customer']['companyName'] ?? '',
  134.             $data['data']['csp']['customer']['phoneNumber'] ?? '',
  135.             $data['data']['csp']['customer']['postalCode'] ?? '',
  136.             $data['data']['csp']['customer']['state'] ?? '',
  137.             $data['data']['csp']['customer']['firstName'] ?? '',
  138.             $data['data']['csp']['customer']['lastName'] ?? '',
  139.             $data['extraData']['customerUserEmail'],
  140.             $data['partnerUserEmail'] ?? ''
  141.         );
  142.     }
  143.     public function withContactId(string $contactId): self
  144.     {
  145.         $copy = clone $this;
  146.         $copy->contactId $contactId;
  147.         return $copy;
  148.     }
  149. }