when($request->search, fn($q) => $q->whereHas('building', fn($q2) => $q2->where('building_name', 'like', "%{$request->search}%") ) ) ->latest() ->paginate(15); return Inertia::render('Units/Index', ['units' => $units]); } public function create() { $buildings = Building::all(); return Inertia::render('Units/Create', ['buildings' => $buildings]); } public function store(Request $request) { $validated = $request->validate([ 'building_id' => 'required|exists:buildings,id', 'unit_no' => 'required|string', 'floor_no' => 'nullable|string', 'area_sqft' => 'nullable|integer', 'assets' => 'nullable|array', 'status' => 'required|string', ]); Unit::create($validated); return redirect()->route('units.index'); } public function edit(Unit $unit) { $buildings = Building::all(); return Inertia::render('Units/Edit', ['unit' => $unit, 'buildings' => $buildings]); } public function update(Request $request, Unit $unit) { $validated = $request->validate([ 'building_id' => 'required|exists:buildings,id', 'unit_no' => 'required|string', 'floor_no' => 'nullable|string', 'area_sqft' => 'nullable|integer', 'assets' => 'nullable|array', 'status' => 'required|string', ]); $unit->update($validated); return redirect()->route('units.index'); } public function destroy(Unit $unit) { $unit->delete(); return redirect()->route('units.index'); } }