package com.xinyilu.system.mapper.motionprescriptionlibrary;

import com.xinyilu.system.domain.motionprescriptionlibrary.MotionPrescriptionLibrary;
import com.xinyilu.system.domain.motionprescriptionvideo.MotionPrescriptionVideo;
import com.xinyilu.system.domain.vo.motionprescriptionlibrary.MotionPrescriptionLibraryVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 运动处方库数据Mapper接口
 *
 * @author xinyilu
 * @date 2023-04-03
 */
public interface MotionPrescriptionLibraryMapper {
    /**
     * 查询运动处方库数据
     *
     * @param id 运动处方库数据主键
     * @return 运动处方库数据
     */
    MotionPrescriptionLibrary selectMotionPrescriptionLibraryById(Long id);

    /**
     * 查询运动处方库数据列表
     *
     * @param motionPrescriptionLibrary 运动处方库数据
     * @return 运动处方库数据集合
     */
    List<MotionPrescriptionLibraryVO> selectMotionPrescriptionLibraryList(MotionPrescriptionLibrary motionPrescriptionLibrary);

    /**
     * 新增运动处方库数据
     *
     * @param motionPrescriptionLibrary 运动处方库数据
     * @return 结果
     */
    int insertMotionPrescriptionLibrary(MotionPrescriptionLibrary motionPrescriptionLibrary);

    /**
     * 修改运动处方库数据
     *
     * @param motionPrescriptionLibrary 运动处方库数据
     * @return 结果
     */
    int updateMotionPrescriptionLibrary(MotionPrescriptionLibrary motionPrescriptionLibrary);

    /**
     * 删除运动处方库数据
     *
     * @param id 运动处方库数据主键
     * @return 结果
     */
    int deleteMotionPrescriptionLibraryById(Long id);

    /**
     * 批量删除运动处方库数据
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteMotionPrescriptionLibraryByIds(Long[] ids);

    /**
     * 处方上传视频
     *
     * @param motionPrescriptionId 处方id
     * @param prescriptionVideoUrl 路径
     * @return AjaxResult
     */
    int updateMotionPrescriptionLibraryUrl(@Param("motionPrescriptionId") Long motionPrescriptionId, @Param("prescriptionVideoUrl") String prescriptionVideoUrl);

    /**
     * 根据id集合查询处方库信息
     *
     * @param ids id集合
     * @return 处方库信息集合
     */
    List<MotionPrescriptionVideo> getMotionPrescriptionLibraryByIds(@Param("ids") Long[] ids);

    /**
     * 根据处方id批量删除运动处方库数据
     *
     * @param motionPrescriptionIds 需要删除的数据处方id集合
     * @return 结果
     */
    int deleteMotionPrescriptionLibraryByMotionIds(Long[] motionPrescriptionIds);
}