site configs
This commit is contained in:
parent
c4748aa0ee
commit
bcc3a8de15
|
|
@ -3,15 +3,14 @@ import Link from "next/link";
|
||||||
import { AmenityItem } from "@/components/AmenityItem";
|
import { AmenityItem } from "@/components/AmenityItem";
|
||||||
import { BookingSearchWidget } from "@/components/BookingSearchWidget";
|
import { BookingSearchWidget } from "@/components/BookingSearchWidget";
|
||||||
import { OutletCard } from "@/components/OutletCard";
|
import { OutletCard } from "@/components/OutletCard";
|
||||||
import { RoomCard } from "@/components/RoomCard";
|
import { CatalogRoomsSection } from "@/components/CatalogRoomsSection";
|
||||||
import { GoogleMapEmbed } from "@/components/GoogleMapEmbed";
|
import { GoogleMapEmbed } from "@/components/GoogleMapEmbed";
|
||||||
import { VirtualTourBlock } from "@/components/VirtualTourBlock";
|
import { VirtualTourBlock } from "@/components/VirtualTourBlock";
|
||||||
import { roomAmenities } from "@/lib/mocks/amenities";
|
import { roomAmenities } from "@/lib/data/amenities";
|
||||||
import { bookingStyleReviews } from "@/lib/mocks/bookingReviews";
|
import { bookingStyleReviews } from "@/lib/data/bookingReviews";
|
||||||
import { outlets } from "@/lib/mocks/outlets";
|
import { outlets } from "@/lib/data/outlets";
|
||||||
import { rooms } from "@/lib/mocks/rooms";
|
import { siteConfig } from "@/lib/site-config";
|
||||||
import { siteConfig } from "@/lib/mocks/site";
|
import { wellnessFacilities } from "@/lib/data/wellness";
|
||||||
import { wellnessFacilities } from "@/lib/mocks/wellness";
|
|
||||||
|
|
||||||
const heroImage =
|
const heroImage =
|
||||||
"https://images.unsplash.com/photo-1566073771259-6a8506099945?w=1920&q=80";
|
"https://images.unsplash.com/photo-1566073771259-6a8506099945?w=1920&q=80";
|
||||||
|
|
@ -164,11 +163,7 @@ export default function HomePage() {
|
||||||
Book a room →
|
Book a room →
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-12 grid gap-8 md:grid-cols-2 lg:grid-cols-4">
|
<CatalogRoomsSection />
|
||||||
{rooms.map((room) => (
|
|
||||||
<RoomCard key={room.id} room={room} />
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
/** API origin including /api prefix, e.g. http://localhost:7777/api */
|
|
||||||
export function getPublicApiUrl(): string {
|
export function getPublicApiUrl(): string {
|
||||||
const u = process.env.NEXT_PUBLIC_API_URL?.trim();
|
const u = process.env.NEXT_PUBLIC_API_URL?.trim();
|
||||||
if (u) return u.replace(/\/$/, "");
|
if (u) return u.replace(/\/$/, "");
|
||||||
|
|
|
||||||
7
src/lib/format-etb.ts
Normal file
7
src/lib/format-etb.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
export function formatEtb(amount: number, maximumFractionDigits: 0 | 1 | 2 = 2): string {
|
||||||
|
return new Intl.NumberFormat("en-GB", {
|
||||||
|
style: "currency",
|
||||||
|
currency: "ETB",
|
||||||
|
maximumFractionDigits,
|
||||||
|
}).format(amount);
|
||||||
|
}
|
||||||
42
src/lib/site-config.ts
Normal file
42
src/lib/site-config.ts
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
/** Site-wide static config until CMS / API-backed content exists. */
|
||||||
|
export const siteConfig = {
|
||||||
|
name: "Shitaye Suite Hotel",
|
||||||
|
tagline: "The Unwinding Choice",
|
||||||
|
city: "Addis Ababa",
|
||||||
|
address: "Ethio China Street, Kirkos, Addis Ababa, Ethiopia",
|
||||||
|
/** Google Maps — search result embed (hotel place). */
|
||||||
|
googleMapsEmbedUrl:
|
||||||
|
"https://www.google.com/maps?q=Shitaye+Suite+Hotel+Addis+Ababa+Ethiopia&output=embed&z=16",
|
||||||
|
/** Opens Google Maps with directions to the hotel (destination preset). */
|
||||||
|
googleMapsDirectionsUrl:
|
||||||
|
"https://www.google.com/maps/dir/?api=1&destination=Shitaye+Suite+Hotel+Ethio+China+Street+Kirkos+Addis+Ababa+Ethiopia",
|
||||||
|
/** Place search — opens the hotel pin in Google Maps (not directions mode). */
|
||||||
|
googleMapsPlaceUrl:
|
||||||
|
"https://www.google.com/maps/search/?api=1&query=Shitaye+Suite+Hotel+Addis+Ababa+Ethiopia",
|
||||||
|
phones: ["+251 96 688 4400", "+251 96 688 2200", "+251 11 46 21000"],
|
||||||
|
/** Primary number shown on FAB / quick call */
|
||||||
|
primaryPhone: "+251 96 688 4400",
|
||||||
|
email: "reservation@shitayesuitehotel.com",
|
||||||
|
/** Departments (from official site) */
|
||||||
|
departments: [
|
||||||
|
{ label: "Marketing", phones: ["+251 96 688 4400", "+251 96 688 2200"] },
|
||||||
|
{ label: "Reception", phones: ["+251 11 46 21000"] },
|
||||||
|
],
|
||||||
|
videoTourUrl: "https://www.youtube.com/watch?v=oH4hH1P7vdM",
|
||||||
|
hotelTourEmbedUrl: null as string | null,
|
||||||
|
/** Property listing (guest reviews, photos) */
|
||||||
|
bookingComReviewsUrl: "https://www.booking.com/hotel/et/shitaye-suite.html",
|
||||||
|
/**
|
||||||
|
* Lobby / lounge photo from the Booking.com gallery (same listing as above).
|
||||||
|
* Caption on Booking: living area with seating — property-authentic asset.
|
||||||
|
*/
|
||||||
|
lobbyImageUrl:
|
||||||
|
"https://cf.bstatic.com/xdata/images/hotel/max1024x768/536142684.jpg?k=e550cdbc87e2b08b7fd6b261d0c719149024f47369a5f53a628fca9630631bb6&o=",
|
||||||
|
social: {
|
||||||
|
facebook: "https://www.facebook.com/shitayesuitehotel/",
|
||||||
|
twitter: "https://twitter.com/ShitayeSuite",
|
||||||
|
whatsapp: "https://wa.me/0966884400",
|
||||||
|
instagram: "https://instagram.com/shitaye_suite_hotel",
|
||||||
|
},
|
||||||
|
taxRate: 0.15,
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue
Block a user