/* Data for tours, rooms, testimonials etc.
   Loaded from /api/tours at runtime; inline constants are fallback. */

// ── Runtime loader ────────────────────────────────────────────────────────────
(function loadData() {
  fetch('/api/tours')
    .then(r => r.ok ? r.json() : Promise.reject())
    .then(data => {
      if (data.tours)       window.TOURS        = data.tours;
      if (data.rooms)       window.ROOMS        = data.rooms;
      if (data.days)        window.DAYS         = data.days;
      if (data.gallery)     window._GALLERY     = data.gallery;
      if (data.included)    window.INCLUDED     = data.included;
      if (data.bring)       window.BRING        = data.bring;
      if (data.faq)         window.FAQ          = data.faq;
      if (data.testimonials) window.TESTIMONIALS = data.testimonials;
    })
    .catch(() => { /* fallback to inline constants below */ });
})();

// ── Inline fallback constants ─────────────────────────────────────────────────
const TOURS = [
  {
    id: 'karpaty-july',
    month: 'Липень',
    title: 'Карпати',
    subtitle: 'Буковель / Драгобрат',
    dates: '12 — 18 липня',
    status: 'sold',
    statusLabel: 'Sold Out · Лист очікування',
    price: 'від €680',
    hue: 280,
    tag: 'UA-01',
    short: 'Закритий заїзд у гори. Pool-party, параплани, нічні сети.',
  },
  {
    id: 'karpaty-august',
    month: 'Серпень',
    title: 'Карпати',
    subtitle: 'Буковель, повний buy-out готелю',
    dates: '16 — 22 серпня',
    status: 'open',
    statusLabel: 'Відкрито набір',
    price: 'від €720',
    hue: 295,
    tag: 'UA-02',
    short: 'Наш найбільший літній заїзд. 100 своїх, 6 днів вайбу.',
  },
  {
    id: 'barcelona-autumn',
    month: 'Жовтень',
    title: 'Барселона',
    subtitle: 'Яхти, rooftop-сети, гастро',
    dates: '3 — 9 жовтня',
    status: 'soon',
    statusLabel: 'Анонс скоро',
    price: 'від €1490',
    hue: 260,
    tag: 'EU-01',
    short: 'Середземне море, яхт-день і наш перший Барселонський заїзд.',
  },
  {
    id: 'turkey-autumn',
    month: 'Листопад',
    title: 'Туреччина',
    subtitle: 'Анталія, приватна вілла',
    dates: '14 — 20 листопада',
    status: 'soon',
    statusLabel: 'Анонс скоро',
    price: 'від €1190',
    hue: 305,
    tag: 'EU-02',
    short: 'Тепле море, SPA, повна приватність. Формат — 60 своїх.',
  },
];

const ROOMS = [
  {
    id: 'standard',
    name: 'Standard Double',
    capacity: '2 гостя',
    size: '22 м²',
    price: 720,
    available: 4,
    perks: ['Двоспальне ліжко', 'Вид у ліс', 'Робочий куток', 'Дощовий душ'],
    hue: 270,
  },
  {
    id: 'comfort',
    name: 'Comfort Twin',
    capacity: '2 гостя · окремі ліжка',
    size: '26 м²',
    price: 780,
    available: 3,
    perks: ['Двоє ліжок 120см', 'Балкон', 'Чайна станція', 'Smart TV'],
    hue: 275,
  },
  {
    id: 'superior',
    name: 'Superior View',
    capacity: '2 гостя',
    size: '32 м²',
    price: 920,
    available: 2,
    perks: ['King-size ліжко', 'Панорамне вікно', 'Халати, тапки', 'Nespresso'],
    hue: 282,
  },
  {
    id: 'loft',
    name: 'Mountain Loft',
    capacity: '2-3 гостя',
    size: '38 м²',
    price: 1080,
    available: 2,
    perks: ['Другий рівень', 'Камін', 'Вінілова станція', 'Приватна тераса'],
    hue: 290,
  },
  {
    id: 'suite',
    name: 'Founder Suite',
    capacity: '2 гостя',
    size: '48 м²',
    price: 1380,
    available: 1,
    perks: ['Окрема вітальня', 'Приватна сауна', 'Jacuzzi', 'Butler-сервіс'],
    hue: 298,
    featured: true,
  },
  {
    id: 'villa',
    name: 'Chalet Villa',
    capacity: '4 гостя · окремий будиночок',
    size: '72 м²',
    price: 1890,
    available: 1,
    perks: ['2 спальні', 'Своя кухня', 'Приватний hot-tub', 'Паркомісце'],
    hue: 305,
  },
];

