import { redirect } from "next/navigation" import { asc, desc, eq } from "drizzle-orm" import { db } from "@/lib/db" import { maintenance_requests, properties } from "@/lib/db/schema" import { getSessionUser } from "@/lib/session" import { getEffectiveOwnerId } from "@/lib/account" import Link from "next/link" import { Plus } from "lucide-react" import { MaintenanceList } from "./maintenance-list" export const metadata = { title: "Maintenance" } export default async function MaintenancePage() { const user = await getSessionUser() if (!user) redirect("/login") const ownerId = await getEffectiveOwnerId(user.id) const [requests, propertyList] = await Promise.all([ db.query.maintenance_requests.findMany({ where: eq(maintenance_requests.user_id, ownerId), with: { property: { columns: { name: true } }, unit: { columns: { unit_number: true } }, tenant: { columns: { first_name: true, last_name: true } }, }, orderBy: desc(maintenance_requests.created_at), }), db .select({ id: properties.id, name: properties.name }) .from(properties) .where(eq(properties.user_id, ownerId)) .orderBy(asc(properties.name)), ]) return (

Maintenance

{requests?.length ?? 0} total requests

New Request
) }