<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>

  <ItemGroup>
    <!-- SiteCallAuditActor is an Akka actor (central singleton in Bundle F); Akka is an explicit dependency. -->
    <PackageReference Include="Akka" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
    <PackageReference Include="Microsoft.Extensions.Options" />
    <!-- BindConfiguration extension for the SiteCallAuditOptions binding. -->
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="../ZB.MOM.WW.ScadaBridge.Commons/ZB.MOM.WW.ScadaBridge.Commons.csproj" />
    <!-- Site Call Audit (#22) sits alongside Notification Outbox (#21) and Audit Log (#23).
         ISiteCallAuditRepository is registered by ZB.MOM.WW.ScadaBridge.ConfigurationDatabase; the
         project reference is documented here so the actor's scope-per-message
         GetRequiredService<ISiteCallAuditRepository>() compiles. -->
    <ProjectReference Include="../ZB.MOM.WW.ScadaBridge.ConfigurationDatabase/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.csproj" />
    <!-- Task 5 (#22): the central→site Retry/Discard relay routes RetryParkedOperation /
         DiscardParkedOperation to the owning site via SiteEnvelope + CentralCommunicationActor,
         the same transport every other central→site command uses. SiteEnvelope is defined
         in ZB.MOM.WW.ScadaBridge.Communication (no cycle: Communication does not reference SiteCallAudit). -->
    <ProjectReference Include="../ZB.MOM.WW.ScadaBridge.Communication/ZB.MOM.WW.ScadaBridge.Communication.csproj" />
  </ItemGroup>

  <ItemGroup>
    <InternalsVisibleTo Include="ZB.MOM.WW.ScadaBridge.SiteCallAudit.Tests" />
  </ItemGroup>

</Project>
