gdias 1 долоо хоног өмнө
parent
commit
b117bfb4d6

+ 3 - 0
log.txt

@@ -1,3 +1,6 @@
 [2026-06-06 17:07:27] INFO: Database connection established {"host":"51.79.79.8","port":"15432","name":"nettown_db"}
 [2026-06-09 20:06:51] INFO: Database connection established {"host":"51.79.79.8","port":"15432","name":"nettown_db"}
 [2026-06-09 20:59:01] INFO: Database connection established {"host":"51.79.79.8","port":"15432","name":"nettown_db"}
+[2026-06-09 21:05:50] INFO: Database connection established {"host":"51.79.79.8","port":"15432","name":"nettown_db"}
+[2026-06-09 21:07:57] WARNING: JWT authentication failed {"error":"Expired token"}
+[2026-06-09 21:31:16] INFO: Database connection established {"host":"51.79.79.8","port":"15432","name":"nettown_db"}

+ 29 - 5
models/DashboardOverviewModel.php

@@ -36,7 +36,7 @@ class DashboardOverviewModel
         $sentiment = strtolower((string) ($queryParams['sentiment'] ?? 'all'));
         $volumeView = strtolower((string) ($queryParams['volume_view'] ?? 'day'));
 
-        if (!in_array($period, ['today', 'yesterday', 'week'], true)) {
+        if (!in_array($period, ['today', 'yesterday', 'week', 'all_time'], true)) {
             $period = 'week';
         }
 
@@ -59,6 +59,18 @@ class DashboardOverviewModel
 
     private function resolveDateRange(string $period): array
     {
+        // "all_time" remove o recorte temporal usando uma faixa larga o
+        // suficiente para abranger todos os registros, mantendo as queries
+        // (que sempre filtram por data) inalteradas.
+        if ($period === 'all_time') {
+            return [
+                'start_date' => '1970-01-01',
+                'end_date' => '9999-12-31',
+                'start_datetime' => '1970-01-01 00:00:00',
+                'end_exclusive_datetime' => '9999-12-31 00:00:00',
+            ];
+        }
+
         $today = new \DateTimeImmutable('today');
 
         if ($period === 'today') {
@@ -87,18 +99,30 @@ class DashboardOverviewModel
             FROM client
             WHERE company_id = :company_id
               AND client_deleted_at = 'infinity'
-              AND client_is_registered = TRUE"
+              AND client_is_registered = TRUE
+              AND client_created_at >= :start_datetime
+              AND client_created_at < :end_exclusive_datetime"
         );
-        $registeredStmt->execute(['company_id' => $companyId]);
+        $registeredStmt->execute([
+            'company_id' => $companyId,
+            'start_datetime' => $range['start_datetime'],
+            'end_exclusive_datetime' => $range['end_exclusive_datetime'],
+        ]);
 
         $unregisteredStmt = $this->pdo->prepare(
             "SELECT COUNT(*)
             FROM client
             WHERE company_id = :company_id
               AND client_deleted_at = 'infinity'
-              AND client_is_registered = FALSE"
+              AND client_is_registered = FALSE
+              AND client_created_at >= :start_datetime
+              AND client_created_at < :end_exclusive_datetime"
         );
-        $unregisteredStmt->execute(['company_id' => $companyId]);
+        $unregisteredStmt->execute([
+            'company_id' => $companyId,
+            'start_datetime' => $range['start_datetime'],
+            'end_exclusive_datetime' => $range['end_exclusive_datetime'],
+        ]);
 
         $activeOperatorsSql = "SELECT COUNT(*)
             FROM operator