
using CloudBuilder.AI.Data;
using CloudBuilder.AI.Entity;
using CloudBuilder.AI.SearchCriteria;
using CloudBuilder.Core.Service;
using Microsoft.AspNetCore.Http;

namespace CloudBuilder.AI.Service
{
    public interface IDmsFileService : IServiceBase<DmsFileEntity, int, DmsFileSearchCriteria>
    {
        DmsFileResultData FindBySearchCriteria(DmsFileSearchCriteria tc);
        dynamic PrintBySearchCriteria(DmsFileSearchCriteria tc);

        DmsFileEntity PackUploadFile(IFormFile file, string folderName);

        DmsFileEntity CreateDmsFile(DmsFileEntity dmsFile);

        string GetFolderName(string folderLocalName);
        string CreateDmsFolder(DmsFileEntity dmsFile);

        DmsFileEntity UpdateDmsFolder(DmsFileEntity dmsFile);

        void MoveDmsFolder(DmsFileEntity dmsFile);

        SelectOption[] FindDmsFolders();
        DmsFolderTreeData FindDmsFolderTreeData();
        BookDmsFileViewEntity UploadFile();

        dynamic DownloadFile(int fileId);

        dynamic DownloadFilePreview(DmsFileEntity dmsFile);

        dynamic DownloadFileCombine(string fileName);

        DmsFileResultData FindDatasBySearchCriteria(DmsFileSearchCriteria criteria);

        void DeleteFolder(string folderName);

        int FindDmsFolderMapByFolderName(string folderName);

        string FindFolderNameParentByFolderName(string folderName);
    }
}
