using StickyBoard.Core.DTOs.Attachments; using StickyBoard.Core.Models; namespace StickyBoard.Core.Services.Attachments; public interface IAttachmentManager { Task InitUploadAsync(Guid userId, AttachmentInitRequest request, CancellationToken ct); Task MarkUploadFailedAsync(Guid attachmentId, CancellationToken ct); Task MarkUploadCompleteAsync(Guid attachmentId, CancellationToken ct); Task GetDownloadUrlAsync(Guid attachmentId, string? variant, CancellationToken ct); Task> GetForCardAsync(Guid cardId, CancellationToken ct); Task> GetForBoardAsync(Guid boardId, CancellationToken ct); Task> GetForWorkspaceAsync(Guid workspaceId, CancellationToken ct); Task GetOriginalForProcessingAsync(Guid attachmentId, CancellationToken ct); Task GetVariantUploadUrlAsync(Guid attachmentId, AttachmentVariantType variant, CancellationToken ct); Task RegisterVariantAsync(VariantRegisterRequest request, CancellationToken ct); Task DeleteAsync(Guid attachmentId, CancellationToken ct); Task RevokeAllTokensAsync(Guid attachmentId, CancellationToken ct); }