package top.tqx.demo_1.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.tqx.demo_1.dto.DepartmentCreateRequest;
import top.tqx.demo_1.dto.DepartmentUpdateRequest;
import top.tqx.demo_1.entity.Department;
import top.tqx.demo_1.vo.DepartmentVO;
import top.tqx.demo_1.vo.UserVO;

import java.util.List;

public interface DepartmentService extends IService<Department> {

    List<DepartmentVO> listDepartments();

    void createDepartment(DepartmentCreateRequest request);

    void updateDepartment(Long id, DepartmentUpdateRequest request);

    void deleteDepartment(Long id);

    void setDepartmentManager(Long id, Long managerId);

    List<UserVO> getDepartmentUsers(Long deptId);
    
    Department getDepartmentById(Long id);

    String getDepartmentFullPath(Long deptId);

    List<Department> getDepartmentAncestors(Long deptId);
}