setIds($ids, $idsParams); $draw = $this->f3->get('REQUEST.draw'); $draw = $draw ?? 1; $data = $this->getData(); $total = $this->getTotal(); $params = $this->f3->get('GET'); $dateRange = $this->getDatesRange($params); return [ 'data' => $data, 'draw' => $draw, 'recordsTotal' => $total, 'recordsFiltered' => $total, 'dateRange' => $dateRange, ]; } public function setIds(?string $ids, array $idsParams): void { $this->query->setIds($ids, $idsParams); } protected function getData(): array { [$query, $params] = $this->query->getData(); $results = $this->execQuery($query, $params); $this->convertTimeToUserTimezone($results); $this->calculateCustomParams($results); return $results; } protected function getTotal(): int { [$query, $params] = $this->query->getTotal(); $results = $this->execQuery($query, $params); return $results[0]['count']; } protected function convertTimeToUserTimezone(array &$result): void { $this->translateTimeZones($result); } protected function calculateCustomParams(array &$result): void { } }