package org.qinan.safetyeval.domain.gateway;

import org.qinan.safetyeval.domain.entity.QualFilingMaterialEntity;
import org.qinan.safetyeval.domain.query.QualFilingMaterialQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import java.util.List;

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

    QualFilingMaterialEntity save(QualFilingMaterialEntity entity);

    QualFilingMaterialEntity get(Long id);

    List<QualFilingMaterialEntity> listByFilingId(Long filingId);

    QualFilingMaterialEntity modify(QualFilingMaterialEntity entity);

    void delete(Long id);

    PageResult<QualFilingMaterialEntity> page(QualFilingMaterialQuery query);

    /**
     * 统计指定备案下满足上传状态和材料类型的记录数
     */
    int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, Integer materialType);
}
