package com.ruoyi.ccdi.project.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.ccdi.project.domain.entity.CcdiFileUploadRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 文件上传记录 Mapper 接口
 *
 * @author ruoyi
 * @date 2026-03-05
 */
@Mapper
public interface CcdiFileUploadRecordMapper extends BaseMapper<CcdiFileUploadRecord> {

    /**
     * 批量插入文件上传记录
     *
     * @param records 记录列表
     * @return 插入条数
     */
    int insertBatch(@Param("list") List<CcdiFileUploadRecord> records);

    /**
     * 查询来源项目中解析成功且具备logId的文件记录
     *
     * @param projectIds 来源项目ID列表
     * @return 文件记录列表
     */
    List<CcdiFileUploadRecord> selectSuccessfulRecordsByProjectIds(@Param("projectIds") List<Long> projectIds);

    /**
     * 统计各状态文件数量
     *
     * @param projectId 项目ID
     * @return 统计结果（Map形式，key为状态，value为数量）
     */
    List<Map<String, Object>> countByStatus(@Param("projectId") Long projectId);
}
