package cn.iocoder.boot.module.order.api;

import cn.iocoder.boot.module.order.api.dto.OrderItemRespDTO;
import cn.iocoder.boot.module.order.api.dto.OrderOperateLogDTO;
import cn.iocoder.boot.module.order.api.dto.OrderRespDTO;

import java.util.List;

/**
 * 订单 api
 */
public interface OrderApi {
    /**
     * 根据订单id或编号获取订单
     */
    OrderRespDTO getOrder(Long id, String orderNo);
    /**
     * 判断客户是否首单
     */
    boolean isFirstOrder(Long customerId);
    /**
     * 根据订单id获取所有订单项
     */
    List<OrderItemRespDTO> getOrderItemsByOrderId(Long orderId);
    /**
     * 添加订单操作日志
     */
    void createOrderOperateLog(OrderOperateLogDTO orderId);


    /**
     * 合并订单
     * @param customerIdSaved 保留客户id
     * @param customerIdDeleted 删除客户id
     * @return 是否合并成功
     */
    boolean mergeOrder(Long customerIdSaved, Long customerIdDeleted);
}
