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

  <PropertyGroup>
    <IsPackable>true</IsPackable>
    <PackageId>ZB.MOM.WW.Telemetry</PackageId>
    <Authors>ZB.MOM.WW</Authors>
    <Description>Core OpenTelemetry extensions for the ZB.MOM.WW SCADA family. Wires the OTel SDK (metrics + tracing + logs), populates a shared Resource (service.name/site.id/node.role), registers standard instrumentation (ASP.NET Core, HttpClient, runtime, process), and maps a Prometheus /metrics endpoint. OTLP exporter opt-in overlay included.</Description>
    <PackageTags>opentelemetry;observability;metrics;tracing;prometheus;otlp;aspnetcore;scada;wonderware;zb-mom-ww</PackageTags>
    <PackageProjectUrl>https://gitea.dohertylan.com/dohertj2/zb-mom-ww-telemetry</PackageProjectUrl>
    <RepositoryUrl>https://gitea.dohertylan.com/dohertj2/zb-mom-ww-telemetry</RepositoryUrl>
  </PropertyGroup>

  <ItemGroup>
    <!--
      Microsoft.AspNetCore.App is a shared framework, not a NuGet package. It brings in the
      ASP.NET Core middleware surface (MapZbMetrics, instrumentation, routing, etc.).
      Referencing the shared framework is the supported path for net10.0 libraries that
      target ASP.NET Core.
    -->
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

  <ItemGroup>
    <!-- The Serilog companion package reuses the internal options validator (single fail-fast
         path); its tests assert it too. -->
    <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
      <_Parameter1>ZB.MOM.WW.Telemetry.Serilog</_Parameter1>
    </AssemblyAttribute>
    <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
      <_Parameter1>ZB.MOM.WW.Telemetry.Serilog.Tests</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="OpenTelemetry.Extensions.Hosting" />
    <PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" />
    <PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
    <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
    <PackageReference Include="OpenTelemetry.Instrumentation.Http" />
    <PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" />
    <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" />
    <PackageReference Include="OpenTelemetry.Instrumentation.Process" />
  </ItemGroup>

</Project>
