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 (
Última atualização: {new Date().toLocaleDateString('pt-BR')}
{usagePercentage.toFixed(1)}% utilizado
Tabelas ativas