*/ final class TrackingResponse implements ApiResponse { private $click; private $open; private $unsubscribe; public static function create(array $data): ?self { if (!isset($data['tracking'])) { return null; } $trackingSettings = $data['tracking']; $model = new self(); $model->click = ClickTracking::create($trackingSettings['click'] ?? []); $model->open = OpenTracking::create($trackingSettings['open'] ?? []); $model->unsubscribe = UnsubscribeTracking::create($trackingSettings['unsubscribe'] ?? []); return $model; } private function __construct() { } public function getClick(): ClickTracking { return $this->click; } public function getOpen(): OpenTracking { return $this->open; } public function getUnsubscribe(): UnsubscribeTracking { return $this->unsubscribe; } }