Как одноразовые уведомления реализованы в больших проектах?
Привет!
Вопрос простой, но интересна его правильная реализация.
Регистрируется клиент на сайте и ему показывается pop-up с короткой инструкцией, потому что он зашел в аккаунт самый первый раз. Затем похожее уведомление о том, что у нас скидка на premium аккаунты (рассказываем об этом один раз каждому клиенту).
И вот вопрос — как контролировать/хранить подобные "одноразовые" ситуации?
В БД создать для них отдельную таблицу с описаниями и устанавливать флаг? Правильно ли тогда будет, что каждый раз после входа в аккаунт нужно проверять, вызывался ли уже pop-up. А то, что это нужно проверять каждый раз, когда я захожу на страницу X?
Плюс типы событий могут быть разными — первое это всплывающее окно, второе появляющаяся кнопка в хедере, а третье — письмо, которое отправляется только один раз после того как я выполнил отдельное действие.
Как же всё это разделить и не запутаться, так, чтобы потом ещё и иметь возможность пополнять список этих уведомлений?
если в сообщениях прослеживается определенная очередность, то можно иметь в таблице user доп поле типа integer, например stage и выводить сообщения. Относительно према, наверняка отдельная логика. Так как есть таблица с платежными данными и т.д. И есть отдельный компонент, который хранит логику соединения всего этого и формирования сообщения.
Описанное Вами, ни что иное, как task-list автоматического менеджера, обслуживающего все аккаунты (на протяжении всего срока их существования).
1. Составляется таблица всех задач (task-list) для одного аккаунта (эталон). По мере надобности - пул может меняться: добавляться, редактироваться или меняться абсолютно полностью.
2. При создании нового аккаунта - ставятся авто-менеджеру эти задачи, применительно к новому аккаунту с отсчётом от срока активации аккаунта.
3. При входе пользователя - авто-менеджер берёт задачу из пула, и если есть что исполнять - исполняет: экскурсия по интерфейсу, оповещение о нововведениях и т.п.