import React, { useMemo, useState } from "react";
import { motion } from "framer-motion";
import { CalendarDays, MapPin, ShieldCheck, Sparkles, CreditCard, KeyRound, Star, Wifi, Coffee, Bath, Users, CheckCircle2, ChevronRight, MessageCircle, Heart, Home, Building2 } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Card, CardContent } from "@/components/ui/card";
const apartments = [
{
id: 1,
title: "Студия в историческом центре",
area: "26 м²",
guests: "до 2 гостей",
district: "Центральный район",
price: "от 4 900 ₽/сутки",
image: "https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=1200&q=80",
tags: ["центр", "уютная студия", "самозаселение"],
},
{
id: 2,
title: "Апартаменты для пары",
area: "32 м²",
guests: "до 2 гостей",
district: "рядом с Невским",
price: "от 5 400 ₽/сутки",
image: "https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=1200&q=80",
tags: ["романтика", "кинопроектор", "тихий двор"],
},
{
id: 3,
title: "Двухкомнатная квартира",
area: "48 м²",
guests: "до 4 гостей",
district: "центр Петербурга",
price: "от 7 900 ₽/сутки",
image: "https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1200&q=80",
tags: ["семья", "2 комнаты", "долгое проживание"],
},
];
const trustItems = [
"Квартиры сдаются минимум на 2 суток",
"Вечеринки и шумные мероприятия запрещены",
"Понятные правила проживания и возврата",
"Быстрая связь до, во время и после проживания",
];
const benefits = [
{ icon: MapPin, title: "Центральный район", text: "Жить в Петербурге там, где город раскрывается с первого шага." },
{ icon: KeyRound, title: "Удобное заселение", text: "Чёткие инструкции, понятный маршрут и спокойное прибытие без лишних звонков." },
{ icon: Sparkles, title: "Эстетичный интерьер", text: "Квартиры, в которых приятно отдыхать, работать, фотографироваться и возвращаться." },
{ icon: ShieldCheck, title: "Безопасная бронь", text: "Прозрачные условия, политика возврата и ссылка на защищённую оплату." },
];
const addOns = ["Full HD проектор с онлайн-кинотеатрами", "Камин с настоящим огнём", "Продуктовые сеты к приезду", "Массажёр для ног", "Готовые маршруты по Петербургу"];
export default function StylishSpbApartmentsWebsite() {
const [selectedApartment, setSelectedApartment] = useState("Студия в историческом центре");
const [guests, setGuests] = useState("2");
const paymentLink = "https://example.com/pay";
const securityPolicyLink = "https://example.com/security-policy";
const refundPolicyLink = "https://example.com/refund-policy";
const today = useMemo(() => new Date().toISOString().split("T")[0], []);
return (
5–6 стильных квартир в Центральном районе Санкт-Петербурга
Квартиры в центре Петербурга, куда хочется вернуться
Эстетичные апартаменты для спокойного отдыха, романтических поездок, командировок и семейных путешествий. Чисто, красиво, продуманно — с понятным бронированием и заботой о деталях.
Гость чувствует заботу
до заселения и после выезда
Цель проживания
Спокойный отдых в центре
Модуль бронирования
Выберите квартиру и даты
Форма может быть подключена к реальному календарю занятости, CRM, Яндекс Формам, TravelLine, Bnovo, RealtyCalendar или вашему модулю бронирования.
После отправки заявки гость получает подтверждение, правила проживания и ссылку на безопасную оплату.
Выберите настроение поездки
Квартиры в центре
Каждая квартира оформлена как отдельный сценарий проживания: романтика, отдых после прогулок, семейная поездка или деловая командировка.
{apartments.map((apt) => (
{apt.price}
))}
{benefits.map((item) => {
const Icon = item.icon;
return (
{item.title}
{item.text}
);
})}
Больше, чем ночлег
Дополнительные услуги, которые повышают ценность проживания
Гость может сделать поездку более красивой, романтичной и удобной — это усиливает желание выбрать именно ваши квартиры.
{addOns.map((service, index) => (
))}
Спокойствие и доверие
Прозрачные условия для гостей
Люди бронируют охотнее, когда понимают правила заранее: что входит в стоимость, как происходит заселение, как вернуть оплату и как защищены их данные.
{trustItems.map((item) => (
{item}
))}
);
}