package org.qinan.safetyeval.domain.gateway;

import org.qinan.safetyeval.domain.entity.OrgResignApplyEntity;
import org.qinan.safetyeval.domain.query.OrgResignApplyQuery;
import org.qinan.safetyeval.domain.query.PageResult;

/**
 * 人员离职申请Gateway接口（Domain层定义）
 *
 * @author safety-eval
 */
public interface OrgResignApplyGateway {

    OrgResignApplyEntity save(OrgResignApplyEntity entity);

    OrgResignApplyEntity get(Long id);

    OrgResignApplyEntity modify(OrgResignApplyEntity entity);

    void delete(Long id);

    PageResult<OrgResignApplyEntity> page(OrgResignApplyQuery query);

    /**
     * 按人员查询离职申请，按申请时间倒序。
     */
    java.util.List<OrgResignApplyEntity> listByPersonnelId(Long personnelId);

    /**
     * 查询指定审核状态下有离职申请的人员 ID 列表。
     */
    java.util.List<Long> listPersonnelIdsByAuditStatus(Integer auditStatusCode, Long orgId);
}
