Здравствуйте.
Нужно исправить 3 кейса при покупке билетов на стендап.
1. При проверке промокода для отображения цены со скидкой нужно не считать ее на frontend, а брать ту, которую прислал api.
ТЗ на промокоды (этот функционал уже реализован) описано в фигме на макете виджета продажи билетов: https://www.figma.com/design/LreqcDlVNzzJDWMlUJx11B/GoStandup.ru%3A-%D0%BF%D1%80%D0%BE%D0%BC%D0%BE%D0%BA%D0%BE%D0%B4%D1%8B?node-id=0-1&t=3nGFVvZWXmF6i8Mf-1
2. При выборе места API может вернуть ошибку. В таком случае надо не только показывать ошибку, которую прислал api, но и это место надо убирать с карты зала и отображать его как проданное, чтобы пользователь уже не мог его выбрать.
3. Страница успешной оплаты отображается в iframe, на фоне виджета со схемой зала и страницы события.
Есть два вида событий. Одни продаются чисто в нашей системе, для других все билетные операции проходят через шлюз. В первом случае после закрытия iframe с успехом меню ввода данных покупателя скрывается, места помечаются оплаченными и уже недоступны к покупке, и юзера всё устраивает. Во втором — этого не происходит и это не ожидаемое поведение для юзера. При этом дальнейшие манипуляции вызывают ошибки, так как места по факту уже заняты.
Кейсы снабжены видео и подробными описаниями от тестировщика. Также есть полностью отрисованный процесс заказа билетов.
Работу самого виджета можно посмотреть здесь:
https://gostandup.ru/samara/events/lampovoe_shou/id72087
Стек веб-приложения:
Vue3, nuxt, SASS, Vuex, Pinia, TypeScript.
Docker;
Websockets (CentrifugeJS)
На бекенде функционал реализован, есть swagger.
В ответе просьба написать:
1. Ваши вопросы.
2. Стоимость вашей работы или стоимость часа.
3. Ссылки на примеры реализованных проектов на Vue.