|
|
@@ -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
|