package cn.iocoder.yudao.module.system.service.hr.type;

import cn.iocoder.yudao.module.system.controller.admin.hr.vo.type.SalaryTypeCreateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.hr.vo.type.SalaryTypeUpdateSortVO;
import cn.iocoder.yudao.module.system.dal.dataobject.hr.SalaryTypeDO;

import java.util.List;

/**
 * 工资类型 Service 接口
 *
 * @author 符溶馨
 */
public interface SalaryTypeService {

    /**
     * 创建工资类型
     * @param createReqVO 创建信息
     * @return 类型编号
     */
    Long createSalaryType(SalaryTypeCreateReqVO createReqVO);

    /**
     * 更新工资类型
     * @param updateReqVO 更新信息
     */
    void updateSalaryType(SalaryTypeCreateReqVO updateReqVO);

    /**
     * 更新工资类型状态
     * @param id 类型编号
     * @param status 状态
     */
    void updateSalaryTypeStatus(Long id, Integer status);

    /**
     * 获得工资类型
     * @param id 类型编号
     * @return 工资类型
     */
    SalaryTypeDO getSalaryType(Long id);

    /**
     * 获得工资类型列表
     * @return 工资类型列表
     */
    List<SalaryTypeDO> getSalaryTypeList();

    /**
     * 更新工资类型排序
     * @param updateSortVO 更新信息
     */
    void updateSort(List<SalaryTypeUpdateSortVO> updateSortVO);
}
