<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net9.0</TargetFramework>
        <Nullable>enable</Nullable>
        <ImplicitUsings>enable</ImplicitUsings>
        <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
        <UserSecretsId>cfdec342-d2f2-4a86-800b-93f0a0e4abde</UserSecretsId>
        <SatelliteResourceLanguages>en-US;zh-Hans</SatelliteResourceLanguages>
    </PropertyGroup>

    <!-- NPM Configuration -->
    <PropertyGroup>
        <NpmInstallStampFile>node_modules/.install-stamp</NpmInstallStampFile>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="BCrypt.Net-Next" Version="4.0.3"/>
        <PackageReference Include="BlurHashSharp.SkiaSharp" Version="1.3.4"/>
        <PackageReference Include="CorePush" Version="4.3.0"/>
        <PackageReference Include="EFCore.BulkExtensions" Version="9.0.1"/>
        <PackageReference Include="EFCore.BulkExtensions.PostgreSql" Version="9.0.1"/>
        <PackageReference Include="EFCore.NamingConventions" Version="9.0.0"/>
        <PackageReference Include="FFMpegCore" Version="5.2.0"/>
        <PackageReference Include="Livekit.Server.Sdk.Dotnet" Version="1.0.8" />
        <PackageReference Include="MailKit" Version="4.11.0"/>
        <PackageReference Include="MaxMind.GeoIP2" Version="5.3.0"/>
        <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.4"/>
        <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.2"/>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.3">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.4"/>
        <PackageReference Include="MimeTypes" Version="2.5.2">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Minio" Version="6.0.4"/>
        <PackageReference Include="NetVips" Version="3.0.1"/>
        <PackageReference Include="NetVips.Native.linux-x64" Version="8.16.1"/>
        <PackageReference Include="NetVips.Native.osx-arm64" Version="8.16.1"/>
        <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
        <PackageReference Include="NodaTime" Version="3.2.2"/>
        <PackageReference Include="NodaTime.Serialization.JsonNet" Version="3.2.0" />
        <PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.3.0"/>
        <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4"/>
        <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.0"/>
        <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="9.0.4"/>
        <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime" Version="9.0.4"/>
        <PackageReference Include="prometheus-net.AspNetCore" Version="8.2.1" />
        <PackageReference Include="prometheus-net.AspNetCore.HealthChecks" Version="8.2.1" />
        <PackageReference Include="prometheus-net.DotNetRuntime" Version="4.4.1" />
        <PackageReference Include="prometheus-net.EntityFramework" Version="0.9.5" />
        <PackageReference Include="prometheus-net.SystemMetrics" Version="3.1.0" />
        <PackageReference Include="Quartz" Version="3.14.0"/>
        <PackageReference Include="Quartz.AspNetCore" Version="3.14.0"/>
        <PackageReference Include="Quartz.Extensions.Hosting" Version="3.14.0"/>
        <PackageReference Include="SkiaSharp" Version="2.88.9" />
        <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="2.88.9" />
        <PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.9" />
        <PackageReference Include="SkiaSharp.NativeAssets.macOS" Version="2.88.9" />
        <PackageReference Include="StackExchange.Redis" Version="2.8.37" />
        <PackageReference Include="StackExchange.Redis.Extensions.AspNetCore" Version="11.0.0" />
        <PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.0"/>
        <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="8.1.0"/>
        <PackageReference Include="tusdotnet" Version="2.8.1"/>
    </ItemGroup>

    <ItemGroup>
        <Content Include="..\.dockerignore">
            <Link>.dockerignore</Link>
        </Content>
    </ItemGroup>

    <ItemGroup>
        <Folder Include="Migrations\"/>
    </ItemGroup>

    <ItemGroup>
        <EmbeddedResource Update="Resources\SharedResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>SharedResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\AccountEventResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>AccountEventResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\AccountEventResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>AccountEventResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\SharedResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>SharedResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Pages\Emails\LandingEmailResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>LandingEmail.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\NotificationResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>NotificationResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\EmailResource.resx">
            <Generator>ResXFileCodeGenerator</Generator>
            <LastGenOutput>Email.LandingResource.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\SharedResource.zh-hans.resx">
            <DependentUpon>SharedResource.resx</DependentUpon>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\AccountEventResource.zh-hans.resx">
            <DependentUpon>AccountEventResource.resx</DependentUpon>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\EmailResource.zh-hans.resx">
            <DependentUpon>EmailResource.resx</DependentUpon>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\NotificationResource.zh-hans.resx">
            <DependentUpon>NotificationResource.resx</DependentUpon>
        </EmbeddedResource>
    </ItemGroup>

    <ItemGroup>
        <Compile Update="Resources\Localization\AccountEventResource.Designer.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
            <DependentUpon>AccountEventResource.resx</DependentUpon>
        </Compile>
        <Compile Update="Resources\Localization\SharedResource.Designer.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
            <DependentUpon>SharedResource.resx</DependentUpon>
        </Compile>
        <Compile Update="Resources\Pages\Emails\LandingEmailResource.Designer.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
            <DependentUpon>LandingEmailResource.resx</DependentUpon>
        </Compile>
        <Compile Update="Resources\Localization\NotificationResource.Designer.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
            <DependentUpon>NotificationResource.resx</DependentUpon>
        </Compile>
    </ItemGroup>

    <ItemGroup>
        <_ContentIncludedByDefault Remove="app\publish\appsettings.json"/>
        <_ContentIncludedByDefault Remove="app\publish\DysonNetwork.Sphere.deps.json"/>
        <_ContentIncludedByDefault Remove="app\publish\DysonNetwork.Sphere.runtimeconfig.json"/>
        <_ContentIncludedByDefault Remove="app\publish\DysonNetwork.Sphere.staticwebassets.endpoints.json"/>
        <_ContentIncludedByDefault Remove="app\publish\Keys\Solian.json"/>
        <_ContentIncludedByDefault Remove="app\publish\package-lock.json"/>
        <_ContentIncludedByDefault Remove="app\publish\package.json"/>
    </ItemGroup>

</Project>