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

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

/**
 * 清单网关接口
 * <p>
 * 定义清单领域模型的持久化操作，包括增删改查等基础操作，
 * 以及用于定时任务的过期清单查询方法。
 */
public interface TaskListGateway {

    /**
     * 新增清单
     *
     * @param taskListE 清单领域模型
     * @return 操作结果，true-成功
     */
    Boolean add(TaskListE taskListE);

    /**
     * 更新清单
     *
     * @param taskListE 清单领域模型（需包含id）
     * @return 操作结果，true-成功
     */
    Boolean update(TaskListE taskListE);

    /**
     * 根据主键ID删除清单
     *
     * @param id 主键ID
     * @return 操作结果，true-成功
     */
    Boolean deleteById(Long id);

    /**
     * 根据主键ID查询清单
     *
     * @param id 主键ID
     * @return 清单领域模型，不存在返回null
     */
    TaskListE getById(Long id);

    /**
     * 根据清单业务ID查询清单
     *
     * @param taskListId 清单业务ID
     * @return 清单领域模型，不存在返回null
     */
    TaskListE getByTaskListId(String taskListId);

    /**
     * 根据清单业务ID查询清单详情
     *
     * @return 清单领域模型
     */
    TaskListE getInfoByTaskListId(String taskListId);
}
