package com.agileboot.system.dept.service;

import cn.hutool.core.lang.tree.Tree;
import com.agileboot.system.dept.dto.AddDeptDTO;
import com.agileboot.system.dept.dto.DeptQuery;
import com.agileboot.system.dept.dto.UpdateDeptDTO;
import com.agileboot.system.dept.vo.DeptVO;
import jakarta.validation.constraints.NotNull;

import java.util.List;

public interface ISysDeptService {
    List<DeptVO> getDeptList(DeptQuery query);

    DeptVO getDeptInfo(Long deptId);

    List<Tree<Long>> getDeptTree();

    void addDept(AddDeptDTO addCommand);

    void updateDept(UpdateDeptDTO updateCommand);

    void removeDept(@NotNull Long deptId);
}
