package com.trade.service.filestorage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.trade.service.filestorage.entity.BusinessRelateFile;
import org.springframework.lang.NonNull;

import java.util.List;

/**
 * 文件关联关系基础服务接口
 *
 * @author hlb
 * @since 2024-05-29 15:07:42
 */
public interface BusinessRelateFileBaseService extends IService<BusinessRelateFile> {

    /**
     * 新增业务对象关联的文件
     *
     * @param businessRelateFiles
     */
    void addBusinessRelateFiles(List<BusinessRelateFile> businessRelateFiles);

    /**
     * 新增或更新业务对象关联的文件
     *
     * @param businessRelateFile
     * @return
     */
    void upsertBusinessRelateFiles(BusinessRelateFile businessRelateFile);

    /**
     * 查询业务对象关联的文件
     *
     * @param bizObj 业务对象
     * @param belongId 业务对象id
     * @param belongType 业务对象类型
     * @param fileType 文件类别
     */
    void fillBizObjFiles(@NonNull Object bizObj, @NonNull Long belongId, String belongType, String fileType);

    /**
     * 查询业务对象关联的文件
     *
     * @param belongId
     * @param belongType
     * @param fileType
     * @return
     */
    List<BusinessRelateFile> getBizObjFiles(@NonNull Long belongId, String belongType, String fileType);

    /**
     * 根据业务id和业务类型查询文件关联关系
     *
     * @param belongId
     * @param belongType
     * @param fileType
     * @return fileType
     */
    BusinessRelateFile getByCondition(Long belongId, String belongType, String fileType);
}
