namespace MeterVault.Core.Domain; /// /// A raw, immutable, timestamped meter value — the audit truth (SDD §5.3 reading). /// Backed by a TimescaleDB hypertable with composite key (meter_id, time). /// The value is a register / level / hours / rate in the meter's own unit. /// public sealed class Reading { public DateTimeOffset Time { get; set; } public int MeterId { get; set; } public double Value { get; set; } public int? SourceId { get; set; } public ReadingQuality Quality { get; set; } public ReadingFlags Flags { get; set; } /// Provenance batch when this row came from a CSV/bulk import (revert support). public int? ImportBatchId { get; set; } }