using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Waste.Application.ThirdApiInfo;

namespace Waste.Application.SubscribeInfo
{
    /// <summary>
    /// CAP订阅相关接口
    /// </summary>
    public interface ISubscribeService
    {
        /// <summary>
        /// 添加记录
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task InsertResultAsync(ResultS2SDto data);
        /// <summary>
        /// 更新记录上报结果
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task UpdateStatusAsync(UpdateStatusDto data);
        /// <summary>
        /// 更新设备开机信息
        /// </summary>
        /// <param name="deviceid"></param>
        /// <returns></returns>
        Task UpdateRegInfoAsync(Guid deviceid);
        /// <summary>
        /// 心跳数据上报
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task UpdateHeartInfoAsync(DevHeartRequestDto data);

        /// <summary>
        /// 更新设备版本信息
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task UpdateVersionAsync(DeviceVerS2SDto data);
        /// <summary>
        /// 4G模块传输的数据增加测量记录
        /// </summary>
        /// <param name="myPackage"></param>
        /// <returns></returns>
       Task Insert4GResultAsync(nMyPackage myPackage);
        /// <summary>
        /// A8 4G模块传输的数据增加测量记录
        /// </summary>
        /// <param name="myPackage"></param>
        /// <returns></returns>
        void InsertA84GResultAsync(A8MyPackage myPackage);
        /// <summary>
        /// 测试,4G模块传输的数据增加测量记录
        /// </summary>
        /// <param name="myPackage"></param>
        /// <returns></returns>
        void Test(nMyPackage myPackage);
        /// <summary>
        /// 第三方推送设备消息
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task SeedThirdMessageAsync(SendThirdMessageSubscriDto data);
    }
}
