Skip to main content

Макет интерфейса

Ссылка на макет интерфейса: Unidraw Board

Экран интерфейса

Скриншот интерфейса

Источники данных

EndpointДанные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/123.jpg" }
GET /api/v1/restaurants
?search=итальянская
&type=ресторан
&cuisine=итальянская
&rating=4.5
&priceMin=1000
&priceMax=3000
&kidsMenu=true
Вернет массив объектов (ресторанов), которые удовлетворяют строке поиска или фильтрам:
{ "items": [ { "id": 123, "name": "Итальянский дворик", "photo": "https://example.com/photo1.jpg", "cuisine": ["итальянская", "европейская"], "averageCheck": 2500, "rating": 4.5 } ], "total": 42, "page": 1, "limit": 10 }
Кнопка "Выбрать" - переход на страницу ресторана/restaurants/{id}

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/123.jpg" }
GET /api/v1/restaurants/{id}{ "id": 123, "name": "Итальянский дворик", "rating": 4.5, "cuisine": ["итальянская", "европейская"], "averageCheck": 2500, "address": { "city": "Москва", "street": "ул. Ленина", "building": "10" }, "workingHours": { "open": "12:00", "close": "00:00", "days": "пн-вс" }, "description": "Уютный ресторан с итальянской кухней.", "photos": ["https://example.com/photo1.jpg", "https://example.com/photo2.jpg", "https://example.com/photo3.jpg"] }
GET /restaurants/{id}/tablesПереход на страницу выбора столика

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/123.jpg" }
GET /api/v1/restaurants/{id}/tables?date=2025-05-25&time=19:00&guests=4
пример параметров
Возвращается массив объектов (столиков). Столики отрисовываются на интерактивной карте
[ { "number": "7", "seats": 4, "isAvailable": true, "position": { "x": 100, "y": 200 } } ]
При нажатии на "Подтвердить" переходим на страницу, в параметрах данные о брони/booking/confirm?restaurantId={restaurantId}&tableId={tableId}&date={date}&time={time}&guests={guests}

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/123.jpg" }
/booking/confirm?restaurantId=123&tableId=12&date=2025-05-25&time=19:00&guests=4Данные о брони берутся из параметров URL
Чекбокс «Я согласен с правилами» – локальное состояние, проверяется перед отправкой. Если не согласен – кнопка неактивна.
POST /api/v1/bookings
При нажатии на кнопку "Забронировать" создается бронь.
При нажатии на кнопку "Отмена" возврат к предыдущему экрану /restaurants/{id}/tables

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/567.jpg" }
GET /api/v1/user/bookings?status=active
параметр для отображения активных броней
Возвращается массив объектов (брони)
[{ "id": 123, "restaurant": { "name": "Итальянский дворик" }, "table": { "number": "7" }, "guests": 4, "date": "2025-05-25", "time": "19:00", "status": "confirmed" }]
При нажатии на кнопку "Отменить"
DELETE /api/v1/bookings/{id}

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/567.jpg" }
При нажатии "Список броней"
GET /api/v1/admin/restaurant/bookings

При нажатии "Профиль"
GET /api/v1/admin/restaurant/profile
данные на макете вкладок

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/567.jpg" }
GET /api/v1/admin/restaurant/bookings?date=2025-05-25&status=confirmed
параметры, чтобы отфильтровать брони
Возвращается массив объектов (брони)
{ "items": [ { "id": 123, "date": "2025-05-25", "time": "19:00", "guests": 4, "table": { "number": "7" }, "status": "confirmed" } ], "total": 42, "page": 1, "limit": 20 }

Экран интерфейса

Скриншот интерфейса

Источники данных

endpointданные
GET /api/v1/user/header{ "avatarUrl": "https://booking.restaurants.ru/uploads/avatars/567.jpg" }
GET /api/v1/admin/restaurant/profile{ "name": "Итальянский дворик", "cuisine": ["итальянская", "европейская"], "averageCheck": 2500, "address": { "city": "Москва", "street": "ул. Ленина", "building": "10" }, "workingHours": { "open": "12:00", "close": "00:00", "days": "пн-вс" }, "description": "Уютный ресторан с итальянской кухней.", "photos": ["https://example.com/photo1.jpg", "https://example.com/photo2.jpg", "https://example.com/photo3.jpg"] }
PUT /api/v1/admin/restaurant/profile
После нажатия на кнопку "Сохранить".