const SITE = 'https://shumiland.com.ua' const PHONE = '+380671443635' const ADDRESS = { '@type': 'PostalAddress', streetAddress: 'проспект Академіка Глушкова 1', addressLocality: 'Kyiv', postalCode: '03127', addressCountry: 'UA', } as const const GEO = { '@type': 'GeoCoordinates', latitude: '50.37643634125753', longitude: '30.481764113469257', } as const const SAME_AS = [ 'https://www.instagram.com/shumiland_park', 'https://www.facebook.com/people/%D0%A8%D1%83%D0%BC%D1%96%D0%BB%D0%B5%D0%BD%D0%B4/61575845978823/', 'https://www.tiktok.com/@shumiland_park', ] const ALL_ATTRACTIONS = [ { name: 'Динопарк', description: 'Найбільші динозаври України у Шуміленді.' }, { name: 'Диволіс із казковими фігурами', description: 'Казковий ліс із чарівними фігурами для дітей.', }, { name: 'Дзеркальний лабіринт', description: 'Захоплюючий лабіринт із дзеркалами.' }, { name: 'Тир з призами', description: 'Розважальний тир із можливістю виграти призи.' }, { name: 'Дитячий майданчик', description: 'Ігрова зона для найменших відвідувачів.' }, { name: 'Програми з аніматорами', description: 'Веселі шоу та інтерактивні програми з аніматорами.', }, ] function attractions(isPartOf: string, count = ALL_ATTRACTIONS.length) { return ALL_ATTRACTIONS.slice(0, count).map((a) => ({ '@type': 'TouristAttraction', name: a.name, description: a.description, isPartOf, })) } const BUSINESS = { '@type': 'LocalBusiness', name: 'Парк Розваг «Шуміленд»', alternateName: 'Shumiland', url: `${SITE}/`, telephone: PHONE, address: ADDRESS, geo: GEO, openingHours: 'Mo-Su 10:00-20:00', sameAs: SAME_AS, } as const // 1. Home — https://shumiland.com.ua/ export const homePageJsonLd: Record = { '@context': 'https://schema.org', '@type': 'WebPage', name: 'Парк Розваг «Шуміленд»', url: `${SITE}/`, description: 'Сімейний парк розваг у Києві: динопарк, диволіс із казковими фігурами, дзеркальний лабіринт, тир з призами, дитячий майданчик, програми з аніматорами. Найбільші динозаври України.', mainEntity: { ...BUSINESS, offers: { '@type': 'Offer', url: `${SITE}/kvytky`, priceCurrency: 'UAH', availability: 'https://schema.org/InStock', }, containsPlace: attractions(`${SITE}/`), }, } // 2. Locations — /lokatsii export const locationsPageJsonLd: Record = { '@context': 'https://schema.org', '@type': 'CollectionPage', name: 'Локації у Парку Розваг «Шуміленд»', url: `${SITE}/lokatsii`, description: 'Перелік локацій у парку розваг «Шуміленд»: динопарк, диволіс із казковими фігурами, дзеркальний лабіринт, тир з призами, дитячий майданчик, програми з аніматорами.', mainEntity: { ...BUSINESS, offers: { '@type': 'Offer', url: `${SITE}/kvytky`, priceCurrency: 'UAH', availability: 'https://schema.org/InStock', }, containsPlace: attractions(`${SITE}/lokatsii`), }, } // 3. Birthdays — /dni-narodzhennia export const birthdayPageJsonLd: Record = { '@context': 'https://schema.org', '@type': 'WebPage', name: 'Дні народження у Парку Розваг «Шуміленд»', url: `${SITE}/dni-narodzhennia`, description: 'Організація дитячих та сімейних днів народження у парку розваг «Шуміленд» у Києві. Атракціони, динопарк, диволіс, дзеркальний лабіринт, тир з призами, дитячий майданчик та програми з аніматорами.', mainEntity: { '@type': 'Service', serviceType: 'Організація святкування днів народження', provider: BUSINESS, offers: { '@type': 'Offer', url: `${SITE}/dni-narodzhennia#order-form`, priceCurrency: 'UAH', availability: 'https://schema.org/InStock', }, containsPlace: attractions(`${SITE}/dni-narodzhennia`), }, } // 4. Group visits — /grupovi-vidviduvannia export const groupVisitsPageJsonLd: Record = { '@context': 'https://schema.org', '@type': 'WebPage', name: 'Групові відвідування у Парку Розваг «Шуміленд»', url: `${SITE}/grupovi-vidviduvannia`, description: 'Організація групових відвідувань у парку розваг «Шуміленд» у Києві. Доступні локації: динопарк та диволіс із казковими фігурами.', mainEntity: { '@type': 'Service', serviceType: 'Групові відвідування та екскурсії', provider: BUSINESS, offers: { '@type': 'Offer', url: `${SITE}/grupovi-vidviduvannia#order-form`, priceCurrency: 'UAH', availability: 'https://schema.org/InStock', }, containsPlace: attractions(`${SITE}/grupovi-vidviduvannia`, 2), }, }