import React from 'react'; import { Database, RotateCcw, Download, Upload, Zap, History, Clock } from 'lucide-react'; import { cn } from '@/lib/utils'; interface DatabaseManagerProps { dbStats: any; isBackingUp: boolean; onCreateBackup: () => void; dbSettings: any; onUpdateDbSettings: (settings: any) => void; backups: any[]; onRestore: (filename: string) => void; onExport: () => void; onImport: (e: React.ChangeEvent) => void; } export default function DatabaseManager({ dbStats, isBackingUp, onCreateBackup, dbSettings, onUpdateDbSettings, backups, onRestore, onExport, onImport }: DatabaseManagerProps) { const formatSize = (bytes: number) => { if (bytes === 0) return '0 B'; const k = 1024; const sizes = ['B', 'KB', 'MB', 'GB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i]; }; return (

System Integrity

Database Health

Operational

Last Backup

{dbStats.backup_count > 0 ? 'Verified' : 'Pending...'}

Storage Policy

Retention & Maintenance

onUpdateDbSettings({...dbSettings, retention_count: parseInt(e.target.value)})} className="w-full bg-slate-950/80 border border-slate-800 rounded-xl py-3 px-4 text-xs font-bold text-white outline-none focus:border-indigo-500/50 transition-all tabular-nums" />
onUpdateDbSettings({...dbSettings, schedule_hour: parseInt(e.target.value)})} className="w-full bg-slate-950/80 border border-slate-800 rounded-xl py-3 px-4 text-xs font-bold text-white outline-none focus:border-indigo-500/50 transition-all tabular-nums" />
onUpdateDbSettings({...dbSettings, schedule_freq_days: parseInt(e.target.value)})} className="w-full bg-slate-950/80 border border-slate-800 rounded-xl py-3 px-4 text-xs font-bold text-white outline-none focus:border-indigo-500/50 transition-all tabular-nums" />
{formatSize(dbStats.total_size_bytes)} Used
{backups.map((bak: any) => (

{bak.filename}

{new Date(bak.created_at).toLocaleString()} • {formatSize(bak.size_bytes)}

))}
); }