Как уведомить подписанных пользователь об изменении сайта?
Есть приложение, которое построенно на игровых турнирах. И пользователь сайта, может "вступить"(зарегистрироваться) в этот турнир. Теперь вопрос, как можно уведомить пользователя об изменениях?
Как я понимаю, в новую ДТО-модель можно будет добавить аттрибут "isChanged", которое будет булевым, очевидно. Но как с ним работать? Точнее, ну поменялась запись она станет условно true, а потом как быть, если еще раз изменилась?
Добавить 2 поля "время изменения" и "время уведомления". Если "время изменения" больше чем "время уведомления", то рассылать уведомление и обновлять время.
А подскажи пожалуйсnа, эти изменения, точнее добавления двух новых аттрибутов должны быть в БД? Или можно создать какую-то ДТО, которая будет хранить в себе "время изменения" и "время уведомления"?
embiid, ну ежели надо энергонезависимо их хранить, то надо класть в базу конечно. Иначе после перезагрузки все потеряется. Ну или если будет несколько реплик, то тоже надо в базу, чтобы эта информация была для всех доступна.
GameNotification
id - guid
name - nvarchar(100)
template - nvarchar(MAX)
start - datetime
end - datetime
NotifiedUser
GameNotificationId - guid
UserId - guid -- GameNotificationId - UserId Составной ключ
notified - bit
start - dateTime
end - datetime
retryCount - byte
chanel - byte
В коде создаете нотификацию в таблице GameNotification
После создаете пачку записей в NotifiedUser, какой то фоновый процесс их распространяет ставя статус отправки и отправляя по нужному каналу который человек указал (например в почту или на смс)