<?php
class ModelExtensionDashboardOnline extends Model {
    public function getTotalOnline(array $data = []): int {
        $sql = "SELECT COUNT(*) AS `total` FROM `" . DB_PREFIX . "customer_online` co LEFT JOIN `" . DB_PREFIX . "customer` c ON (co.`customer_id` = c.`customer_id`)";

        $implode = [];

        if (!empty($data['filter_ip'])) {
            $implode[] = "co.`ip` LIKE '" . $this->db->escape($data['filter_ip']) . "'";
        }

        if (!empty($data['filter_customer'])) {
            $implode[] = "co.`customer_id` > '0' AND CONCAT(c.`firstname`, ' ', c.`lastname`) LIKE '" . $this->db->escape($data['filter_customer']) . "'";
        }

        if ($implode) {
            $sql .= " WHERE " . implode(" AND ", $implode);
        }

        $query = $this->db->query($sql);

        return (int)$query->row['total'];
    }
}