using IWS5.Core.DTO;
using IWS5.Core.Models;
using IWS5.Core.Models.Request;

namespace IWS5.Core.Services;

public interface IDocumentService
{
    Task<Response<List<DocumentListItemDTO>>> ListDocumentFields(DocumentsRequest documentRequest);
    Task<Response<DocumentDTO>> GetDocument(DocumentRequest documentRequest);
    Task<CodeResponse<DocumentListItemDTO>> RenameDocument(string userName, RenameDocumentRequest renameDocumentRequest);
    Task<CodeResponse<DocumentListItemDTO>> UpdateDocumentContent(string userName, UpdateDocumentContentRequest updateDocumentContentRequest);
    Task UpdateDocumentFields(string userName, UpdateDocumentFieldListRequest updateDocumentFieldListRequest);
    Task<Response<String>> DeleteDocument(string userName, int documentId, bool permanently);
    Task<Response<DocumentListItemDTO>> AddDocument(string userName, AddDocumentRequest documentRequest);
}