import { redirect } from "next/navigation" import { and, asc, eq } from "drizzle-orm" import { db } from "@/lib/db" import { tenants as tenantsTable, properties } from "@/lib/db/schema" import { getSessionUser } from "@/lib/session" import { LeaseForm } from "@/components/forms/lease-form" import { BackButton } from "@/components/ui/back-button" export const metadata = { title: "Add Lease" } export default async function NewLeasePage({ searchParams }: { searchParams: Promise> }) { const user = await getSessionUser() if (!user) redirect("/login") const params = await searchParams const prefill = { tenant_id: params.tenant_id ?? "", property_id: params.property_id ?? "", unit_id: params.unit_id ?? "", rent_amount: params.rent_amount ?? "", } const [tenants, properties_] = await Promise.all([ db .select({ id: tenantsTable.id, first_name: tenantsTable.first_name, last_name: tenantsTable.last_name, unit_id: tenantsTable.unit_id, property_id: tenantsTable.property_id, }) .from(tenantsTable) .where(and(eq(tenantsTable.user_id, user.id), eq(tenantsTable.status, "active"))) .orderBy(asc(tenantsTable.first_name)), db.query.properties.findMany({ where: eq(properties.user_id, user.id), columns: { id: true, name: true }, with: { units: { columns: { id: true, unit_number: true } }, }, orderBy: asc(properties.name), }), ]) return (

Add Lease

{prefill.tenant_id ? "Renewing lease — dates pre-filled from previous lease" : "Create a lease record for a tenant"}

) }