import { redirect } from "next/navigation" import { and, asc, eq } from "drizzle-orm" import { db } from "@/lib/db" import { properties, tenants } from "@/lib/db/schema" import { getSessionUser } from "@/lib/session" import { getEffectiveOwnerId } from "@/lib/account" import { MaintenanceForm } from "@/components/forms/maintenance-form" import { BackButton } from "@/components/ui/back-button" export const metadata = { title: "New Maintenance Request" } export default async function NewMaintenancePage() { const user = await getSessionUser() if (!user) redirect("/login") const ownerId = await getEffectiveOwnerId(user.id) const [propertyList, tenantList] = await Promise.all([ db.query.properties.findMany({ where: eq(properties.user_id, ownerId), columns: { id: true, name: true }, with: { units: { columns: { id: true, unit_number: true } }, }, orderBy: asc(properties.name), }), db .select({ id: tenants.id, first_name: tenants.first_name, last_name: tenants.last_name, unit_id: tenants.unit_id, }) .from(tenants) .where(and(eq(tenants.user_id, ownerId), eq(tenants.status, "active"))), ]) return (

New Maintenance Request

Log a maintenance issue for a property

) }