using InboxIntel.Domain.Common;
namespace InboxIntel.Domain.Entities;
///
/// Persisted dashboard layout for a user. One row per widget instance,
/// storing grid geometry and visibility so the dashboard restores exactly.
///
public class WidgetLayout : AuditableEntity
{
public Guid Id { get; set; } = Guid.NewGuid();
public Guid UserId { get; set; }
/// Stable widget key, e.g. "inbox-health", "top-senders".
public string WidgetKey { get; set; } = string.Empty;
// react-grid-layout geometry.
public int X { get; set; }
public int Y { get; set; }
public int W { get; set; } = 4;
public int H { get; set; } = 4;
public bool Visible { get; set; } = true;
public int SortOrder { get; set; }
/// Optional per-widget settings as JSON.
public string? SettingsJson { get; set; }
}