package com.aircraft.modules.order.service;

import com.aircraft.modules.order.domain.OrderDetail;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 订单明细表 服务类
 * </p>
 *
 * @author cli
 * @since 2025-07-10
 */
public interface IOrderDetailService extends IService<OrderDetail> {

    /**
     * 新增订单明细
     *
     * @param orderTask {@link OrderDetail}订单任务
     */
    OrderDetail addOrderDetail(OrderDetail orderTask);

    /**
     * 获取订单详情
     *
     * @param orderId  订单ID
     * @return  List<OrderDetail>
     */
    List<OrderDetail> queryOrderDetailByOrderId(Long orderId);

    /**
     * 根据订单ID删除订单详情
     *
     * @param orderId 订单ID
     */
    void deleteOrderDetailByOrderId(Long orderId);

    /**
     * 检查飞行员当前是否存在任务状态处于未进行或者进行中
     *
     * @param orderId  订单ID
     * @param orderInitiatorId  飞行员ID
     */
    void checkOrderDetail(Long orderId, Long orderInitiatorId);

    /**
     * 获取订单任务详情
     *
     * @param orderTaskId 订单任务ID
     * @return  {@link OrderDetail}
     */
    OrderDetail obtainOrderDetailById(Long orderTaskId);

    /**
     * 修改订单任务状态
     *
     * @param orderTaskId 订单任务ID
     * @param taskStatus  订单任务状态
     */
    void updateOrderTaskStatus(Long orderTaskId, Integer taskStatus);

    /**
     * 根据任务ID删除订单详情
     *
     * @param orderTaskId 订单任务ID
     */
    void deleteOrderDetailById(Long orderTaskId);
}
