package cn.iocoder.lyzsys.module.tjt.service.employee;

import cn.iocoder.lyzsys.framework.common.pojo.PageResult;
import cn.iocoder.lyzsys.module.tjt.controller.admin.employee.vo.EmployeePageReqVO;
import cn.iocoder.lyzsys.module.tjt.controller.admin.employee.vo.EmployeeRespVO;
import cn.iocoder.lyzsys.module.tjt.controller.admin.employee.vo.EmployeeSaveReqVO;
import cn.iocoder.lyzsys.module.tjt.controller.admin.employee.vo.EmployeeSimpleRespVO;
import cn.iocoder.lyzsys.module.tjt.dal.dataobject.employee.EmployeeDO;

import javax.validation.Valid;
import java.util.List;

public interface EmployeeService {

    Long createEmployee(@Valid EmployeeSaveReqVO createReqVO);

    void updateEmployee(@Valid EmployeeSaveReqVO updateReqVO);

    void deleteEmployee(Long id);

    EmployeeRespVO getEmployee(Long id);

    EmployeeDO validateEmployeeExists(Long id);

    PageResult<EmployeeRespVO> getEmployeePage(EmployeePageReqVO pageReqVO);

    List<EmployeeSimpleRespVO> getEmployeeSimpleList(String keyword, Long officeId, String status,
                                                     Boolean enabledFlag, Boolean officeLeaderFlag);

}
