Приложение для заказа еды. Покупатели закупают еду совместно. Для этого мы объединяем их в группы. Чтобы сделать заказ, браузер покупателя отсылает запрос на POST /orders с нужной инфой (корзина, и т д). Далее система добавляет его в таблицу orders и присваивает ему статус "в процессе". В процессе означает, что система ищет для него подходящую группу, не находит - создаёт новую для него. После пост запроса браузер начинает периодически обновлять /orders/{id} для обновления инфы о заказе. Как только она находит или создаёт группу, ему в ответе начинает присылаться инфа о группе - цена с каждого, исполнитель заказа, статус заказа. Вот тут у меня большой вопрос - есть статус заказа, а есть статус группы. Статус заказа требуется ещё до назначения группы - "группа не найдена", " группа найдена", "в процессе" и т д. И есть статус группы - исполнитель заказа выехал, заказ отменен исполнителем, заказ завершен и т д. Как мне быть? Foreachом обновлять статус заказа при изменении у группы у каждого orderа или создать отдельно статус группы и статус заказа?
Заказ и группа - вообще разные сущности, или группа - как коллекция заказов с общими свойствами? Если первое - все состояния храним раздельно, если второе - то скорее всего это те же статусы заказа, т.к. чем отличается "группа не найдена" и "исполнитель заказа выехал"? ИМХО оба относятся к заказу....