namespace EchoHub.Core.Models; /// /// A file attached to a message (image, audio, or any file). A message may carry /// zero or more attachments alongside its text content (Discord-style). /// public class Attachment { public Guid Id { get; set; } public Guid MessageId { get; set; } public Message? Message { get; set; } public AttachmentKind Kind { get; set; } /// Relative download URL, e.g. /api/files/{fileId}. public required string Url { get; set; } public required string FileName { get; set; } /// Stored blob size in bytes (ciphertext size for encrypted channels). public long FileSize { get; set; } /// /// Rendered ASCII-art preview for images (color-tag format). Null for audio/files. /// Stored encrypted-at-rest when database encryption is enabled, and room-encrypted /// for end-to-end encrypted channels. /// public string? AsciiPreview { get; set; } }