using IWS5.Core.Enums;
using IWS5.Core.Models.Request;
using IWS5.DatabaseAccess.IwsDataModels;

namespace IWS5.DatabaseAccess.Interfaces;

public interface IDocumentRepository : IIWSRepository<Atdocument>
{
    Task<List<Atdocument>> ListDocumentsByWorkItemReference(DocumentsRequest documentRequest);
    Task<List<Dictionary<string, object>>> GetTemplateDataAsync(string tableName, List<string> fields, int[] documentIds);
    Task<Atdocument> RenameDocumentAsync(string userName, RenameDocumentRequest renameDocumentRequest);
    Task<Atdocument> UpdateDocumentContentAsync(string userName, UpdateDocumentContentRequest updateDocumentContentRequest);
    Task UpdateDocumentFields(string userName, UpdateDocumentFieldListRequest updateDocumentFieldListRequest);
    Task ChangeTemplateForDocument(string userName, string templateToRemoveRecord, UpdateDocumentFieldListRequest updateDocumentFieldListRequest);
    Task<bool> DeleteDocumentAsync(int documentId, bool permanently);
    Task<Atdocument> AddDocumentAsync(string userName, AddDocumentRequest document);
}