using System.Threading.Tasks;
using Datory;
using GxPress.Common.Page;
using GxPress.Request.Order;
using GxPress.Result.Order;

namespace GxPress.Repository.Interface.Order
{
    public interface IOrderRepository : IRepository
    {
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<PagedList<Entity.Order.Order>> GetAllOrderAsync(OrderSearchRequest request);
        /// <summary>
        /// 财务中心
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<OrderFinanceResult<Entity.Order.Order>> GetAllOrderFinnceAsync(OrderFinanceSearchRequest request);
         /// <summary>
        /// 添加
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        Task<int> InsertAsync(Entity.Order.Order order);
          /// <summary>
        ///获取订单
        /// </summary>
        /// <param name="orderNumber"></param>
        /// <returns></returns>
        Task<Entity.Order.Order> GetOrderAsync(string orderNumber);
        Task<bool> UpdateAsync(Entity.Order.Order order);
        Task<bool> GetExistsAsync(int userId, int mediaId);
    }
}