Skip to Content

Choose Your Stay

Select a Property

Each Lustro Home offers a distinct experience. Choose the one that's right for you, then browse its suites.

// Parse filters $property = $_GET['property'] ?? ''; $checkin = $_GET['checkin'] ?? ''; $checkout = $_GET['checkout'] ?? ''; $guests = (int)($_GET['guests'] ?? 0); $category = $_GET['category'] ?? ''; $sortBy = $_GET['sort'] ?? 'featured'; $search = $_GET['search'] ?? ''; // Build query $where = ["p.status = 'active'", "r.is_available = 1"]; $params = []; if ($property) { $where[] = 'p.slug = ?'; $params[] = $property; } if ($category) { $where[] = 'rc.slug = ?'; $params[] = $category; } if ($guests) { $where[] = 'r.capacity >= ?'; $params[] = $guests; } if ($search) { $where[] = '(r.name LIKE ? OR r.description LIKE ?)'; $params[] = "%$search%"; $params[] = "%$search%"; } // Exclude fully booked rooms for date range if ($checkin && $checkout) { $where[] = "r.id NOT IN (SELECT room_id FROM bookings WHERE status IN ('confirmed','checked_in') AND check_in_date < ? AND check_out_date > ?)"; $params[] = $checkout; $params[] = $checkin; } $orderMap = ['price_asc'=>'r.price_per_night ASC','price_desc'=>'r.price_per_night DESC','featured'=>'r.is_featured DESC, r.price_per_night DESC']; $order = $orderMap[$sortBy] ?? $orderMap['featured']; $sql = "SELECT r.*, p.name as property_name, p.slug as property_slug, rc.name as category_name, rc.slug as category_slug, (SELECT image_path FROM room_images ri WHERE ri.room_id = r.id AND ri.is_primary = 1 LIMIT 1) as primary_image, (SELECT COUNT(*) FROM bookings b WHERE b.room_id = r.id AND b.status IN ('confirmed','checked_in') AND b.check_out_date >= CURDATE()) as active_bookings FROM rooms r JOIN properties p ON p.id = r.property_id JOIN room_categories rc ON rc.id = r.category_id WHERE " . implode(' AND ', $where) . " ORDER BY $order"; $rooms = db()->fetchAll($sql, $params); $properties = db()->fetchAll("SELECT * FROM properties WHERE status = 'active' ORDER BY sort_order"); $categories = db()->fetchAll("SELECT DISTINCT rc.* FROM room_categories rc JOIN rooms r ON r.category_id = rc.id JOIN properties p ON p.id = r.property_id WHERE p.status = 'active' ORDER BY rc.name"); require_once dirname(__DIR__) . '/includes/header.php'; ?>
Available Suites

Find Your Perfect Suite