package com.ibeetl.admin.core.file;

import java.util.List;
/**
 * 文件持久化，默认为文件系统，可以扩展到fastfds等
 * @author xiandafu
 *
 */
public interface FileService {
	/**
	 * 得到一个临时文件操作
	 * @param name
	 * @return
	 */
    FileItem createFileTemp(String name);
	
	/**
	 * 创建一个持久的文档
	 * @param name
	 * @param bizType
	 * @param bizId
	 * @param userId
	 * @param orgId
	 * @param tags
	 * @return
	 */
    FileItem createFileItem(String name, String bizType, String bizId, Long userId, Long orgId, String fileBatchId, List<FileTag> tags);

	
	FileItem loadFileItemByPath(String path);
	FileItem getFileItemById(Long id);
	FileItem getFileItemById(Long id, String batchFileId);
	
	List<FileItem> queryByUserId(Long userId, List<FileTag> tags);
	List<FileItem> queryByBiz(String bizType, String bizId);
	List<FileItem> queryByBatchId(String fileBatchId);
	/**
	 * 删除某个文件
	 * @param id
	 * @param fileBatchId，用于验证
	 */
    void removeFile(Long id, String fileBatchId);
	
	/**
	 * 完善附件信息
	 * @param fileBatchId
	 * @param bizType
	 * @param bizId
	 */
    void updateFile(String fileBatchId, String bizType, String bizId);
	
	

    
	
}
