3162286ade
Bundle B1 of Audit Log #23 M3: introduces the SiteCall entity + EF mapping for the central SiteCalls operational-state table. One row per TrackedOperationId, mirrored from sites via best-effort telemetry then periodic reconciliation; eventually-consistent mirror, not a dispatcher. - src/ScadaLink.Commons/Entities/Audit/SiteCall.cs: append-once record with required TrackedOperationId/Channel/Target/SourceSite/Status, monotonic status update at the repo layer. - src/ScadaLink.ConfigurationDatabase/Configurations/SiteCallEntityTypeConfiguration.cs: table SiteCalls, PK on TrackedOperationId (stored as varchar(36) via value conversion through the canonical 'D'-format GUID string — matches the wire shape used by gRPC + SQLite columns), two named indexes (IX_SiteCalls_Source_Created, IX_SiteCalls_Status_Updated). - ScadaLinkDbContext: DbSet<SiteCall> SiteCalls in the existing Audit section, after AuditLogs. - Tests in tests/ScadaLink.ConfigurationDatabase.Tests/Configurations/: table name, PK, value-conversion shape, index presence + ordering.