package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
import com.ym.mec.biz.dal.entity.Goods;
import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
import com.ym.mec.biz.dal.enums.DealStatusEnum;
import com.ym.mec.common.exception.BizException;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface StudentPaymentOrderDetailService extends BaseService<Long, StudentPaymentOrderDetail> {


    /**
     * 批量添加订单
     *
     * @param studentPaymentOrderDetailList
     * @return
     */
    int batchAdd(List<StudentPaymentOrderDetail> studentPaymentOrderDetailList);

    /**
     * 查询注册支付的订单详情
     * @param musicGroupId
     * @param status
     * @return
     */
    List<StudentPaymentOrderDetail> findApplyOrderSuccess(String musicGroupId, DealStatusEnum status);

    /**
     * 获取乐器的采购清单
     * @param musicGroupId
     * @return
     */
    List<Goods> getMusicalList(String musicGroupId);

    /**
     * 确认采购清单
     * @param musicGroupId
     * @return
     */
    Boolean verifyMusicalList(String musicGroupId) throws BizException;

    /**
     * 查询订单商品
     * @param orderId
     * @return
     */
    List<Goods> findApplyOrderGoods(Long orderId);

    /**
     * 获取订单详情
     * @param userId
     * @param status
     * @return
     */
    List<StudentPaymentOrderDetail>findUserApplyOrder(Integer userId,String musicGroupId,DealStatusEnum status);

    /**
     * 乐器采购清单明细
     * @param musicGroupId
     * @return
     */
    List<MusicalListDetailDto> getMusicalListDetail(String musicGroupId);

    /**
     * 获取订单的乐器信息
     * @param orderId
     * @return
     */
    StudentPaymentOrderDetail findApplyOrderMusical(Long orderId);


    /**
     * 获取订单详细
     * @param orderId
     * @return
     */
    List<StudentPaymentOrderDetail> getOrderDetail(Long orderId);

    /**
     * 获取订单类型的详情
     * @param orderId
     * @return
     */
    List<String> getOrderDetailType(Long orderId);
}