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

import com.yhy.module.core.controller.admin.workbench.vo.progresspayment.ProgressPaymentModeCreateReqVO;
import com.yhy.module.core.controller.admin.workbench.vo.progresspayment.ProgressPaymentModeRespVO;
import com.yhy.module.core.controller.admin.workbench.vo.progresspayment.ProgressPaymentModeUpdateReqVO;
import java.util.List;
import javax.validation.Valid;

/**
 * 进度款模式 Service 接口
 *
 * @author yhy
 */
public interface ProgressPaymentModeService {

    /**
     * 创建进度款模式
     *
     * @param createReqVO 创建信息
     * @return 进度款模式ID
     */
    Long createProgressPaymentMode(@Valid ProgressPaymentModeCreateReqVO createReqVO);

    /**
     * 更新进度款模式
     *
     * @param updateReqVO 更新信息
     */
    void updateProgressPaymentMode(@Valid ProgressPaymentModeUpdateReqVO updateReqVO);

    /**
     * 删除进度款模式
     *
     * @param id 进度款模式ID
     */
    void deleteProgressPaymentMode(Long id);

    /**
     * 获取进度款模式详情
     *
     * @param id 进度款模式ID
     * @return 进度款模式详情
     */
    ProgressPaymentModeRespVO getProgressPaymentMode(Long id);

    /**
     * 获取项目下的进度款模式列表
     *
     * @param projectId 项目ID
     * @return 进度款模式列表
     */
    List<ProgressPaymentModeRespVO> getProgressPaymentModeList(Long projectId);
}
