package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.entity.Instrument;
import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper;

import java.util.List;
import java.util.Map;

/**
 * 乐器设置
 * 2024-04-22 16:55:18
 */
public interface InstrumentService extends IService<Instrument>  {

	/**
     * 查询详情
     * @param id 详情ID
     * @return Instrument
     */
	Instrument detail(Long id);

    /**
     * 分页查询
     * @param page IPage<Instrument>
     * @param query InstrumentWrapper.InstrumentQuery
     * @return IPage<Instrument>
     */
    IPage<InstrumentWrapper.Instrument> selectPage(IPage<InstrumentWrapper.Instrument> page, InstrumentWrapper.InstrumentQuery query);

    /**
     * 添加
     * @param instrument InstrumentWrapper.Instrument
     * @return Boolean
     */
     Boolean add(InstrumentWrapper.Instrument instrument);

    /**
     * 更新
     * @param instrument InstrumentWrapper.Instrument
     * @return Boolean
     */
     Boolean update(InstrumentWrapper.Instrument instrument);

    List<Instrument> queryBySubjectId(Long subject);

    Map<Long,InstrumentWrapper.Instrument> getMapByIds(List<Long> instrumentIdList);

    Map<Integer,List<InstrumentWrapper.Instrument>> getGroupBySubjectId(List<Integer> subjectIds, Boolean enableFlag);

    List<InstrumentWrapper.Instrument> getList(InstrumentWrapper.InstrumentQuery query);

    List<Long> getInstrumentIdsBySubjectId(Long subjectId);

    void modify(InstrumentWrapper.Update update);
}
