public static function create(array $data)
{
Assert::keyExists($data, 'created_at');
Assert::keyExists($data, 'mailbox');
Assert::keyExists($data, 'login');
$sizeBytes = array_key_exists('size_bytes', $data) ? $data['size_bytes'] : null;
$createdAt = new \DateTime($data['created_at']);
$mailbox = $data['mailbox'];
$login = $data['login'];
Assert::nullOrInteger($sizeBytes);
Assert::isInstanceOf($createdAt, '\\DateTime');
Assert::string($mailbox);
Assert::string($login);
return new self($sizeBytes, $createdAt, $mailbox, $login);
}