diff --git a/src/Domain/TLDMetaData.php b/src/Domain/TLDMetaData.php index 7a324b4..fb26684 100644 --- a/src/Domain/TLDMetaData.php +++ b/src/Domain/TLDMetaData.php @@ -94,6 +94,12 @@ final class TLDMetaData implements DomainObjectInterface public ?LaunchPhaseCollection $launchPhases; + public bool $wdrpNotifications; + + public bool $errpNotifications; + + public ?int $transferLockDays; + private function __construct( array $createDomainPeriods, array $renewDomainPeriods, @@ -133,7 +139,10 @@ private function __construct( ?string $jurisdiction, ?string $termsOfService, ?string $privacyPolicy, - string $premiumSupport + string $premiumSupport, + bool $wdrpNotifications, + bool $errpNotifications, + ?int $transferLockDays ) { $this->createDomainPeriods = $createDomainPeriods; $this->renewDomainPeriods = $renewDomainPeriods; @@ -174,6 +183,9 @@ private function __construct( $this->termsOfService = $termsOfService; $this->privacyPolicy = $privacyPolicy; $this->premiumSupport = $premiumSupport; + $this->wdrpNotifications = $wdrpNotifications; + $this->errpNotifications = $errpNotifications; + $this->transferLockDays = $transferLockDays; } public static function fromArray(array $json): TLDMetaData @@ -233,7 +245,10 @@ public static function fromArray(array $json): TLDMetaData $json['jurisdiction'] ?? null, $json['termsOfService'] ?? null, $json['privacyPolicy'] ?? null, - $json['premiumSupport'] + $json['premiumSupport'], + $json['wdrpNotifications'], + $json['errpNotifications'], + $json['transferLockDays'] ?? null ); } @@ -271,6 +286,9 @@ public function toArray(): array 'whoisExposure' => $this->whoisExposure, 'gdprCategory' => $this->gdprCategory, 'premiumSupport' => $this->premiumSupport, + 'wdrpNotifications' => $this->wdrpNotifications, + 'errpNotifications' => $this->errpNotifications, + 'transferLockDays' => $this->transferLockDays, 'domainSyntax' => $this->domainSyntax->toArray(), 'nameservers' => $this->nameservers->toArray(), 'registrant' => $this->registrant->toArray(), diff --git a/tests/Domain/data/metadata/metadata_unknown_feature.php b/tests/Domain/data/metadata/metadata_unknown_feature.php index 884f0ac..9e7e1db 100644 --- a/tests/Domain/data/metadata/metadata_unknown_feature.php +++ b/tests/Domain/data/metadata/metadata_unknown_feature.php @@ -23,6 +23,9 @@ 'whoisExposure' => '', 'gdprCategory' => '', 'premiumSupport' => 'REGULAR', + 'wdrpNotifications' => false, + 'errpNotifications' => false, + 'transferLockDays' => 0, 'domainSyntax' => ['minLength' => 1, 'maxLength' => 64, 'idnSupport' => false], // DomainSyntax 'nameservers' => ['min' => 0, 'max' => 13, 'required' => false], // Nameservers 'registrant' => [ 'organizationRequired' => false, 'organizationAllowed' => true], // Registrant diff --git a/tests/Domain/data/metadata/metadata_valid.php b/tests/Domain/data/metadata/metadata_valid.php index 87a616d..ce7342e 100644 --- a/tests/Domain/data/metadata/metadata_valid.php +++ b/tests/Domain/data/metadata/metadata_valid.php @@ -23,6 +23,9 @@ 'whoisExposure' => 'FULL', 'gdprCategory' => 'EU_BASED', 'premiumSupport' => 'REGULAR', + 'wdrpNotifications' => false, + 'errpNotifications' => false, + 'transferLockDays' => 0, 'domainSyntax' => ['minLength' => 1, 'maxLength' => 64, 'idnSupport' => false], // DomainSyntax 'nameservers' => ['min' => 0, 'max' => 13, 'required' => false], // Nameservers 'registrant' => [ 'organizationRequired' => false, 'organizationAllowed' => true], // Registrant diff --git a/tests/Domain/data/tldinfo.php b/tests/Domain/data/tldinfo.php index c6cf850..fc6f08b 100644 --- a/tests/Domain/data/tldinfo.php +++ b/tests/Domain/data/tldinfo.php @@ -50,6 +50,9 @@ 'whoisExposure' => 'NONE', 'gdprCategory' => 'EU_BASED', 'premiumSupport' => 'REGULAR', + 'wdrpNotifications' => false, + 'errpNotifications' => false, + 'transferLockDays' => 0, 'domainSyntax' => include __DIR__ . '/domains/domain_syntax.php', 'nameservers' => include __DIR__ . '/nameservers.php', 'registrant' => include __DIR__ . '/registrant.php', diff --git a/tests/Domain/data/tldinfo_com.json b/tests/Domain/data/tldinfo_com.json index ef7d95c..9c1b026 100644 --- a/tests/Domain/data/tldinfo_com.json +++ b/tests/Domain/data/tldinfo_com.json @@ -463,7 +463,10 @@ "premiumSupport": "NO", "registrantChangeApprovalRequired": true, "allowDesignatedAgent": "BOTH", - "validationCategory": "General" + "validationCategory": "General", + "wdrpNotifications": false, + "errpNotifications": false, + "transferLockDays": 0 }, "provider": "Verisign", "applicableFor": [ diff --git a/tests/Domain/data/tldinfo_nl.json b/tests/Domain/data/tldinfo_nl.json index 8ebe8ec..68d8fd0 100644 --- a/tests/Domain/data/tldinfo_nl.json +++ b/tests/Domain/data/tldinfo_nl.json @@ -122,7 +122,10 @@ "registrant": { "organizationRequired": false, "organizationAllowed": true - } + }, + "wdrpNotifications": false, + "errpNotifications": true, + "transferLockDays": 0 }, "provider": "Sidn", "applicableFor": [