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

import cn.iocoder.yudao.module.system.controller.admin.hr.vo.type.SalaryTypeItemCreateReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.hr.SalaryTypeItemDO;

import java.util.List;

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

    /**
     * 创建工资类型配置
     * @param createReqVO 创建信息
     * @return 工资类型配置编号
     */
    Long createSalaryTypeItem(SalaryTypeItemCreateReqVO createReqVO);

    /**
     * 更新工资类型配置
     * @param updateReqVO 更新信息
     */
    void updateSalaryTypeItem(SalaryTypeItemCreateReqVO updateReqVO);

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

    /**
     * 更新工资类型配置状态
     * @param typeId 工资类型编号
     * @param status 状态值
     */
    void updateStatusByTypeId(Long typeId, Integer status);

    /**
     * 获得工资类型配置
     * @param id 工资类型配置编号
     * @return 工资类型配置
     */
    SalaryTypeItemDO getSalaryTypeItem(Long id);

    /**
     * 获得指定的工资类型配置
     * @return 工资类型配置列表
     */
    List<SalaryTypeItemDO> getListByTypeId(Long typeId);
}
