package com.erp.platformsync.service.pdd;

import com.erp.platformsync.dto.pdd.PddGoodsDTO;
import com.erp.platformsync.dto.pdd.PddOrderDTO;
import com.erp.platformsync.dto.pdd.PddWaybillDTO;

import java.util.List;

/**
 * 拼多多订单服务接口
 */
public interface PddOrderService {

    /**
     * 获取订单列表
     *
     * @param shopId    店铺ID
     * @param status    订单状态（可选）
     * @param startTime 开始时间（可选）
     * @param endTime   结束时间（可选）
     * @param page      页码
     * @param pageSize  每页数量
     * @return 订单列表
     */
    List<PddOrderDTO> getOrders(Long shopId, String status, String startTime, String endTime, Integer page, Integer pageSize);

    /**
     * 获取订单详情
     *
     * @param orderSn 订单编号
     * @return 订单详情
     */
    PddOrderDTO getOrderDetail(String orderSn);

    /**
     * 获取商品列表
     *
     * @param shopId    店铺ID
     * @param goodsName  商品名称（可选）
     * @param page       页码
     * @param pageSize   每页数量
     * @return 商品列表
     */
    List<PddGoodsDTO> getGoods(Long shopId, String goodsName, Integer page, Integer pageSize);

    /**
     * 获取商品详情
     *
     * @param goodsId 商品ID
     * @return 商品详情
     */
    PddGoodsDTO getGoodsDetail(Long goodsId);

    /**
     * 申请运单
     *
     * @param orderSn       订单编号
     * @param logisticsCode  物流公司编码
     * @param senderName     发货人姓名
     * @param senderPhone    发货人电话
     * @param senderAddress  发货人地址
     * @return 运单信息
     */
    PddWaybillDTO applyWaybill(String orderSn, String logisticsCode, String senderName, String senderPhone, String senderAddress);

    /**
     * 获取运单轨迹
     *
     * @param waybillCode 运单号
     * @return 轨迹信息
     */
    String getWaybillTracking(String waybillCode);
}
