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

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

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

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Akka" />
    <PackageReference Include="Akka.Remote" />
    <PackageReference Include="Akka.Cluster" />
    <PackageReference Include="Akka.Cluster.Tools" />
    <PackageReference Include="Google.Protobuf" />
    <PackageReference Include="Grpc.Net.Client" />
    <PackageReference Include="Grpc.Tools" PrivateAssets="All" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="../ZB.MOM.WW.ScadaBridge.Commons/ZB.MOM.WW.ScadaBridge.Commons.csproj" />
    <ProjectReference Include="../ZB.MOM.WW.ScadaBridge.HealthMonitoring/ZB.MOM.WW.ScadaBridge.HealthMonitoring.csproj" />
  </ItemGroup>

  <!-- gRPC proto generation. The compiled C# is checked in under
       SiteStreamGrpc/ (Sitestream.cs + SitestreamGrpc.cs) because protoc
       segfaults inside our linux_arm64 Docker build image. To regenerate
       after schema changes:
         1. Temporarily uncomment the Protobuf ItemGroup below.
         2. Delete SiteStreamGrpc/*.cs.
         3. `dotnet build` (on macOS) — Grpc.Tools writes fresh files to obj/.
         4. Copy obj/Debug/net10.0/Protos/*.cs into SiteStreamGrpc/.
         5. Re-comment the ItemGroup.
       Eventually we should switch the Docker build image to one with a
       working protoc on arm64. -->
  <!--
    <ItemGroup>
    <Protobuf Include="Protos\sitestream.proto" GrpcServices="Both" />
  </ItemGroup>
  -->

</Project>
