package com.yami.shop.service.hb;

import com.alibaba.fastjson.JSONObject;
import com.yami.shop.common.util.hb.HBR;

/**
 * 商品信息接口
 *
 * @author fubojin
 * @version 1.0.0
 * @since 2025-09-5
 */
public interface IHBOrderService {


    /**
     * 海博订单详情-回调
     *
     * @param hbRequest 海博订单详情请求参数
     * @return 订单详情响应
     */
    HBR details(JSONObject hbRequest);

    /**
     * 海博订单创建接口-推送接口
     *
     * @param channelOrderId 海博订单请求参数
     * @return 前台类目响应
     */
    String createOrderAsync(String channelOrderId);

    /**
     * 海博订单修改状态接口-推送接口
     *
     * @param channelOrderId 海博订单请求参数
     * 订单类型 （20：订单已接单 30：订单待配送 60：订单已取消 80：订单已完成）
     * @return 订单详情响应
     */
    String changeOrderStatus(String channelOrderId, Integer type);

    /**
     * 海博订单创建接口-结果接口
     *
     * @param hBRequest 海博订单结果请求参数
     * @return 订单结果响应
     */
    HBR createOrderResult(JSONObject hBRequest);

    /**
     * 海博修改订单状态接口-结果接口
     *
     * @param hBRequest 海博订单结果请求参数
     */
    void orderStatusNotify(JSONObject hBRequest);

    /**
     * 订单物流状态接口-结果接口
     * @param hBRequest 海博订单结果请求参数
     */
    void updateLogisticStatus(JSONObject hBRequest);

    /**
     * 配送员位置接口-结果接口
     * @param hBRequest 海博订单结果请求参数
     */
    void riderLocation(JSONObject hBRequest);


    /**
     * 订单-发货消息（下行）
     * @param hBRequest 海博订单结果请求参数
     */
    void deliveryMsg(JSONObject hBRequest);

    /**
     * 商家自提接口-结果接口
     * @param hBRequest 海博订单结果请求参数
     */
    void merchantToSelf(JSONObject hBRequest);

    void syncHBOrder();
}
