package org.qinan.safetyeval.domain.gateway;

import org.qinan.safetyeval.domain.entity.*;
import org.qinan.safetyeval.domain.query.QualFilingQuery;
import org.qinan.safetyeval.domain.query.PageResult;

import java.util.List;

/**
 * 资质备案申请Gateway接口（Domain层定义）
 *
 * @author safety-eval
 */
public interface QualFilingGateway {

    QualFilingEntity save(QualFilingEntity entity);

    QualFilingEntity get(Long id);

    QualFilingEntity getByFilingNo(String filingNo);

    QualFilingEntity modify(QualFilingEntity entity);

    void delete(Long id);

    PageResult<QualFilingEntity> page(QualFilingQuery query);

    Long aggregationSaveOrEdit(QualFilingEntity entity, QualFilingCommitmentEntity commitmentEntity, List<QualFilingEquipmentEntity> equipmentEntities, List<QualFilingMaterialEntity> materialEntities, List<QualFilingPersonnelEntity> personnelEntities, List<QualFilingPersonnelCertEntity> personnelCertEntities);

    void review(Long filingId, String reviewResult, String reviewResultRemark, Long filingExpertId, String filingExpertName, String reviewOpinion);

}
