using ASHermed.AdminInterface.Api.ContractModel;
using ASHermed.SinoInterface.Api.ContractModel;
using ASHermed.SinoInterface.Api.ContractModel.App;
using ASHermed.SinoInterface.Api.ContractModel.Framework.Login;
using ASHermed.SinoInterface.Api.ContractModel.Payment;
using ASHermed.SinoInterface.Api.ContractModel.Payment.Model;
using ASHermed.SinoInterface.Api.ContractModel.Payment.Param;
using ASHermed.SinoInterface.ContractModel;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace ASHermed.SinoInterface.Api.IService
{
    /// <summary>
	///
	/// </summary>
	public interface IOrderService
    {
        BaseResponse<ResOrder> CreateOrder(OrderModel model);
        BaseResponse<ResOrder> CreateOrderForSource(int language);
        BaseResponse<string> OverOrder(string orderNo);
        string PerfPayInfoByNo(string model);
        string AppPerfPayInfoByNo(string model);
        PageListModel<OrderListModel> GetOrderList(OrderListReq req);
        OrderDetailModel GetOrderDetail(string orderNo, int language);
        string GetRefundNo(Online_Order order, string user);
        BaseResponse CancelOrder(string orderNo, bool isForce = false);
        BaseResponse CommentOrder(OrderCommentReq req);

        BaseResponse InsuranceOrderSign(InsuranceOrderSignReq req);
        int UpdateOrderStatus(string orderNo, int status);
        List<string> GetCancelOrders();
        List<string> GetCancelOrderSource();
        void UpdateOrderSourceStatus(string orderNo, int status);
        BaseResponse AptOrderConfirm(ReVisitComfirm model);

        string GetGroupOrderNo(string groupId);

        List<TreatedInfo> GetReadyApt(int language);
        List<TreatedInfo> GetCignaApt(int language);
        bool PushUserMessage(Pub_User_Info user, string jgPushType, string title, string content, string url = "");
        UserRedInfo GetMyRedPoint();
        int ReadMyPatReport(int patId);
        BaseResponse<LcTradeRefundModel> OrderRefund(RefundInfo info);
        int TestPush();
    }
}
