Order Service — X/Z отчёты смены
Контракт
Задачи
Endpoint
-
GET /internal/orders/shift-report— новый internal endpoint- Query params:
store_id(required),employee_id(optional),from(required),to(required) - Auth: Service Token (
X-Service-Token)
- Query params:
Логика агрегации
- SQL-запрос: фильтрация заказов по
paid_at BETWEEN :from AND :to,store_id,employee_id(optional) - Агрегация:
SUM(paid_amount),COUNT(*),COUNT по status - Разбивка по
payment_method:SUM CASE WHEN payment_method = 'cash'/'card'/'qr' - Средний чек:
total_revenue / completed_orders(защита от деления на 0) - Топ товаров: subquery по
order_items,GROUP BY product_id,ORDER BY SUM(unit_price * quantity) DESC,LIMIT 10
Тесты
- Unit-тест: агрегация с разными payment_method
- Unit-тест: пустой период (0 заказов)
- Unit-тест: фильтрация по employee_id
- Integration-тест: endpoint с Service Token