package org.qinan.safetyeval.client.api;

import org.qinan.safetyeval.client.co.QualFilingMaterialCO;
import org.qinan.safetyeval.client.dto.PageResponse;
import org.qinan.safetyeval.client.dto.SingleResponse;
import org.qinan.safetyeval.client.dto.QualFilingMaterialAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingMaterialModifyCmd;
import org.qinan.safetyeval.client.dto.QualFilingMaterialPageQuery;
import org.qinan.safetyeval.client.dto.QualFilingAttachmentUploadCmd;

/**
 * 备案申请材料接口定义（Client层）
 *
 * @author safety-eval
 */
public interface QualFilingMaterialApi {

    SingleResponse<QualFilingMaterialCO> add(QualFilingMaterialAddCmd cmd);

    SingleResponse<QualFilingMaterialCO> get(Long id);

    SingleResponse<QualFilingMaterialCO> modify(QualFilingMaterialModifyCmd cmd);

    SingleResponse<Void> delete(Long id);

    PageResponse<QualFilingMaterialCO> page(QualFilingMaterialPageQuery query);

    SingleResponse<Void> initTemplate(Long filingId);

    SingleResponse<QualFilingMaterialCO> upload(QualFilingAttachmentUploadCmd cmd);
}
