using System.Collections.Generic; using System.Threading.Tasks; using GB5Shared.DTO.ECM; using GB5Shared.DTO.Framework.Login; using Microsoft.AspNetCore.Http; namespace GB5Shared.FileUpload { public interface IFileUploadBLL { // Matches the GB4 signature: ObjectId, ObjectTypeId, DocumentDetailId + file. // TempRefKey is optional — supply when ObjectId=0 (pre-save upload for multi-step forms). Task FileUploadWebWithMetaData (IFormFile File, int ObjectId, int ObjectTypeId, int DocumentDetailId, LoginDTO LoginDTO, string? tempRefKey = null); // Simplified Base64 JSON upload — no multipart/FormData needed. // TempRefKey is optional — supply when ObjectId=0 (pre-save upload for multi-step forms). Task FileUploadBase64Async (FileUploadBase64RequestDTO request, LoginDTO LoginDTO, string? tempRefKey = null); Task GetAttachment (int AttachmentId, LoginDTO LoginDTO); Task> ListAttachments (int ObjectId, int ObjectTypeId, LoginDTO LoginDTO); Task> ListAttachmentsByObjectId (int ObjectId, LoginDTO LoginDTO); Task> ListAttachmentsByHeaderAndObjectId (int ObjectHeaderId, int ObjectId, LoginDTO LoginDTO); Task UpdateAttachment (AttachmentUpdateDTO Dto, LoginDTO LoginDTO); Task DeleteAttachment (int AttachmentId, LoginDTO LoginDTO); Task DownloadAttachmentAsBase64 (int AttachmentId, LoginDTO LoginDTO); Task> ListAttachmentsByHeaderAndObjectHeaderTypeId(int ObjectHeaderTypeId, int ObjectHeaderId, LoginDTO LoginDTO); Task UpdateAttachmentObjectId(AttachmentUpdateDTO Dto, LoginDTO LoginDTO); } }