Уведомление команды при создании запроса

Всем привет!
Думаю, понятная ситуация - уведомить команду о поступлении нового тикета.
Понятно, что когда тикет только создан, он ещё не принадлежит никакой команде, и, соответственно, по team_id ничего не получишь.
Судя по форуму, многие в работе триггеров для отправки уведомления всей команде используют запрос через “lnkContactToService”, но это противоречит принципу, что привязка команды к заказчику осуществляется через модель предоставления услуг.
То есть если есть услуга, которую предоставляют несколько команд, то уведомления получат все, кто работает над этой услугой, а не только та команда, которая привязана к данной организации через модель предоставления.
В связи с этим вопрос, можно ли как-то по ссылкам из запроса перейти к команде, указанной в модели предоставления услуг? Не нашёл такую связку в модели данных.
Ну или может как-то иначе решить вопрос.

Возможно, что есть и более просто решение. Я настряпал вот такое:

SELECT Contact AS c
JOIN lnkPersonToTeam AS l3 ON l3.person_id=c.id
JOIN Team AS t ON l3.team_id=t.id
JOIN lnkContactToService AS l2 ON l2.contact_id=t.id
JOIN lnkDeliveryModelToContact AS l1 ON l1.contact_id=t.id
JOIN DeliveryModel AS dm ON l1.deliverymodel_id=dm.id
JOIN Organization AS o ON o.deliverymodel_id=dm.id
WHERE o.id = :this->org_id AND l2.service_id = :this->service_id

Запрос выдаёт список всех членов команды, привязанной к организации инициатора тикета через модель оказания услуг и только для услуги, указанной в тикете. При этом команда для этой услуги должна быть указана и в контактах услуги, и в контактах модели (именно команда, а не персоны).
Результат будет пустым, если в тикете услуга не указана - такое возможно при создании тикета агентом через админку, а не пользователем через портал.

1 лайк

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