Resolve merge conflicts between upstream auth/data refactors and local guest portal navigation updates, then align imports and room data so the combined branch builds successfully. Made-with: Cursor
94 lines
3.8 KiB
TypeScript
94 lines
3.8 KiB
TypeScript
import type { Room } from "@/types/room";
|
|
|
|
const marketingRooms: Room[] = [
|
|
{
|
|
id: "penthouse",
|
|
slug: "four-bedroom-penthouse",
|
|
name: "The 4 Bedroom Penthouse",
|
|
shortDescription: "Our flagship residence with panoramic views and full kitchenette.",
|
|
longDescription:
|
|
"Experience elevated living in our four-bedroom penthouse — expansive layouts, state-of-the-art kitchenette, and amazing views over Addis Ababa. Ideal for extended stays and distinguished guests who expect space, privacy, and premium finishes.",
|
|
nightlyRate: 485,
|
|
priceCurrency: "USD",
|
|
maxGuests: 8,
|
|
beds: "4 bedrooms — mix of king and twin configurations",
|
|
sizeSqM: 220,
|
|
view: "City skyline",
|
|
highlights: ["Private routers", "IPTV", "Mini bar", "In-room safe"],
|
|
gallery: [
|
|
"https://images.unsplash.com/photo-1618773928121-c32242e63f39?w=1200&q=80&auto=format&fit=crop",
|
|
"https://images.unsplash.com/photo-1631049307264-da0ec9d70304?w=1200&q=80&auto=format&fit=crop",
|
|
"https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?w=1200&q=80&auto=format&fit=crop",
|
|
],
|
|
tourEmbedUrl: null,
|
|
},
|
|
{
|
|
id: "standard",
|
|
slug: "standard-rooms",
|
|
name: "Standard Rooms",
|
|
shortDescription: "Refined comfort with every essential amenity.",
|
|
longDescription:
|
|
"Our standard rooms combine restful design with practical luxury: premium bedding, dedicated workspace, IPTV, and seamless Wi-Fi / LAN. Perfect for business and leisure travellers who value consistency and calm.",
|
|
nightlyRate: 120,
|
|
priceCurrency: "USD",
|
|
maxGuests: 2,
|
|
beds: "1 King or 2 Twin",
|
|
sizeSqM: 28,
|
|
view: "City or courtyard",
|
|
highlights: ["B/B fast", "Iron & board", "Laundry (paid)", "Safe box"],
|
|
gallery: [
|
|
"https://images.unsplash.com/photo-1590490360182-c33d57733427?w=1200&q=80",
|
|
"https://images.unsplash.com/photo-1566665797739-1674de7a215a?w=1200&q=80",
|
|
],
|
|
tourEmbedUrl: null,
|
|
},
|
|
{
|
|
id: "connecting-suite",
|
|
slug: "connecting-suite",
|
|
name: "Connecting Suite",
|
|
shortDescription: "Flexible suites — convert to a spacious family layout.",
|
|
longDescription:
|
|
"Connecting suite rooms with the option of converting to family suites. Enjoy separate living and sleeping zones, kitchenette access where applicable, and the same premium amenities found across the property.",
|
|
nightlyRate: 210,
|
|
priceCurrency: "USD",
|
|
maxGuests: 5,
|
|
beds: "1 King + connecting twin room",
|
|
sizeSqM: 55,
|
|
view: "City",
|
|
highlights: ["Family-friendly layout", "Kitchenette", "IPTV", "Shuttle"],
|
|
gallery: [
|
|
"https://images.unsplash.com/photo-1618773928121-c32242e63f39?w=1200&q=80",
|
|
"https://images.unsplash.com/photo-1591088398332-8a7791972843?w=1200&q=80",
|
|
],
|
|
tourEmbedUrl: null,
|
|
},
|
|
{
|
|
id: "junior-studio",
|
|
slug: "junior-studios",
|
|
name: "Junior Studios",
|
|
shortDescription: "Compact sophistication for solo travellers and short stays.",
|
|
longDescription:
|
|
"Junior studios offer a smart open plan with kitchenette, premium Wi-Fi, IPTV, and efficient storage — designed for guests who want independence without sacrificing hotel service.",
|
|
nightlyRate: 95,
|
|
priceCurrency: "USD",
|
|
maxGuests: 2,
|
|
beds: "1 Queen",
|
|
sizeSqM: 32,
|
|
view: "Urban",
|
|
highlights: ["Kitchenette", "Mini bar", "Private router option"],
|
|
gallery: [
|
|
"https://images.unsplash.com/photo-1522771739844-6a9f6d5f14af?w=1200&q=80",
|
|
"https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?w=1200&q=80",
|
|
],
|
|
tourEmbedUrl: null,
|
|
},
|
|
];
|
|
|
|
export function getMarketingRoomBySlug(slug: string): Room | undefined {
|
|
return marketingRooms.find((room) => room.slug === slug);
|
|
}
|
|
|
|
export function getAllMarketingRoomSlugs(): string[] {
|
|
return marketingRooms.map((room) => room.slug);
|
|
}
|