namespace MarkdownEditor.Models;

/// <summary>
/// Represents information about a tab in a saved session.
/// Includes file path (if saved) and content (for unsaved files).
/// </summary>
public class SessionTabInfo
{
    /// <summary>
    /// Gets or sets the file path if the tab represents a saved file.
    /// Null if the tab is an unsaved document.
    /// </summary>
    public string? FilePath { get; set; }

    /// <summary>
    /// Gets or sets the content of the tab.
    /// For saved files, this may be empty (will be reloaded from disk).
    /// For unsaved files, this contains the current content.
    /// </summary>
    public string Content { get; set; } = string.Empty;

    /// <summary>
    /// Gets or sets the display title of the tab.
    /// </summary>
    public string Title { get; set; } = string.Empty;

    /// <summary>
    /// Gets or sets a value indicating whether this tab has unsaved changes.
    /// </summary>
    public bool IsDirty { get; set; }
}
