using Govor.Core.Models; using Govor.Core.Models.Messages; namespace Govor.Application.Interfaces.Medias; public interface IMediaService { public Task UploadMediaAsync(Media file); public Task DeleteMediaAsync(Guid fileId); public Task GetMediaByUrlAsync(string url); public Task GetMediaByIdAsync(Guid mediaId); 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);