const DAYS = [
  {
    day: 'День 01',
    date: '16.08',
    title: 'Заїзд & Welcome Night',
    tag: 'Знайомство',
    items: [
      { t: '14:00', d: 'Заїзд, поселення, welcome-кіт у номері' },
      { t: '17:00', d: 'Welcome drinks біля басейну' },
      { t: '19:30', d: 'Спільна вечеря + знайомство за столами по 8' },
      { t: '22:00', d: 'Opening set — DJ Чирик + DJ Little Vx' },
    ],
  },
  {
    day: 'День 02',
    date: '17.08',
    title: 'Pool Day & Sunset Session',
    tag: 'Чил',
    items: [
      { t: '09:00', d: 'Йога на даху + свіжий сік' },
      { t: '12:00', d: 'Pool-party, резидент-DJ, легкий лайв' },
      { t: '16:00', d: 'Гастро-сесія: шеф-кухар та локальні вина' },
      { t: '21:00', d: 'Sunset session з гостьовим гостем' },
    ],
  },
  {
    day: 'День 03',
    date: '18.08',
    title: 'Активний день у горах',
    tag: 'Драйв',
    items: [
      { t: '08:30', d: 'Сніданок + брифінг' },
      { t: '10:00', d: 'Похід на Говерлу (оптимально) / Бребенескул (хардкор)' },
      { t: '14:00', d: 'Пікнік на полонині' },
      { t: '19:00', d: 'Повернення + SPA + холодне занурення' },
    ],
  },
  {
    day: 'День 04',
    date: '19.08',
    title: 'Екстрим & DJ Kantik Night',
    tag: 'Легенда',
    items: [
      { t: '10:00', d: 'Квадроцикли, рафтинг, параплани — на вибір' },
      { t: '15:00', d: 'Гра Ліла з духовним наставником' },
      { t: '20:00', d: 'Гала-вечеря open-air' },
      { t: '23:00', d: 'Головна ніч — DJ Kantik · Zaman Zaman' },
    ],
  },
  {
    day: 'День 05',
    date: '20.08',
    title: 'Slow Day & Community',
    tag: 'Зв’язок',
    items: [
      { t: '10:00', d: 'Recovery-йога, масажі, банний ритуал' },
      { t: '13:00', d: 'Нетворкінг-ланч "Підприємці"' },
      { t: '17:00', d: 'Talks: 3 учасника діляться своїм шляхом' },
      { t: '22:00', d: 'Вінілова ніч у lounge' },
    ],
  },
  {
    day: 'День 06',
    date: '21.08',
    title: 'Farewell & After-movie',
    tag: 'Фінал',
    items: [
      { t: '11:00', d: 'Прощальний бранч' },
      { t: '14:00', d: 'Прем’єра after-movie туру' },
      { t: '18:00', d: 'Closing party — фінальний сет засновників' },
      { t: 'пізно', d: 'Те, що залишиться тільки в нашому чаті' },
    ],
  },
];

const INCLUDED = [
  '5 ночей у готелі з повним buy-out',
  'Повне харчування: сніданки, обіди, вечері',
  'Welcome-кіт та мерч туру',
  'Усі активності та трансфери на місці',
  'Pool-parties, welcome drinks, гала-вечеря',
  'Особистий куратор-вайб-менеджер',
  'Afterparty-програма з DJ-гостями',
  'Фото- та відео-контент із туру',
];

const BRING = [
  'Паспорт / ID + страховку',
  'Легкий одяг для басейну та вечірок',
  'Кросівки для гір + тепла кофта',
  'Купальник і пляжний рушник',
  'Улюблений аромат та зарядник',
  'Відкрите серце й паузу від роботи',
];

const FAQ = [
  { q: 'Хто може поїхати?', a: 'Наші тури — закрите ком’юніті. Перед заявкою ми проводимо коротке онлайн-знайомство. Без фільтра не продаємо квитки.' },
  { q: 'Чи обов’язково брати участь у всіх активностях?', a: 'Ні. Multi-Experience — про свободу. Ти обираєш свій сценарій кожен день: від йоги до рафтингу.' },
  { q: 'Як відбувається оплата?', a: '30% — депозит для бронювання. Решта — за 30 днів до туру. Повне повернення можливе за 45 днів до заїзду.' },
  { q: 'Мова туру?', a: 'Українська. Близько 20% учасників — українці, які живуть за кордоном. Всі активності дружні до різних рівнів підготовки.' },
  { q: 'Чи можна приїхати з парою?', a: 'Звісно. Ми маємо номери на пари, twin-номери для друзів і приватні шале.' },
];

const TESTIMONIALS = [
  { name: 'Анна К.', role: 'Product Lead, Kyiv', text: 'Поїхала сама, повернулася з 12 новими друзями і запуском спільного проєкту. Це не тур — це каталізатор.' },
  { name: 'Макс Р.', role: 'Founder, Remote', text: 'Четвертий заїзд. Вже не уявляю літо без Positive Vibes. Єдине місце, де реально відпускаю телефон.' },
  { name: 'Ольга Т.', role: 'Creative Director', text: 'Вайб-менеджер Ілля — чарівник. Атмосфера "своїх" — не маркетинг, це справді відчувається.' },
  { name: 'Діма Ш.', role: 'SaaS Founder', text: 'Найкраща інвестиція у ментальне здоров’я за рік. DJ Kantik-ніч досі в рекомендаціях у Spotify.' },
];

// Assign inline constants as initial values (API response will override async)
Object.assign(window, { TOURS, ROOMS, DAYS, INCLUDED, BRING, FAQ, TESTIMONIALS });
