using Chat.Domain.Enums; namespace Chat.Contracts.DTOs; /// /// Data Transfer Object for a message. /// Used when returning message data to clients. /// public class MessageDto { /// /// Unique identifier for the message. /// public Guid Id { get; set; } /// /// The content/message text. /// public string Content { get; set; } = string.Empty; /// /// The ID of the user who sent the message. /// public Guid SenderId { get; set; } /// /// The name of the user who sent the message. /// public string SenderName { get; set; } = string.Empty; /// /// The ID of the user receiving the message. /// public Guid ReceiverId { get; set; } /// /// Timestamp when the message was sent. /// public DateTime SentAt { get; set; } /// /// Indicates if the message has been read by the receiver. /// public bool IsRead { get; set; } /// /// Timestamp when the message was read by the receiver. /// public DateTime? ReadAt { get; set; } /// /// Indicates if the message has been deleted. /// public bool IsDeleted { get; set; } /// /// Indicates if the message has been edited. /// public bool IsEdited { get; set; } /// /// Timestamp when the message was last edited. /// public DateTime? EditedAt { get; set; } /// /// The current status of the message (e.g., Sent, Delivered, Read). /// public MessageStatus MessageStatus { get; set; } /// /// Indicates if the current user is the sender of this message. /// Useful for UI differentiation in chat interfaces. /// public bool IsFromCurrentUser { get; set; } }