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

import com.yhy.module.core.controller.admin.quota.vo.QuotaAdjustmentSettingSaveReqVO;
import com.yhy.module.core.dal.dataobject.quota.QuotaAdjustmentSettingDO;
import java.util.List;
import javax.validation.Valid;

/**
 * 定额调整设置 Service 接口
 *
 * @author 芋道源码
 */
public interface QuotaAdjustmentSettingService {

    /**
     * 创建定额调整设置
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createQuotaAdjustmentSetting(@Valid QuotaAdjustmentSettingSaveReqVO createReqVO);

    /**
     * 更新定额调整设置
     *
     * @param updateReqVO 更新信息
     */
    void updateQuotaAdjustmentSetting(@Valid QuotaAdjustmentSettingSaveReqVO updateReqVO);

    /**
     * 删除定额调整设置
     *
     * @param id 编号
     */
    void deleteQuotaAdjustmentSetting(Long id);

    /**
     * 获得定额调整设置
     *
     * @param id 编号
     * @return 定额调整设置
     */
    QuotaAdjustmentSettingDO getQuotaAdjustmentSetting(Long id);

    /**
     * 获得定额调整设置列表
     *
     * @param quotaItemId 定额基价ID
     * @return 定额调整设置列表
     */
    List<QuotaAdjustmentSettingDO> getQuotaAdjustmentSettingList(Long quotaItemId);

    /**
     * 交换排序
     *
     * @param id1 第一个调整设置ID
     * @param id2 第二个调整设置ID
     */
    void swapSort(Long id1, Long id2);

}
