using Govor.Domain.Common; using Govor.Domain.Models; using Govor.Domain.Models.Messages; using SmartRes; namespace Govor.Application.Medias; public interface IMediaService { public Task> UploadMediaAsync(Media file); public Task> DeleteMediaAsync(Guid fileId); public Task> GetMediaByUrlAsync(string url); public Task> GetMediaByIdAsync(Guid mediaId); public Task HasMediaAsync(Guid mediaId); public Task HasMediaByUrlAsync(string url); public Task> AttachToMessageAsync(Guid mediaId, Guid messageId); } public record Media(Guid UploaderId, DateTime UploadedOn, string FileName, byte[] Data, MediaType Type, string MimeType, string EncryptedKey, MediaOwnerType OwnerType, Guid? OwnerId); public record MediaUploadResult(Guid MediaId, string Url);