using BPA.SAAS.Manage.Application.AExternalPlatform.BaseDto;
using BPA.SAAS.Manage.Application.AExternalPlatform.Service.ThirdpartyPush.Dtos;
using BPA.SAAS.Manage.Core.System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.SAAS.Manage.Application.AExternalPlatform.Service.ThirdpartyPush.Services
{
    public interface IThirdpartyPushService
    {
        #region 设备 回调级下发数据和记录

        /// <summary>
        /// 下发到设备
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> PushDevice(List<PushDeviceDto> inputDto);

        /// <summary>
        /// 添加 三方 回调设备记录
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> AddThirdpartyPushRecord(BPA_ThirdpartyPushRecord inputDto);

        /// <summary>
        /// 修改 第三方订单的回调
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> UpdateThirdpartyPushRecord(ThirdpartyPushRecordDto inputDto);

        /// <summary>
        /// 添加下发记录和下发数据
        /// </summary>
        /// <param name="inputDto"></param>
        /// <param name="type"> 2:物料</param>
        /// <param name="pushData">改动的数据 如物料的id  商品的id  订单的订单号</param>
        /// <param name="pushMQData">下发到设备的数据 json</param>
        /// <returns></returns>
         Task<bool> AddPushRecordAndPushDevice<T>(BaseRequestDto<T> inputDto, int type, string pushData,string pushMQData);

        /// <summary>
        /// 更具店铺获取设备
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<List<string>> GetDeviceByStoreId(List<string> inputDto);

        #endregion
    }
}
