388 lines
14 KiB
TypeScript
388 lines
14 KiB
TypeScript
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);
|
||
}
|
||
};
|