package ink.wgink.interfaces.file;

import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.pos.FilePO;
import ink.wgink.pojo.result.SuccessResultList;

import java.util.List;

/**
 * @ClassName: IMongoFileService
 * @Description: Mongo文件业务
 * @Author: wanggeng
 * @Date: 2021/12/12 6:16 PM
 * @Version: 1.0
 */
public interface IMongoFileService {

    String UPLOAD_FILE_COLLECTION_NAME = "uploadFiles";

    /**
     * 保存文件
     *
     * @param filePO
     */
    void saveByUserId(String userId, FilePO filePO);

    /**
     * 删除文件
     *
     * @param fileIds 文件ID列表
     */
    void delete(List<String> fileIds);

    /**
     * 文件详情
     *
     * @param fileId
     * @return
     */
    FilePO getPO(String fileId);

    /**
     * 文件分页列表
     *
     * @param page
     * @return
     */
    SuccessResultList<List<FilePO>> listPage(ListPage page);

    /**
     * 文件列表
     *
     * @param fileIds
     * @return
     */
    List<FilePO> listByIds(List<String> fileIds);

    /**
     * 文件列表
     *
     * @param fileUrl 文件url
     * @return
     */
    List<FilePO> listByUrl(String fileUrl);
}
