Объект. Правило работает только на его брони — для каждого объекта свои правила
template_id
Шаблон из шаблонов. Рендерится под каждую бронь отдельно
channel_profile_id
Через какой профиль отправлять (должен быть привязан к объекту)
trigger_type
booking_created / before_checkin / checkout_day
offset_days
Для before_checkin: за сколько дней до заезда (1 = завтра)
send_time
Время «ЧЧ:ММ» для before_checkin и checkout_day. Пусто = сразу при проверке
enabled
Вкл/выкл без удаления
2. Как срабатывает каждый триггер
booking_created — функция ProcessBookingCreatedAutoMessages(bookingID) сразу при создании брони (авто или вручную). Без расписания.
before_checkin — планировщик ищет брони объекта с date(check_in) = сегодня + offset_days, время наступило (isAutoRuleTimeReached: текущие минуты ≥ send_time).
checkout_day — брони с date(check_out) = сегодня и наступившим временем.
Скрытые (is_hidden=1) и отменённые (payment_status='cancelled') пропускаются.
Дубль невозможен: пара (rule_id, booking_id) отправляется один раз (hasAutoMessageDispatch).
Отправка — dispatchAutoMessage(rule, bookingID): рендер шаблона + отправка через мессенджер профиля. Ошибка пишется в dispatches со статусом и текстом.
4. Не отправилось — чеклист
Правило enabled? Совпадает property_id с бронью?
У брони есть активный чат на канале правила? Без чата отправлять некуда.
Бронь не скрыта и не cancelled?
Для before_checkin/checkout_day: время send_time уже наступило? Дата совпала (offset_days)?
Не было ли уже отправки (таблица dispatches)? Проверьте историю чата.
📷 Скриншот: Правила автосообщенийassets/screenshots/automsg-rules.pngПоложите файл с этим именем в папку web-landing/assets/screenshots/ — он появится здесь автоматически