import {PageParams} from "@/types/next"; import {prisma} from "@/prisma"; import {notFound, usePathname, useRouter} from "next/navigation"; import {Page, PageActions, PageContent, PageDescription, PageTitle} from "@/features/layout/page"; import {BackupButton} from "@/components/wrappers/BackupButton/BackupButton"; import {DatabaseTabs} from "@/components/wrappers/Dashboard/Projects/Database/DatabaseTabs"; import {DatabaseKpi} from "@/components/wrappers/Dashboard/Projects/Database/DatabaseKpi"; import Link from "next/link"; import {buttonVariants} from "@/components/ui/button"; import {GearIcon} from "@radix-ui/react-icons"; import {EditButton} from "@/components/wrappers/Database/EditButton/EditButton"; import {CronButton} from "@/components/wrappers/Database/CronButton/CronButton"; export default async function RoutePage(props: PageParams<{ databaseId: string }>) { const {databaseId} = await props.params const database = await prisma.database.findUnique({ where: { id: databaseId, }, }) if (!database) { notFound() } const backups = await prisma.backup.findMany({ where: { databaseId: database.id }, include:{ restaurations: {} } }) const restaurations = await prisma.restauration.findMany({ where: { databaseId: databaseId, } }) const isAlreadyBackup = !!backups.find(backup => backup.status === "waiting"); const isAlreadyRestore = !!restaurations.find(restoration => restoration.status === "waiting"); 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 (
{database.name}
{database.description}
) }