using APT.Infrastructure.Core;
using APT.BaseData.Domain.ApiModel.EX;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using System.Collections.Generic;
using APT.Infrastructure.Api;
using System;
using static APT.BaseData.Domain.ApiModel.SocketInfo;

namespace APT.BaseData.Domain.IServices.FM
{
    public interface IFMNotificatoinService: ICommonService
    {
        /// <summary>
        /// 发送通知公告
        /// </summary>
        /// <param name="notificationType"></param>
        /// <param name="title"></param>
        /// <param name="message"></param>
        void SendNotification(FMNotificationTypeEnum notificationType, FMNotificationClientTypeEnum clientType, string title, string message);
        /// <summary>
        /// 发送通知公告
        /// </summary>
        /// <param name="sendNotificationModel"></param>
        /// <param name="ingoreClientInfos"></param>
        void SendNotification(SendNotificationModel sendNotificationModel, List<WebSocketClientInfo> ingoreClientInfos);

        /// <summary>
        /// 发送报警通知公告
        /// </summary>
        /// <param name="sendNotificationModel"></param>
        /// <param name="ingoreClientInfos"></param>
        void SendAlarmNotification(SendNotificationModel sendNotificationModel, List<WebSocketClientInfo> ingoreClientInfos);
        void SendNotification(Guid userId, SocketData socketData);
    }
}
