package com.tuoheng.admin.service.dept;

import com.tuoheng.admin.request.dept.AddDeptRequest;
import com.tuoheng.admin.request.dept.EditDeptRequest;
import com.tuoheng.common.core.utils.JsonResult;

/**
 * 部门Service接口
 *
 * @author wanjing
 * @team tuoheng
 * @date 2022-11-16
 */
public interface IDeptService {

    /**
     * 查询部门
     *
     * @param id 部门主键
     * @return 部门
     */
    JsonResult getDeptInfo(String id);

    /**
     * 查询部门树形列表
     *
     * @return 部门集合
     */
    JsonResult getListTree();

    /**
     * 查询当前部门树形列表
     *
     * @return 部门集合
     */
    JsonResult getListTreeByDeptId(String deptId);

    /**
     * 根据id查询子部门列表
     *
     * @return 部门集合
     */
    JsonResult getChildList(String id);


    /**
     * 新增部门
     *
     * @param addDeptRequest 新增部门对象
     * @return 结果
     */
    JsonResult insert(AddDeptRequest addDeptRequest);

    /**
     * 修改部门
     *
     * @param oldEditDeptRequest 原部门对象
     * @param newEditDeptRequest 新部门对象
     * @return 结果
     */
    JsonResult update(EditDeptRequest oldEditDeptRequest, EditDeptRequest newEditDeptRequest);


    /**
     * 删除部门信息
     *
     * @param id 部门主键
     * @return 结果
     */
    JsonResult deleteById(String id);
}
