ldc-boutique-cnc-sable/domain/Models/ValueObjects/CrmCustomer.php
2026-10-27 09:58:12 +01:00

56 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace Domain\Models\ValueObjects;
use Domain\Enums\Country;
/**
* @phpstan-type CrmCustomerArray array{hashcode: ?string, email: ?string, password: ?string, firstname: ?string, lastname: ?string, birthDate: ?string, phone: ?string, address: ?string, address2: ?string, city: ?string, postcode: ?string, country: \Domain\Enums\Country, optIn: bool, status: bool, lastConnection: ?\DateTimeInterface}
*/
final readonly class CrmCustomer
{
public function __construct(
public ?string $hashcode,
public ?string $email,
public ?string $password,
public ?string $firstname,
public ?string $lastname,
public ?string $birthDate,
public ?string $phone,
public ?string $address,
public ?string $address2,
public ?string $city,
public ?string $postcode,
public Country $country,
public bool $optIn,
public bool $status,
public ?\DateTimeInterface $lastConnection,
) {
}
/**
* @return CrmCustomerArray
*/
public function toArray(): array
{
return [
'hashcode' => $this->hashcode,
'email' => $this->email,
'password' => $this->password,
'firstname' => $this->firstname,
'lastname' => $this->lastname,
'birthDate' => $this->birthDate,
'phone' => $this->phone,
'address' => $this->address,
'address2' => $this->address2,
'city' => $this->city,
'postcode' => $this->postcode,
'country' => $this->country,
'optIn' => $this->optIn,
'status' => $this->status,
'lastConnection' => $this->lastConnection,
];
}
}