import {PageParams} from "@/types/next"; import {Page, PageActions, PageContent, PageDescription, PageTitle} from "@/features/layout/page"; import {Button, buttonVariants} from "@/components/ui/button"; import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs"; import {Card, CardContent, CardHeader} from "@/components/ui/card"; import {backupColumns} from "@/features/backup/columns"; import {restoreColumns} from "@/features/restore/columns"; import {DataTableWithPagination} from "@/components/wrappers/table/data-table-with-pagination"; import {prisma} from "@/prisma"; import {GearIcon} from "@radix-ui/react-icons"; import Link from "next/link"; import {AgentModalKey} from "@/components/wrappers/Agent/AgentModalKey/AgentModalKey"; import {KeyRound} from "lucide-react"; import {BackupButton} from "@/components/wrappers/BackupButton/BackupButton"; import {backups, restaurations} from "@/utils/mock-data"; import {formatDateLastContact} from "@/utils/date-formatting"; export default async function RoutePage(props: PageParams<{ agentId: string }>) { const {agentId} = await props.params const agent = await prisma.agent.findUnique({ where: { id: agentId, }, }) const databaseId = 'db-123'; const totalBackups = await prisma.backup.count({ where: { databaseId: databaseId, }, }); const successfulBackups = await prisma.backup.count({ where: { databaseId: databaseId, status: 'success', }, }); const successRate = totalBackups > 0 ? (successfulBackups / totalBackups) * 100 : null return (
{agent.name}
{agent.description}
Backups Success rate {successRate ?? "Unavailable for now."} Last contact {formatDateLastContact(agent.lastContact)}
Backup Restoration
) }