package com.fs.survey.mapper;

import com.fs.survey.domain.SurveyQuestionnaireVersion;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 问卷版本Mapper接口
 *
 */
public interface SurveyQuestionnaireVersionMapper {
    /**
     * 查询问卷版本
     *
     * @param id 问卷版本主键
     * @return 问卷版本
     */
    public SurveyQuestionnaireVersion selectSurveyQuestionnaireVersionById(Long id);

    /**
     * 查询问卷版本列表
     *
     * @param surveyQuestionnaireVersion 问卷版本
     * @return 问卷版本集合
     */
    public List<SurveyQuestionnaireVersion> selectSurveyQuestionnaireVersionList(SurveyQuestionnaireVersion surveyQuestionnaireVersion);

    /**
     * 根据问卷ID查询版本列表
     *
     * @param questionnaireId 问卷ID
     * @return 版本集合
     */
    public List<SurveyQuestionnaireVersion> selectVersionListByQuestionnaireId(Long questionnaireId);

    /**
     * 查询问卷的最大版本号
     *
     * @param questionnaireId 问卷ID
     * @return 最大版本号
     */
    public Integer selectMaxVersionNo(Long questionnaireId);

    /**
     * 新增问卷版本
     *
     * @param surveyQuestionnaireVersion 问卷版本
     * @return 结果
     */
    public int insertSurveyQuestionnaireVersion(SurveyQuestionnaireVersion surveyQuestionnaireVersion);

    /**
     * 修改问卷版本
     *
     * @param surveyQuestionnaireVersion 问卷版本
     * @return 结果
     */
    public int updateSurveyQuestionnaireVersion(SurveyQuestionnaireVersion surveyQuestionnaireVersion);

    /**
     * 删除问卷版本
     *
     * @param id 问卷版本主键
     * @return 结果
     */
    public int deleteSurveyQuestionnaireVersionById(Long id);

    /**
     * 批量删除问卷版本
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSurveyQuestionnaireVersionByIds(Long[] ids);

    /**
     * 根据问卷ID删除版本
     *
     * @param questionnaireId 问卷ID
     * @return 结果
     */
    public int deleteSurveyQuestionnaireVersionByQuestionnaireId(Long questionnaireId);

    SurveyQuestionnaireVersion getLatestInfo(@Param("id") Long id);
}
