Ответ
Функционал: «Групповой заказ» (Group Order).
Цель: Позволить нескольким пользователям (например, коллегам в офисе) совместно формировать и оплачивать один заказ из одного ресторана.
Основные сценарии:
- Организатор создает заказ и делится уникальной ссылкой или кодом.
- Участники переходят по ссылке, выбирают свои блюда из меню ресторана и указывают данные для доставки.
- Система в реальном времени отображает общий список выбранных позиций и сумму.
- Каждый участник оплачивает свою часть заказа отдельно (split payment).
- Организатор подтверждает и отправляет итоговый заказ в ресторан.
Ключевые технические аспекты для тестирования:
- Real-time обновления: Использование WebSockets или Firebase для синхронизации состояния заказа между всеми участниками.
- Раздельная оплата: Интеграция с платежными системами для обработки нескольких транзакций в рамках одного заказа.
- Валидация: Контроль времени жизни группового заказа, проверка доступности блюд у всех участников.
Пример структуры данных (упрощенно):
{
"groupOrderId": "ABC123",
"restaurantId": 456,
"items": [
{
"userId": "user_1",
"dishId": 789,
"price": 12.50
}
],
"status": "collecting" // collecting, paid, sent_to_restaurant
}