package com.fs.sop.service;

import com.fs.qw.vo.SortDayVo;
import com.fs.sop.domain.QwSopTemp;
import com.fs.sop.domain.QwSopTempDay;
import com.fs.sop.params.QwSopShareTempParam;
import com.fs.sop.vo.QwSopTempRedPackageVo;

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

/**
 * sop模板Service接口
 *
 * @author fs
 * @date 2024-09-26
 */
public interface IQwSopTempService {
    /**
     * 查询sop模板
     *
     * @param id sop模板主键
     * @return sop模板
     */
    public QwSopTemp selectQwSopTempById(String id);

    /**
     * 查询sop模板列表
     *
     * @param qwSopTemp sop模板
     * @return sop模板集合
     */
    public List<QwSopTemp> selectQwSopTempList(QwSopTemp qwSopTemp);

    /**
     * 新增sop模板
     *
     * @param qwSopTemp sop模板
     * @return 结果
     */
    public int insertQwSopTemp(QwSopTemp qwSopTemp);

    /**
     * 修改sop模板
     *
     * @param qwSopTemp sop模板
     * @return 结果
     */
    public int updateQwSopTemp(QwSopTemp qwSopTemp);

    /**
     * 批量删除sop模板
     *
     * @param ids 需要删除的sop模板主键集合
     * @return 结果
     */
    public int deleteQwSopTempByIds(String[] ids);

    /**
     * 分享sop模板
     */
    public int shareQwSopTemp(QwSopShareTempParam param);

    public int updateQwSopTempByIds(String[] ids);

    /**
     * 删除sop模板信息
     *
     * @param id sop模板主键
     * @return 结果
     */
    public int deleteQwSopTempById(String id);

    int addNew(QwSopTemp qwSopTemp);

    int update(QwSopTemp qwSopTemp);

    Map<String, Object> addOrUpdateSetting(QwSopTempDay list);

    void delRules(Long id);

    QwSopTempDay selectRulesInfo(Long id);

    List<QwSopTemp> selectQwSopTempListNew(QwSopTemp qwSopTemp);

    void copyTemplate(QwSopTemp qwSopTemp);

    List<QwSopTemp> listTemp();

    void sortDay(List<SortDayVo> list);

    List<QwSopTempDay> dayList(String id);

    void createSopTempRules(QwSopTemp qwSopTemp);

    List<QwSopTempRedPackageVo> redList(String id);

    void updateRedPackage(List<QwSopTempRedPackageVo> list);

    List<String> getSelectableRange();

    void syncTemplate(Long courseId);
}
