package com.yhy.module.core.service.calcbaserate;

import com.yhy.module.core.controller.admin.calcbaserate.vo.CalcBaseRateItemRespVO;
import com.yhy.module.core.controller.admin.calcbaserate.vo.CalcBaseRateItemSaveReqVO;
import java.util.List;
import javax.validation.Valid;

/**
 * 基数费率项 Service 接口
 *
 * @author yhy
 */
public interface CalcBaseRateItemService {

    /**
     * 创建基数费率项
     *
     * @param createReqVO 创建信息
     * @return 费率项ID
     */
    Long createCalcBaseRateItem(@Valid CalcBaseRateItemSaveReqVO createReqVO);

    /**
     * 更新基数费率项
     *
     * @param updateReqVO 更新信息
     */
    void updateCalcBaseRateItem(@Valid CalcBaseRateItemSaveReqVO updateReqVO);

    /**
     * 删除基数费率项
     *
     * @param id 费率项ID
     */
    void deleteCalcBaseRateItem(Long id);

    /**
     * 获取基数费率项
     *
     * @param id 费率项ID
     * @return 费率项信息
     */
    CalcBaseRateItemRespVO getCalcBaseRateItem(Long id);

    /**
     * 获取费率项列表
     *
     * @param calcBaseRateDirectoryId 目录ID
     * @return 列表
     */
    List<CalcBaseRateItemRespVO> getCalcBaseRateItemList(Long calcBaseRateDirectoryId);

    /**
     * 获取费率项列表（工作台项目指引使用）
     *
     * @param calcBaseRateDirectoryId 目录ID
     * @return 列表
     */
    List<com.yhy.module.core.controller.admin.workbench.vo.calcbaserate.CalcBaseRateItemRespVO> getCalcBaseRateItemListForWorkbench(Long calcBaseRateDirectoryId);
}
