domain = $data['domain']; $this->blockdomains = $data['blockdomains']; $this->disposable_domains = $data['disposable_domains']; $this->free_email_provider = $data['free_email_provider']; $this->creation_date = $data['creation_date']; $this->expiration_date = $data['expiration_date']; $this->return_code = $data['return_code']; $this->disabled = $data['disabled']; $this->closest_snapshot = $data['closest_snapshot']; $this->mx_record = $data['mx_record']; if (!$this->validateDates([$this->creation_date, $this->expiration_date, $this->closest_snapshot])) { throw new \Exception('Validation failed'); } } public function prepareUpdate(): array { $params = $this->queryParams(); unset($params[':domain']); $placeholders = array_keys($params); $updateString = $this->updateStringByPlaceholders($placeholders); return [$params, $updateString]; } public function updateEntityInDb(int $entityId, int $apiKey): void { // total_visit and total_account should remain still [$params, $updateString] = $this->prepareUpdate(); $params['entity_id'] = $entityId; $params['key'] = $apiKey; $query = (" UPDATE event_domain SET {$updateString} WHERE event_domain.id = :entity_id AND event_domain.key = :key "); $model = new \Models\Domain(); $model->execQuery($query, $params); } }