package ink.wgink.service.department.service;

import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.service.department.enmus.DepartmentAdjustmentTypeEnum;
import ink.wgink.service.department.pojo.dtos.DepartmentAdjustmentDTO;

import java.util.List;

/**
 * When you feel like quitting. Think about why you started
 * 当你想要放弃的时候，想想当初你为何开始
 *
 * @ClassName: IDepartmentAdjustment
 * @Description: 组织机构日志
 * @Author: wanggeng
 * @Date: 2021/1/28 10:23 下午
 * @Version: 1.0
 */
public interface IDepartmentAdjustmentService {

    /**
     * 保存部门调整
     *
     * @param oldDepartmentId              原部门ID
     * @param oldDepartmentName            原部门名称
     * @param newDepartmentId              新部门ID
     * @param newDepartmentName            新部门名称
     * @param departmentAdjustmentTypeEnum 部门调整类型，合并、拆分
     */
    void save(String oldDepartmentId, String oldDepartmentName, String newDepartmentId, String newDepartmentName, DepartmentAdjustmentTypeEnum departmentAdjustmentTypeEnum);

    /**
     * 添加用户部门调整
     *
     * @param departmentUserIds  部门用户ID列表
     * @param departmentId       部门ID
     * @param departmentName     部门名称
     * @param userDepartmentType 部门用户类型，join、leave
     */
    void save(List<String> departmentUserIds, String departmentId, String departmentName, String userDepartmentType);

    /**
     * 用户部门调整列表
     *
     * @param page 分页
     * @return
     */
    SuccessResultList<List<DepartmentAdjustmentDTO>> listPage(ListPage page);
}
