package cn.iocoder.yudao.module.system.service.worklog;

import cn.iocoder.yudao.module.system.service.worklog.dto.LogUseSaveReqDTO;

import java.util.List;

/**
 * 日志模板使用者 Service 接口
 *
 * @author 符溶馨
 */
public interface LogUseService {

    /**
     * 创建日志模板使用者
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    void createLogUse(List<LogUseSaveReqDTO> createReqVO);

    /**
     * 更新日志模板使用者
     *
     * @param updateReqVO 更新信息
     */
    void updateLogUse(List<LogUseSaveReqDTO> updateReqVO, Long formId);

    /**
     * 获得日志模板使用者的部门编号组
     *
     * @param formId 编号
     * @return 日志模板使用者的部门编号组
     */
    List<Long> getDeptByFormId(Long formId);

    /**
     * 获得日志模板使用者编号组
     *
     * @param formId 编号
     * @return 日志模板使用者的部门编号组
     */
    List<Long> getUserByFormId(Long formId);

    /**
     * 根据使用者编号和模板编号，查询模板数量
     * @param formId 模板编号
     * @param userId 用户编号
     * @return 数量
     */
    Long getCountByUser(Long formId, Long userId);

    /**
     * 获取我可以使用的模板编号组
     * @param userId 用户编号
     * @return 日志模板编号组
     */
    List<Long> getFormIdByUserId(Long userId);

    /**
     * 删除使用者
     * @param formId 模板编号
     */
    void deletByFormId(Long formId);
}