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

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <RootNamespace>Hc900Crawler</RootNamespace>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
    <SelfContained>false</SelfContained>
  </PropertyGroup>

  <ItemGroup>
    <!-- Core + Infrastructure 계층 포함 -->
    <Compile Include="../Core/**/*.cs" />
    <Compile Include="../Infrastructure/**/*.cs" />
  </ItemGroup>

  <ItemGroup>
    <!-- gRPC -->
    <PackageReference Include="Grpc.Net.Client" Version="2.63.*" />
    <PackageReference Include="Google.Protobuf" Version="3.28.*" />
    <PackageReference Include="Grpc.Tools" Version="2.63.*">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <!-- PostgreSQL + EF Core -->
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.*" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.13">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <!-- Swagger -->
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.8.1" />
    <!-- CSV -->
    <PackageReference Include="CsvHelper" Version="33.0.1" />
    <!-- P&ID 추출 -->
    <PackageReference Include="netDxf" Version="2022.11.2" />
    <PackageReference Include="PdfPig" Version="0.1.9" />
    <!-- Excel -->
    <PackageReference Include="EPPlus" Version="7.4.2" />
    <!-- 관리자 비밀번호 해시 -->
    <PackageReference Include="Konscious.Security.Cryptography.Argon2" Version="1.3.1" />
    <!-- HTTP -->
    <PackageReference Include="Microsoft.Extensions.Http" Version="8.0.*" />
  </ItemGroup>

  <ItemGroup>
    <Protobuf Include="Proto\modbus_gateway.proto">
      <GrpcServices>Client</GrpcServices>
      <Access>Public</Access>
    </Protobuf>
  </ItemGroup>

</Project>
