public static function create(array $data)
{
Assert::keyExists($data, 'name');
Assert::keyExists($data, 'smtp_login');
Assert::keyExists($data, 'smtp_password');
Assert::keyExists($data, 'wildcard');
Assert::keyExists($data, 'spam_action');
Assert::keyExists($data, 'state');
Assert::keyExists($data, 'created_at');
return new self($data['name'], $data['smtp_login'], $data['smtp_password'], $data['wildcard'], $data['spam_action'], $data['state'], new \DateTime($data['created_at']));
}