import { notFound, redirect } from "next/navigation" import { and, eq } from "drizzle-orm" import { db } from "@/lib/db" import { maintenance_requests } from "@/lib/db/schema" import { getSessionUser } from "@/lib/session" import Link from "next/link" import { formatCurrency, formatDate } from "@/lib/utils" import { MaintenanceStatusBadge, PriorityBadge } from "@/components/dashboard/maintenance-status-badge" import { MaintenanceStatusUpdater } from "@/components/forms/maintenance-status-updater" export default async function MaintenanceDetailPage({ params }: { params: Promise<{ requestId: string }> }) { const user = await getSessionUser() if (!user) redirect("/login") const { requestId } = await params const req = await db.query.maintenance_requests.findFirst({ where: and( eq(maintenance_requests.id, requestId), eq(maintenance_requests.user_id, user.id) ), with: { property: { columns: { name: true, address_line1: true, city: true } }, unit: { columns: { unit_number: true } }, tenant: { columns: { first_name: true, last_name: true, email: true, phone: true } }, }, }) if (!req) notFound() const request = req as any return (
{request.property?.name}{request.unit ? ` · Unit ${request.unit.unit_number}` : ""} · Opened {formatDate(request.created_at)}
{request.description}
{request.resolution_notes && ( <>{request.resolution_notes}
> )}{request.tenant.first_name} {request.tenant.last_name}
{request.tenant.email &&{request.tenant.email}
} {request.tenant.phone &&{request.tenant.phone}
}