package com.dsk.cscec.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.bo.AddProjectFileUploadBo;
import com.dsk.cscec.domain.vo.QueryProjectFileUploadDetailVo;
import com.dsk.system.domain.vo.SysOssVo;

/**
 * 项目成本文件表(CbProjectFile)表服务接口
 *
 * @author sxk
 * @since 2024-02-05 14:01:06
 */
public interface CbProjectFileService extends IService<CbProjectFile> {
    /**
     * 校验同一成本类型下是否存在相同文件
     *
     * @param fileUploadBo 上传信息
     */
    Boolean checkProjectFileExist(AddProjectFileUploadBo fileUploadBo);

    /**
     * 添加项目上传文件记录
     *
     * @param fileUploadBo 上传信息
     * @param oss          oss信息
     * @return 文件实体
     */
    CbProjectFile addProjectFile(AddProjectFileUploadBo fileUploadBo, SysOssVo oss);

    /**
     * 批量逻辑删除项目上传文件记录
     *
     * @param fileIds 文件ID
     * @return 删除结果
     */
    Integer deleteProjectFile(Long[] fileIds);

    /**
     * 获取项目文件上传详情
     *
     * @param projectId 项目ID
     * @return 文件列表
     */
    QueryProjectFileUploadDetailVo getProjectFileUploadDetail(Long projectId);
}
