import React from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Progress } from '@/components/ui/progress'; import { Badge } from '@/components/ui/badge'; import { Database, Package, Info, Activity } from 'lucide-react'; import { useDatabaseUsage } from '@/hooks/useDatabaseUsage'; const Sistema = () => { const { databaseInfo, loading, error } = useDatabaseUsage(); // Versão extraída do package.json const version = "1.0.0"; // Simulação de dados de ocupação (em produção seria calculado com base no plano) const calculateUsagePercentage = (sizeString: string) => { if (!sizeString) return 0; // Extrai o número da string (ex: "2048 kB" -> 2048) const match = sizeString.match(/(\d+(?:\.\d+)?)\s*(\w+)/); if (!match) return 0; const size = parseFloat(match[1]); const unit = match[2].toLowerCase(); // Converte para MB let sizeInMB = size; if (unit === 'kb') sizeInMB = size / 1024; else if (unit === 'gb') sizeInMB = size * 1024; else if (unit === 'tb') sizeInMB = size * 1024 * 1024; // Assume limite de 500MB para o plano gratuito const limitMB = 500; return Math.min(sizeInMB / limitMB * 100, 100); }; const usagePercentage = databaseInfo ? calculateUsagePercentage(databaseInfo.database_size) : 0; return (

Painel do Sistema

Versão {version}
{/* Informações da Versão */} Versão do Sistema
{version}

Última atualização: {new Date().toLocaleDateString('pt-BR')}

{/* Uso do Banco de Dados */} Uso do Banco de Dados {loading ? (
Carregando...
) : error ? (
Erro ao carregar dados
) : (
{databaseInfo?.database_size || 'N/A'}

{usagePercentage.toFixed(1)}% utilizado

)}
{/* Número de Tabelas */} Tabelas do Sistema {loading ? (
Carregando...
) : error ? (
Erro ao carregar dados
) : (
{databaseInfo?.table_count || 0}

Tabelas ativas

)}
{/* Status do Sistema */} Status do Sistema
Banco de Dados Ativo
Autenticação Ativo
Storage Ativo
); }; export default Sistema;