Я переоцениваю свою модель и пытаюсь решить конкретную проблему.У меня есть Контакты, которые могут принадлежать Кампании, которая представляет собой последовательность действий, таких как телефонные звонки и электронные письма, каждый из которых имеет количество дней, назначенных в качестве атрибута, определяющего, когда он должен быть отправлен.
Я хочу, чтобы cronработа по просмотру и просмотру электронных писем, которые должны быть получены сегодня (или, возможно, просрочены), и отправка этих писем.
У всех контактов есть свои собственные даты начала.
Иногда вызов, который необходимоПроисходит, скажем, через 6 дней с начала, не завершается до 10 дней.Это означает, что электронная почта в той же кампании, которая должна быть отправлена через 8 дней с начала, должна быть отложена еще на 4 дня, до 12 дней с начала, но только для этого конкретного контакта, если задержанный звонок был для этого контакта.
Мне бы хотелось, чтобы люди подошли к моделированию этого и, в частности, в любой конкретный день придумали правильные электронные письма для отправки.
Некоторые проблемы, с которыми я столкнулся при своем подходе:
1) Когда нет письма для отправки, я ошибаюсь с nil.Я пытаюсь поймать это, задаваясь вопросом, есть ли лучший способ проверить.Как люди справляются с этим?
2) Как рассчитать задержку каскада?Я использую сложный способ первой проверки последней даты всего, что было выполнено (например, у завершенных элементов есть собственная запись в ContactEmail или ContactCalls).Затем я нахожу разницу в интервале с атрибутом «дни».Затем я добавляю этот интервал к дате завершения последнего элемента.