package com.zcloud.safetyDutyList.domain.gateway.tasklist;

import com.zcloud.safetyDutyList.domain.model.tasklist.TaskListIssueE;

import java.util.List;

/**
 * 清单下发记录网关接口
 */
public interface TaskListIssueGateway {

    Boolean add(TaskListIssueE taskListIssueE);

    Boolean update(TaskListIssueE taskListIssueE);

    Boolean deleteById(Long id);

    TaskListIssueE getByTaskIssueId(String taskIssueId);

    List<TaskListIssueE> listByTaskListId(String taskListId);

    List<TaskListIssueE> listExpiredInProgress();

    List<TaskListIssueE> listIssuedWithPeriod();

    // 清单是否下发
    Boolean isIssued(String taskListId);

    /**
     * 判断当前清单是否重复下发（同一清单+公司+部门+人员+时间段重叠）
     * @return true=重复下发，false=未重复
     */
    Boolean isDuplicateIssue(String taskListId, Long executeCorpId, Long executeDepartmentId, Long executeUserId,
                             java.time.LocalDateTime periodStartTime, java.time.LocalDateTime periodEndTime);
}
