const { clientQueries, adminQueries } = require('../models/queries'); exports.listBuildings = async (req, res) => { try { const buildings = await clientQueries.getAllBuildings(); res.render('client/buildings', { buildings }); } catch (error) { console.error('Error fetching buildings:', error); res.status(500).send('Database error'); } }; exports.buildingDetail = async (req, res) => { try { const { building_id } = req.params; const data = await clientQueries.getBuildingDetailById(building_id); if (data.length === 0) { return res.status(404).send('Building not found'); } // Group data const buildingInfo = { id: data[0].building_id, name: data[0].building_name, address: data[0].address, description: data[0].description, architect: data[0].architect_name, }; const floors = data.map(row => ({ floor_id: row.floor_id, floor_number: row.floor_number, layout_image: row.layout_image, })); res.render('client/building-detail', { building: buildingInfo, floors }); } catch (error) { console.error('buildingDetail error:', error.message); return res.status(500).send('Could not load building information'); } }; exports.floorUnits = async (req, res) => { try { const { floor_id } = req.params; const units = await clientQueries.getUnitsByFloorId(floor_id); const floor = await adminQueries.getFloorById(floor_id); const building = await adminQueries.getBuildingById(floor.building_id); res.render('client/floor-units', { units, building, floor }); } catch (error) { console.error('Error fetching units:', error); res.status(500).send('Database error'); } }; exports.unitDetail = async (req, res) => { try { const { unit_id } = req.params; const unitData = await clientQueries.getUnitById(unit_id); if (!unitData) { return res.status(404).send('Unit not found'); } res.render('client/unit-detail', { unit: unitData }); } catch (error) { console.error('unitDetail problem:', error.message); return res.status(404).send('Unit not available'); } };