Архитектура приложения Laravel с двумя ролями и третьим (посредником) между ними. Как пинг-понг
Заранее спасибо за помощь.
Я создаю приложение Laravel и придерживаюсь части его логики (возможно, я не знаю подходящего шаблона). У меня три роли в системе, скажем, Foo, Bar и Mediator. Фу отправляет предложение в Бар. Но Бар не получает его до того, как Посредник утвердит предложение. Подобно:
- Фу отправляет предложение. См. Отправить предложение на своей странице предложений со статусом Сообщение. Бар пока ничего не видит.
- Посредник видит предложение от Foo до Bar и может одобрить его, отклонить или одобрить с изменениями
- После того, как Посредник одобрил предложение, Бар начинает видеть это также. Но если он был одобрен с изменениями, Bar увидит предложение со статусом Message, Foo теперь будет иметь статус With изменения.
- Бар может ответить Foo на его предложение, и все идет в противоположном направлении (как Foo видит старое предложение и знает, что Bar ответил ему до того, как модератор одобрит его).
Давайте думать о предложениях, как сообщения для простоты.
Я думаю о реализации, чтобы создать OfferGroup с некоторыми столбцами, включая Foo, Bar, Foo_visibility, Bar_visibility, Foo_status, Bar_status. Предлагает себе место в другой модели, связанной с OfferGroup. Затем манипулируйте видимостью и статусами для OfferGroup для каждого действия. Логика манипулирования местом в Сервисе, работа с моделями в Репозитории.
Но на самом деле этот подход мне кажется сложным и не красивым.. Пожалуйста, поправьте меня, если я ошибаюсь.