namespace ClaudeDo.Data.Models;
/// One claude session started in a Mission Control tile (ad-hoc, task or handoff) — the
/// index behind "Recent sessions". The transcript itself stays with Claude Code.
public sealed class MissionControlSessionEntity
{
/// The claude session id (`--session-id` / `--resume`).
public string SessionId { get; init; } = string.Empty;
/// Working directory the session ran in — a resume must start there.
public string Cwd { get; set; } = string.Empty;
/// Task the tile belonged to; null for an ad-hoc tile. No FK: the row outlives the task.
public string? TaskId { get; set; }
/// Tile title at start (task title or folder name; a handoff inherits its predecessor's).
public string Title { get; set; } = string.Empty;
/// UTC time the session was first launched.
public DateTime StartedAt { get; set; } = DateTime.UtcNow;
/// Session this one was handed off from; null unless it is a handoff session.
public string? PredecessorSessionId { get; set; }
/// brief.md the session started from; non-null exactly for handoff sessions.
public string? BriefPath { get; set; }
}