Архитектура приложения Laravel с двумя ролями и третьим (посредником) между ними. Как пинг-понг

Заранее спасибо за помощь.

Я создаю приложение Laravel и придерживаюсь части его логики (возможно, я не знаю подходящего шаблона). У меня три роли в системе, скажем, Foo, Bar и Mediator. Фу отправляет предложение в Бар. Но Бар не получает его до того, как Посредник утвердит предложение. Подобно:

  1. Фу отправляет предложение. См. Отправить предложение на своей странице предложений со статусом Сообщение. Бар пока ничего не видит.
  2. Посредник видит предложение от Foo до Bar и может одобрить его, отклонить или одобрить с изменениями
  3. После того, как Посредник одобрил предложение, Бар начинает видеть это также. Но если он был одобрен с изменениями, Bar увидит предложение со статусом Message, Foo теперь будет иметь статус With изменения.
  4. Бар может ответить Foo на его предложение, и все идет в противоположном направлении (как Foo видит старое предложение и знает, что Bar ответил ему до того, как модератор одобрит его).

Давайте думать о предложениях, как сообщения для простоты.

Я думаю о реализации, чтобы создать OfferGroup с некоторыми столбцами, включая Foo, Bar, Foo_visibility, Bar_visibility, Foo_status, Bar_status. Предлагает себе место в другой модели, связанной с OfferGroup. Затем манипулируйте видимостью и статусами для OfferGroup для каждого действия. Логика манипулирования местом в Сервисе, работа с моделями в Репозитории.

Но на самом деле этот подход мне кажется сложным и не красивым.. Пожалуйста, поправьте меня, если я ошибаюсь.

0 ответов

Другие вопросы по тегам