using NexusReader.Application.DTOs.AI;
namespace NexusReader.UI.Shared.Models;
///
/// Defines the active tab state for the unified mobile reader toolbar.
///
public enum MobileReaderTab
{
Reader,
Graph,
Concepts
}
///
/// Screen coordinates for text selection popup positioning.
///
public record SelectionCoordinates(double Top, double Left, double Width);
///
/// Represents a message in the KM-RAG global and mobile intelligence chat threads.
///
public class ChatMessage
{
public string Id { get; set; } = Guid.NewGuid().ToString();
public string Sender { get; set; } = string.Empty; // "User" or "AI"
public string Text { get; set; } = string.Empty;
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public List Segments { get; set; } = new();
public List Citations { get; set; } = new();
}
///
/// Represents a parsed segment of an intelligence response, potentially referencing a citation.
///
public class ResponseSegment
{
public string Text { get; set; } = string.Empty;
public bool IsCitation { get; set; }
public string CitationId { get; set; } = string.Empty;
}