diff --git a/src/app/(protected)/administrativo/(client)/clientes/[id]/page.tsx b/src/app/(protected)/administrativo/(client)/clientes/[id]/page.tsx index 8f9fe33..e38fd79 100644 --- a/src/app/(protected)/administrativo/(client)/clientes/[id]/page.tsx +++ b/src/app/(protected)/administrativo/(client)/clientes/[id]/page.tsx @@ -671,6 +671,39 @@ export default function ClientePage() { Arquivos de Backup + + {/** Lista os backups mais recentes */} + {logBackup?.latest_backups && ( +
+

+ Backup mais recente ({logBackup.latest_backups.data}) +

+ + + + + + + + + + + + {logBackup.latest_backups.arquivos.map((item) => ( + + + + + + + ))} + +
ArquivoHoraTamanhoCaminho
{item.nome_arquivo}{item.dados.hora}{item.dados.tamanho}{item.dados.caminho}
+
+ )} + + + diff --git a/src/packages/administrativo/hooks/Log/useLogBackupHook.ts b/src/packages/administrativo/hooks/Log/useLogBackupHook.ts index 3b4af10..837805e 100644 --- a/src/packages/administrativo/hooks/Log/useLogBackupHook.ts +++ b/src/packages/administrativo/hooks/Log/useLogBackupHook.ts @@ -15,19 +15,42 @@ export const useLogBackupHook = () => { try { const response = await LogBackupService(client_id); - // Verifica se a API retorna no formato esperado - //console.log(' Resposta bruta do LogBackupService:', response); - // Se a estrutura for { success, message, data }, use response.data const logData = response?.data && response.data.backup ? response.data : response; - setLog(logData); // Armazena só a parte relevante - setResponse(response); // Mantém o contexto global + // --- ETAPA 1: ordenar backups por data --- + if (logData.backup) { + // Converte o objeto de backups em array [nomeArquivo, dados] + const sortedBackups = Object.entries(logData.backup).sort(([, a], [, b]) => { + const dateA = a.data.split('/').reverse().join('-'); + const dateB = b.data.split('/').reverse().join('-'); + return new Date(dateB).getTime() - new Date(dateA).getTime(); // Mais recente primeiro + }); - //console.log(' LogBackup armazenado no estado:', logData); + // Reconstrói o objeto ordenado + logData.backup = Object.fromEntries(sortedBackups); + + // --- ETAPA 2: obter a data mais recente --- + const latestDate = sortedBackups[0][1].data; + + // --- ETAPA 3: filtrar todos os backups dessa data --- + const latestBackups = sortedBackups + .filter(([, dados]) => dados.data === latestDate) + .map(([nome_arquivo, dados]) => ({ nome_arquivo, dados })); + + // --- ETAPA 4: adicionar campo customizado no JSON --- + logData.latest_backups = { + data: latestDate, + arquivos: latestBackups, + }; + } + + // Armazena os dados atualizados no estado + setLog(logData); + setResponse(response); } catch (error) { - console.error(' Erro ao buscar informação do servidor por ID:', error); + console.error('Erro ao buscar informação do servidor por ID:', error); } };