/** * * @param array $users array<UserModel> * @param ProjectSettingsModel $project * @param string $subject * @param string $smsTemplate * @param string $emailTemplate * @param string $htmlEmailTemplate * @param DeliveryInterface|null $delivery * @return string */ public static function communicateToUsers($users, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate = '', DeliveryInterface $delivery = null) { // store message in database $messageModel = new MessageModel($project); $messageModel->subject = $subject; $messageModel->content = $emailTemplate; $messageId = $messageModel->write(); foreach ($users as $user) { self::communicateToUser($user, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate, $delivery); $unreadModel = new UnreadMessageModel($user->id->asString(), $project->id->asString()); $unreadModel->markUnread($messageId); $unreadModel->write(); } SmsQueue::processQueue($project->databaseName()); return $messageId; }
public static function markMessageRead($projectId, $messageId, $userId) { $unreadModel = new UnreadMessageModel($userId, $projectId); $unreadModel->markRead($messageId); $unreadModel->write(); }