import { Request, Response } from 'express'; import { v4 as uuid } from 'uuid'; import { PAGE_LINK, TextSection } from '../../../constants'; type TitleText = { age?: { styles?: object; text: string; }; description?: string; id?: string; labels?: { items: { mark?: true; markMobile?: true; text: string; }[]; styles?: object; }; mobileDescription?: string; mobileTitle?: string; partySize?: { max: number; min: number; styles?: object; }; subtitle?: string; time?: { styles?: object; text: string; }; title: string; }; const birthdayTitleText: TitleText = { description: 'Организуем незабываемый праздник в новом формате: выгодные комбо, тематические программы, ' + 'творческие мастер-классы и многое другое ждёт Вас \\n в нашем мире развлечений', mobileDescription: 'Организуем незабываемый праздник\\n ' + 'в новом формате: выгодные комбо,\\n ' + 'тематические программы, творческие\\n ' + 'мастер-классы и многое другое ждёт Вас\\n' + ' в нашем мире развлечений', title: 'День Рождения', }; const graduationTitleText: TitleText = { description: 'Организуем незабываемый праздник в новом формате: выгодные комбо, индивидуальные дипломы, ' + 'творческие мастер-классы и многое другое ждёт вас в нашем мире развлечений', mobileDescription: 'Организуем незабываемый праздник\\n' + 'в новом формате: выгодные комбо,\\n' + 'индивидуальные дипломы, творческие\\n' + 'мастер-классы и многое другое ждёт вас\\n' + 'в нашем мире развлечений', title: 'Выпускной', }; const outdoorsTitleText: TitleText = { description: 'Организуем незабываемый праздник в новом формате: выгодные комбо, ' + 'тематические программы, творческие мастер-классы и многое другое ждёт вас в нашем мире развлечений', title: 'Выездной праздник', }; const questsTitleText: TitleText = { description: 'Выбираете квест для ребенка? Может, для компании\\n своих друзей/коллег? ' + 'Или просто хотите отдохнуть всей семьей?\\n\\n' + 'У нас есть решения под любые цели и для любых возрастов!', mobileDescription: 'Выбираете квест для ребенка?\\n Может, для компании своих друзей/коллег?\\n' + 'Или просто хотите отдохнуть всей семьей?\\n\\n' + 'У нас есть решения под любые цели\\n и для любых возрастов!', title: 'Квесты', }; const faqTitleText: TitleText = { description: 'Раздел с подробной информацией по каждой услуге. Чтобы посмотреть ответы на вопросы, выберите интересующую Вас категорию', title: 'Часто задаваемые вопросы', }; const contactsTitleText: TitleText = { description: 'Раздел с подробной информацией о способах связи. Если у Вас остались вопросы, оставьте заявку на обратный звонок', title: 'Контактная информация', }; const aboutTitleText: TitleText = { description: 'История открытия и развития Аркидс Парка\\n и то, что мы делаем для Вас сегодня', title: 'Информация о парке', }; const masterClassesTitleText: TitleText = { description: 'Сделайте праздник ярче, добавив фирменный мастер-класс\\n ' + 'к любой комбо-программе из категорий «День Рождения»,\\n «Выпускной», «Выездной праздник»', title: 'Мастер-классы', }; const showProgramsTitleText: TitleText = { description: 'Сделайте праздник ярче, добавив фирменное шоу\\n' + ' к любой комбо-программе из категорий «День Рождения», «Выпускной», «Выездной праздник»', title: 'ШОУ-ПРОГРАММЫ\n И ДИСКОТЕКИ', }; const priceTitleText: TitleText = { description: 'Чтобы ознакомиться со стоимостью услуг,\\n' + 'выберите интересующую Вас категорию', mobileDescription: 'Чтобы ознакомиться\\n' + 'со стоимостью услуг, выберите\\n' + 'интересующую Вас категорию', title: 'Ценовая политика ', }; const maintenanceTitleText: TitleText = { description: 'Едете с детьми на свадьбу, корпоратив или сами организуете\\n' + 'выездное мероприятие? Мы знаем, как помочь Вам отдохнуть\\n' + 'и организовать детский досуг!', subtitle: 'на мероприятиях', title: 'СОПРОВОЖДЕНИЕ ДЕТЕЙ', }; const maintenanceSteps = [ { description: 'Заполните заявку на странице,\\n' + 'указав контактную информацию,\\n' + 'формат мероприятия и адрес', id: uuid(), }, { description: 'Обсуждаем с Вами дату, программу\\n' + 'и развлечения, учитываем интересы\\n' + 'детей и пожелания родителей', id: uuid(), }, { description: 'Составляем план мероприятия\\n' + '(сборы, игры, тематика, тайминг)\\n' + 'и согласовываем стоимость', id: uuid(), }, { description: 'Теперь можно не переживать за детей\\n' + 'и спокойно отдыхать: организацию\\n' + 'досуга маленьких гостей мы взяли на себя!', id: uuid(), }, ]; const themedCombosTitleText: TitleText = { age: { text: '2-15', }, labels: { items: [ { mark: true, markMobile: true, text: 'командные игры и эстафеты' }, { mark: true, markMobile: true, text: 'торжественное поздравление именинника' }, { mark: true, markMobile: true, text: 'интерактивная игра с элементами квеста' }, { mark: true, markMobile: true, text: 'сюжетная анимационная программа' }, { mark: true, markMobile: true, text: 'шоу программа' }, { mark: true, markMobile: true, text: 'творческий мастер-класс' }, ], }, partySize: { max: 30, min: 4, }, time: { text: '3 часа', }, title: 'Тематические комбо', }; const themedCombosBannerText = { description: 'проводятся в едином пространстве костюмированным аниматором', mobileDescription: 'проводятся в едином пространстве', title: 'Новые программы с тематическим\\n' + 'реквизитом и оформлением', }; const masterClassesInfo = [ 'Знакомимся и проводим общий инструктаж', 'Рассказываем и показываем, как пользоваться реквизитом', 'Начинаем процесс изготовления в выбранной тематике', 'Упаковываем готовое изделие, которое ребенок заберёт с собой', ]; const contactsDescriptionText = [ { description: 'Мы находимся в Торговом Центре «Ашан» (бывший «Атак») на 3 этаже. ' + 'Ближайшие ориентиры: пожарная станция, стадион «Труд», кинотеатр «Родина»', id: uuid(), title: 'Как добраться', }, { description: 'На территории Торгового Центра расположена стихийная парковка. ' + 'Также автомобиль можно оставить около «Пятерочки» через дорогу', id: uuid(), title: 'Гостям на личном авто', }, { description: 'На автобусе до остановки «кинотеатр «Родина». ' + 'Далее пешком 5 минут по улице Клемента Готвальда до серого 8-этажного здания', id: uuid(), title: 'Своим ходом', }, ]; const contactsInfo = { address: { city: 'Подольск', street: 'ул. Клемента Готвальда, 6В\\n Этаж 3, помещения 16, 18', }, links: { mail: 'arkids@park.ru', vk: 'https://vk.com/armanty', }, phone: { phones: [ '+7 (926) 982-14-94', '+7 (925) 720-56-54', '+7 (966) 337-96-94', ], schedule: 'с 9:00 до 24:00', }, }; const parkInfo = { text: '- интерактивный парк нового поколения,\\n' + ' объединяющий популярные услуги\\n' + ' и развлечения для детей и взрослых', title: 'Аркидс Парк', }; export const getTitle = (req: Request, res: Response) => { // @ts-ignore const { body } = req; const { page, section } = body; switch (page) { case PAGE_LINK.BIRTHDAY: { switch (section) { case TextSection.TITLE: return res.status(200).json(birthdayTitleText); default: return res.status(404); } } case PAGE_LINK.GRADUATION: { switch (section) { case TextSection.TITLE: return res.status(200).json(graduationTitleText); default: return res.status(404); } } case PAGE_LINK.OUTDOORS: { switch (section) { case TextSection.TITLE: return res.status(200).json(outdoorsTitleText); default: return res.status(404); } } case PAGE_LINK.QUESTS: { switch (section) { case TextSection.TITLE: return res.status(200).json(questsTitleText); default: return res.status(404); } } case PAGE_LINK.HOME: { switch (section) { case TextSection.PARK: return res.status(200).json(parkInfo); default: return res.status(404); } } case PAGE_LINK.FAQ: { switch (section) { case TextSection.TITLE: return res.status(200).json(faqTitleText); default: return res.status(404); } } case PAGE_LINK.CONTACTS: { switch (section) { case TextSection.TITLE: return res.status(200).json(contactsTitleText); case TextSection.DESCRIPTION: return res.status(200).json(contactsDescriptionText); case TextSection.INFO: return res.status(200).json(contactsInfo); default: return res.status(404); } } case PAGE_LINK.ABOUT: { switch (section) { case TextSection.TITLE: return res.status(200).json(aboutTitleText); default: return res.status(404); } } case PAGE_LINK.MASTER_CLASSES: { switch (section) { case TextSection.TITLE: return res.status(200).json(masterClassesTitleText); case TextSection.INFO: return res.status(200).json(masterClassesInfo); default: return res.status(404); } } case PAGE_LINK.SHOW_PROGRAMS: { switch (section) { case TextSection.TITLE: return res.status(200).json(showProgramsTitleText); default: return res.status(404); } } case PAGE_LINK.PRICE: { switch (section) { case TextSection.TITLE: return res.status(200).json(priceTitleText); default: return res.status(404); } } case PAGE_LINK.THEMED_COMBOS: { switch (section) { case TextSection.TITLE: return res.status(200).json(themedCombosTitleText); case TextSection.BANNER: return res.status(200).json(themedCombosBannerText); default: return res.status(404); } } case PAGE_LINK.MAINTENANCE: { switch (section) { case TextSection.TITLE: return res.status(200).json(maintenanceTitleText); case TextSection.STEPS: return res.status(200).json(maintenanceSteps); default: return res.status(404); } } default: return res.status(404); } };