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; }
}