using System; using System.Collections.Generic; using System.Data.Common; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.ECM; using GB5Shared.DTO.Framework.Login; namespace GB5Shared.FileUpload { public interface IAttachmentDAL { Task SaveAttachment (TAttachmentDTO Dto, LoginDTO LoginDTO, DbTransaction Transaction); Task GetAttachment (int AttachmentId, LoginDTO LoginDTO); Task GetAttachmentDetail (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, DbTransaction Transaction); Task DeleteAttachment (int AttachmentId, LoginDTO LoginDTO, DbTransaction Transaction); // ── Attachment resolution (pre-save upload correlation) ─────── Task BulkResolveObjectIdAsync (IEnumerable mappings, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetOrphanedAttachmentsAsync (DateTime olderThan, int batchSize, LoginDTO login, CancellationToken ct); Task DeleteAttachmentsAsync (IEnumerable attachmentIds, LoginDTO login, DbTransaction tx, CancellationToken ct); Task>ListAttachmentsByHeaderAndObjectHeaderTypeId(int ObjectHeaderTypeId, int ObjectHeaderId, LoginDTO LoginDTO); Task UpdateAttachmentObjectId(AttachmentUpdateDTO Dto, LoginDTO LoginDTO, DbTransaction Transaction); } }