package org.qinan.safetyeval.client.api;

import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
import org.qinan.safetyeval.client.dto.PageResponse;
import org.qinan.safetyeval.client.dto.SingleResponse;
import org.qinan.safetyeval.client.dto.QualFilingChangeAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingChangeModifyCmd;
import org.qinan.safetyeval.client.dto.QualFilingChangePageQuery;
import org.qinan.safetyeval.client.dto.QualFilingChangeSubmitCmd;
import org.qinan.safetyeval.client.dto.QualFilingRejectCmd;

/**
 * 备案变更接口定义（Client层）
 */
public interface QualFilingChangeApi {

    SingleResponse<QualFilingChangeCO> add(QualFilingChangeAddCmd cmd);

    SingleResponse<QualFilingChangeCO> get(Long id);

    SingleResponse<QualFilingChangeCO> modify(QualFilingChangeModifyCmd cmd);

    SingleResponse<Void> delete(Long id);

    PageResponse<QualFilingChangeCO> page(QualFilingChangePageQuery query);

    SingleResponse<Long> start(Long originFilingId);

    SingleResponse<Void> submit(QualFilingChangeSubmitCmd cmd);

    SingleResponse<QualFilingChangeHistoryCO> history(Long originFilingId);

    SingleResponse<Void> approve(Long changeId);

    SingleResponse<Void> reject(QualFilingRejectCmd cmd);
}
