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

  <PropertyGroup>
    <AssemblyName>IamService.API</AssemblyName>
    <RootNamespace>IamService.API</RootNamespace>
    <Description>Web API layer with CQRS pattern</Description>
    <UserSecretsId>iamservice-api</UserSecretsId>
    <!-- EN: Enable XML documentation for Swagger / VI: Bật XML documentation cho Swagger -->
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <!-- EN: MediatR for CQRS / VI: MediatR cho CQRS -->
    <PackageReference Include="MediatR" Version="12.4.1" />
    
    <!-- EN: FluentValidation for request validation / VI: FluentValidation cho validation request -->
    <PackageReference Include="FluentValidation" Version="11.11.0" />
    <PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="11.11.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.1">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    
    <!-- EN: Swagger/OpenAPI / VI: Swagger/OpenAPI -->
    <PackageReference Include="Swashbuckle.AspNetCore" Version="7.2.0" />
    <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="7.2.0" />
    
    <!-- EN: API Versioning / VI: API Versioning -->
    <PackageReference Include="Asp.Versioning.Mvc" Version="8.1.0" />
    <PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="8.1.0" />
    
    <!-- EN: Health checks / VI: Health checks -->
    <PackageReference Include="AspNetCore.HealthChecks.NpgSql" Version="8.0.2" />
    <PackageReference Include="AspNetCore.HealthChecks.Redis" Version="8.0.1" />
    
    <!-- EN: Problem Details (RFC 7807) / VI: Problem Details (RFC 7807) -->
    <PackageReference Include="Hellang.Middleware.ProblemDetails" Version="6.5.1" />
    
    <!-- EN: Serilog for structured logging / VI: Serilog cho structured logging -->
    <PackageReference Include="Serilog.AspNetCore" Version="8.0.3" />
    <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
    <PackageReference Include="Serilog.Sinks.Seq" Version="8.0.0" />
    
    <!-- EN: ASP.NET Core Identity for user management / VI: ASP.NET Core Identity cho quản lý user -->
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.0" />
    
    <!-- EN: Duende IdentityServer for OAuth2/OIDC / VI: Duende IdentityServer cho OAuth2/OIDC -->
    <PackageReference Include="Duende.IdentityServer.AspNetIdentity" Version="7.0.8" />
    
    <!-- EN: JWT Bearer Authentication / VI: JWT Bearer Authentication -->
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\IamService.Domain\IamService.Domain.csproj" />
    <ProjectReference Include="..\IamService.Infrastructure\IamService.Infrastructure.csproj" />
  </ItemGroup>

</Project>
