public static function create(array $data)
{
Assert::keyExists($data, 'domain');
Assert::keyExists($data, 'receiving_dns_records');
Assert::keyExists($data, 'sending_dns_records');
$domain = Domain::create($data['domain']);
$rx = [];
$tx = [];
foreach ($data['receiving_dns_records'] as $item) {
$rx[] = DnsRecord::create($item);
}
foreach ($data['sending_dns_records'] as $item) {
$tx[] = DnsRecord::create($item);
}
return new self($domain, $rx, $tx);
}