package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.MaintenancePayDto;
import com.ym.mec.biz.dal.entity.StudentInstrument;

import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
import com.ym.mec.biz.dal.entity.SubjectChange;
import com.ym.mec.common.service.BaseService;

import java.math.BigDecimal;
import java.util.Map;

public interface StudentInstrumentService extends BaseService<Long, StudentInstrument> {

    /**
     * 乐保支付
     */
    Map pay(MaintenancePayDto maintenancePayDto) throws Exception;

    /**
     * 回调页面
     *
     * @param studentPaymentOrder
     * @return
     */
    Boolean orderCallback(StudentPaymentOrder studentPaymentOrder);

    /**
     * 添加学生乐器
     * @param studentInstrument
     * @return
     */
    StudentInstrument addStudentInstrument(StudentInstrument studentInstrument);


    /**
     * 将订单详情乐器加入学生乐器列表
     * @param order
     * @return
     */
    Long addOrderDetail2Instrument(StudentPaymentOrder order,Integer goodsId);


    /**
     * 有效期到期前7天，推送提醒学员该乐器有效期即将到期
     * @return
     */
    Boolean pushNotice();


    /**
     * 修改学生乐器
     * @param studentInstrument
     * @return
     */
    StudentInstrument updateStudentInstrument(StudentInstrument studentInstrument);


    /**
     * 乐器更换更新乐器信息
     * @param subjectChange
     * @return
     */
    Boolean subjectChangeUpdateInstrument(SubjectChange subjectChange);


    /**
     * 获取学生的乐器信息
     * @param studentId
     * @param goodsId
     * @return
     */
    StudentInstrument getStudentInstrument(Integer studentId,Integer goodsId);


    Boolean addOldStudentInstrument();

}
