mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
INCOMPLETO — este commit existe para NÃO PERDER, não para entregar.
A sessão bateu o limite no meio da extração, e a árvore onde isto vivia é
descartável por construção: ela existe para ser jogada fora. Trabalho commitado
ali não corre risco de se perder — ele já nasce perdido. Commitar e publicar é
o que o torna recuperável.
O QUE FALTA, e é obrigatório antes de virar PR:
- conferir a tripla (migration + apêndice IDEMPOTENTE no baseline + MANIFEST)
- RENUMERAR a migration: as TRÊS extrações nasceram com 0208 e colidem entre si
(o último na main é 0207)
- teste + sabotagem com previsão declarada ANTES
- prova pela TELA com Playwright — curl não conta para UI
- fragmento em .changes/ com crédito ao @clinicacentrodosorrisosc-code
Co-Authored-By: clinicacentrodosorrisosc-code <clinicacentrodosorrisosc-code@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
"use client";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
|
|
import { apiClient } from "@/lib/api/client";
|
|
import type { RelatorioDeAtividades } from "@/lib/reports/atividades";
|
|
|
|
export interface RelatorioComJanela extends RelatorioDeAtividades {
|
|
window: { from: string; to: string };
|
|
}
|
|
|
|
/**
|
|
* O fuso vai no pedido porque a série diária é agrupada NO BANCO. Sem ele o
|
|
* corte do dia seria UTC, e a atividade das 21h de Brasília apareceria no dia
|
|
* seguinte — o relatório afirmaria trabalho num dia sem trabalho.
|
|
*/
|
|
function fusoDoNavegador(): string {
|
|
try {
|
|
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
} catch {
|
|
return "UTC";
|
|
}
|
|
}
|
|
|
|
export function useActivityReport(dias: number) {
|
|
const tz = fusoDoNavegador();
|
|
return useQuery({
|
|
queryKey: ["reports", "activities", dias, tz],
|
|
queryFn: async () =>
|
|
apiClient.get<{ data: RelatorioComJanela }>(
|
|
`/api/v1/reports/activities?days=${dias}&tz=${encodeURIComponent(tz)}`,
|
|
),
|
|
staleTime: 30_000,
|
|
});
|
|
}
|