using BPA.KitChen.GroupMeal.Application.BaseDto;
using BPA.KitChen.GroupMeal.Application.Service.OneCard.DiningPlate.Dtos;
using BPA.KitChen.GroupMeal.Core.Entity;
using BPA.KitChen.GroupMeal.Core.Enum;
using Furion.DatabaseAccessor;
using Furion.FriendlyException;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.KitChen.GroupMeal.Application.Service.OneCard.DiningPlate.Service
{
    public interface IDiningPlateService
    {

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<PageUtil> Page(DiningPlatePageIndexDto inputDto);

        /// <summary>
        /// 新增餐盘 
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> Add(DiningPlateCreateOrUpdataDto inputDto);


        /// <summary>
        /// 修改餐盘
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> Update(DiningPlateCreateOrUpdataDto inputDto);


        /// <summary>
        /// 启用警用
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> EnableDisable(DiningPlateCreateOrUpdataDto inputDto);


        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> Del(string id);

        /// <summary>
        /// 解除占用
        /// </summary>
        /// <returns></returns>
        Task<bool> UnbindOccupy(List<DiningPlateOccupyDto> inputDto);

        /// <summary>
        /// 获取餐盘信息
        /// </summary>
        /// <param name="diningPlateId"></param>
        /// <returns></returns>
         Task<List<DiningPlateDto>> GetDiningPlateInfo(List<string> inputDto);

        /// <summary>
        /// 获取餐盘信息更具二维码
        /// </summary>
        /// <param name="diningPlateId"></param>
        /// <returns></returns>
        Task<DiningPlateDto> GetDiningPlateInfoByQRCode(GetDiningPlateInfoByQRCodeDto inputDto);

        /// <summary>
        /// 根据芯片码获取  餐盘
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<List<DiningPlateDto>> GetDiningPlateInfoByChipCodeList(GetDiningPlateInfoByChipCodeListDto inputDto);

        /// <summary>
        /// 获取餐盘信息更具id
        /// </summary>
        /// <param name="diningPlateId"></param>
        /// <returns></returns>
         Task<DiningPlateDto> GetDiningPlateInfoById(GetDiningPlateInfoByIdDto inputDto);


    }
}
