namespace DnsmasqWebUI.Models.Hosts;
///
/// Source kind for a hosts row. Used to distinguish editable managed rows from read-only sources.
///
public enum HostsRowSourceKind
{
/// Managed hosts file (editable by the app).
Managed,
/// System hosts file (e.g. /etc/hosts).
SystemHosts,
/// Additional hosts file (addn-hosts=).
AddnHosts,
/// Hosts directory (hostsdir=).
Hostsdir
}
///
/// Unified row model for the Hosts page. Preserves source awareness while allowing a single rich table.
///
public sealed record HostsPageRow(
string Id,
HostsRowSourceKind SourceKind,
string SourcePath,
bool IsEditable,
bool IsActive,
string? InactiveReason,
string Address,
IReadOnlyList Names,
IReadOnlyList EffectiveNames,
bool IsComment,
int LineNumber);