using System;
using System.Collections.Generic;
using ChuPiao.AutoPrint.Machine.Models;
using ChuPiao.Common.Models;

namespace ChuPiao.AutoPrint.Machine
{
    public interface IMacReportService
    {
        #region 缴款报表
        /// <summary>
        /// 获取缴款报表的键码
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <returns></returns>
        List<KeycodeInfo> GetMachinePayMoneyReportKeycodeList(M_MachineEntity machineEntity);
        /// <summary>
        /// 解析缴款报表
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <param name="decodeMachinePayMoneyReport"></param>
        void DecodeMachinePayMoneyReport(M_MachineEntity machineEntity, DecodeMachinePayMoneyReport decodeMachinePayMoneyReport);
        #endregion
        #region 机器报表

        /// <summary>
        /// 获取机器报表的键码
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <param name="startDate"></param>
        /// <param name="enddate"></param>
        /// <returns></returns>
        List<KeycodeInfo> GetMachineReportKeycodeList(M_MachineEntity machineEntity, DateTime startDate, DateTime enddate);
        /// <summary>
        /// 解析机器报表
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <param name="decodeMachineReport"></param>
        void DecodeMachineReportReport(M_MachineEntity machineEntity, DecodeMachineReport decodeMachineReport);
        #endregion
        #region 机器玩法报表

        /// <summary>
        /// 获取机器玩法报表的键码
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <param name="lotPlayEntity"></param>
        /// <param name="startDate"></param>
        /// <param name="enddate"></param>
        /// <returns></returns>
        List<KeycodeInfo> GetMachinePlayReportKeycodeList(M_MachineEntity machineEntity, M_PlayTypeEntity lotPlayEntity, DateTime startDate, DateTime enddate);
        /// <summary>
        /// 解析机器玩法报表
        /// </summary>
        /// <param name="machineEntity"></param>
        /// <param name="decodeMachinePlayReport"></param>
        void DecodeMachinePlayReportReport(M_MachineEntity machineEntity, DecodeMachinePlayReport decodeMachinePlayReport);
        #endregion
    }
}
