using New_College.Common;
using New_College.IServices.BASE;
using New_College.Model;
using New_College.Model.Models;
using New_College.Model.ViewModels;
using System.Threading.Tasks;

namespace New_College.IServices
{
    /// <summary>
    /// IV_OrderInfoServices
    /// </summary>	
    public interface IV_OrderInfoServices : IBaseServices<V_OrderInfo>
    {

        Task<CreateOrderModel> CreateOrder(UniOrderQuery query);

        Task<bool> UpdateOrderStatus(string orderNo, EnumPayType payType, string trade_no);


        /// <summary>
        /// 唤醒微信H5支付
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<string>> WechatPubPay(WeChatPayQuery query);

        /// <summary>
        /// 微信订单查询确认  传用户Id
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<bool>> WeChatPayStatus(IdQuery query);

        /// <summary>
        /// 支付宝 订单确认
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<bool>> AliPayStatus(IdQuery query);

        /// <summary>
        /// 获取vip信息（分页）
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<PageModel<OrderInfoQuery>>> GetOrderInfoByPage(SearchOrderQuery query);

        /// <summary>
        /// 支付成功后操作
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<string>> PaySuccess(V_OrderInfo query);

        /// <summary>
        /// 支付宝H5支付
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<MessageModel<AliOrderResult>> AliH5Pay(WeChatPayQuery query);

    }
}