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

import com.yhy.module.core.controller.admin.quota.vo.QuotaFeeItemSaveReqVO;
import com.yhy.module.core.dal.dataobject.quota.QuotaFeeItemDO;

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

/**
 * 定额取费项 Service 接口
 */
public interface QuotaFeeItemService {

    /**
     * 创建取费项
     */
    Long createFeeItem(@Valid QuotaFeeItemSaveReqVO createReqVO);

    /**
     * 更新取费项
     */
    void updateFeeItem(@Valid QuotaFeeItemSaveReqVO updateReqVO);

    /**
     * 删除取费项
     */
    void deleteFeeItem(Long id);

    /**
     * 获取取费项详情
     */
    QuotaFeeItemDO getFeeItem(Long id);

    /**
     * 获取取费项列表
     */
    List<QuotaFeeItemDO> getFeeItemList(Long catalogItemId);

    /**
     * 交换排序
     */
    void swapSort(Long nodeId1, Long nodeId2);

    /**
     * 验证取费项是否存在
     */
    void validateFeeItemExists(Long id);
}
