using SptCommon.Annotations; using Core.Models.Eft.Profile; using Core.Models.Eft.Ws; namespace Core.Helpers; [Injectable(InjectionType.Singleton)] public class NotifierHelper(HttpServerHelper _httpServerHelper) { protected WsPing ping = new WsPing(); public WsNotificationEvent GetDefaultNotification() => ping; /** * Create a new notification that displays the "Your offer was sold!" prompt and removes sold offer from "My Offers" on clientside * @param dialogueMessage Message from dialog that was sent * @param ragfairData Ragfair data to attach to notification * @returns */ public WsRagfairOfferSold CreateRagfairOfferSoldNotification( Message dialogueMessage, MessageContentRagfair ragfairData) { return new WsRagfairOfferSold{ EventType = NotificationEventType.RagfairOfferSold, EventIdentifier = dialogueMessage.Id, OfferId = ragfairData.OfferId, HandbookId = ragfairData.HandbookId, Count = ragfairData.Count }; } /** * Create a new notification with the specified dialogueMessage object * @param dialogueMessage * @returns */ public WsChatMessageReceived CreateNewMessageNotification(Message dialogueMessage) { return new WsChatMessageReceived { EventType = NotificationEventType.new_message, EventIdentifier = dialogueMessage.Id, DialogId = dialogueMessage.UserId, Message = dialogueMessage, }; } public string GetWebSocketServer(string sessionID) { return $"{_httpServerHelper.GetWebsocketUrl()}/notifierServer/getwebsocket/{sessionID}"; } }