*/ protected function materialFields(): array { return [ 'Guid', 'RemoteDomainId', 'Identity', 'DomainName', 'Name', 'DisplayName', 'IsDefault', 'AllowedOOFType', 'AutoReplyEnabled', 'AutoForwardEnabled', 'MailTipsAccessLevel', 'MailTipsAccessScope', 'TargetDeliveryDomain', 'TNEFEnabled', 'TrustedMailOutboundEnabled', ]; } /** * @return list> */ protected function identityAliasGroups(): array { return [ ['id', 'sourceId'], ['Guid', 'RemoteDomainId', 'Identity'], ]; } protected function normalizePayload(array $payload, array $identity): array { $normalized = parent::normalizePayload($payload, $identity); $normalized['remote_domain_class'] = [ 'is_default' => $this->normalizeSettingValue($payload['IsDefault'] ?? $payload['isDefault'] ?? null), 'domain_name_is_identity' => false, ]; $normalized['settings'] = $this->settingGroup($payload, [], [ 'AllowedOOFType', 'AutoReplyEnabled', 'AutoForwardEnabled', 'MailTipsAccessLevel', 'MailTipsAccessScope', 'TargetDeliveryDomain', 'TNEFEnabled', 'TrustedMailOutboundEnabled', ]); return $this->sortAssociative($normalized); } }