<?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>

    <ItemGroup>
        <PackageReference Include="AngleSharp" Version="1.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="Grpc.AspNetCore.Server" Version="2.71.0"/>
        <PackageReference Include="HtmlAgilityPack" Version="1.12.1"/>
        <PackageReference Include="Livekit.Server.Sdk.Dotnet" Version="1.0.10" />
        <PackageReference Include="Markdig" Version="0.41.3"/>
        <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.7"/>
        <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.7"/>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.7">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.7"/>
        <PackageReference Include="MimeTypes" Version="2.5.2">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Nerdbank.GitVersioning" Version="3.7.115">
            <PrivateAssets>all</PrivateAssets>
            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="NodaTime" Version="3.2.2"/>
        <PackageReference Include="NodaTime.Serialization.JsonNet" Version="3.2.0"/>
        <PackageReference Include="NodaTime.Serialization.Protobuf" Version="2.0.2" />
        <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="OpenGraph-Net" Version="4.0.1" />
        <PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0"/>
        <PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0"/>
        <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0"/>
        <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0"/>
        <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0"/>
        <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="StackExchange.Redis" Version="2.8.41"/>
        <PackageReference Include="StackExchange.Redis.Extensions.AspNetCore" Version="11.0.0"/>
        <PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3"/>
        <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="9.0.3"/>
        <PackageReference Include="System.ServiceModel.Syndication" Version="9.0.7" />
        <PackageReference Include="TencentCloudSDK.Tmt" Version="3.0.1276" />
    </ItemGroup>

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

    <ItemGroup>
        <Folder Include="Discovery\"/>
    </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\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\SharedResource.zh-hans.resx">
            <DependentUpon>SharedResource.resx</DependentUpon>
        </EmbeddedResource>
        <EmbeddedResource Update="Resources\Localization\NotificationResource.zh-hans.resx">
            <DependentUpon>NotificationResource.resx</DependentUpon>
        </EmbeddedResource>
    </ItemGroup>

    <ItemGroup>
        <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>
        <Compile Remove="Auth\AppleAuthController.cs"/>
    </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"/>
        <_ContentIncludedByDefault Remove="Pages\Account\Profile.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\Authorize.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\Callback.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\Challenge.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\Login.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\SelectFactor.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Auth\VerifyFactor.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Checkpoint\CheckpointPage.cshtml"/>
        <_ContentIncludedByDefault Remove="Pages\Spell\MagicSpellPage.cshtml"/>
        <_ContentIncludedByDefault Remove="Keys\Solian.json"/>
        <_ContentIncludedByDefault Remove="Pages\Index.cshtml" />
        <_ContentIncludedByDefault Remove="Pages\Posts\PostDetail.cshtml" />
        <_ContentIncludedByDefault Remove="Pages\Shared\_Layout.cshtml" />
        <_ContentIncludedByDefault Remove="Pages\_ViewImports.cshtml" />
        <_ContentIncludedByDefault Remove="Pages\_ViewStart.cshtml" />
        <_ContentIncludedByDefault Remove="Pages\Emails\AccountDeletionEmail.razor" />
        <_ContentIncludedByDefault Remove="Pages\Emails\ContactVerificationEmail.razor" />
        <_ContentIncludedByDefault Remove="Pages\Emails\EmailLayout.razor" />
        <_ContentIncludedByDefault Remove="Pages\Emails\LandingEmail.razor" />
        <_ContentIncludedByDefault Remove="Pages\Emails\PasswordResetEmail.razor" />
        <_ContentIncludedByDefault Remove="Pages\Emails\VerificationEmail.razor" />
    </ItemGroup>
    
    <ItemGroup>
        <None Remove="..\DysonNetwork.Pass\Client\**" />
        <Content Remove="..\DysonNetwork.Pass\Client\**" />
        <Compile Remove="..\DysonNetwork.Pass\Client\**" />
    </ItemGroup>

    <ItemGroup>
        <ProjectReference Include="..\DysonNetwork.Shared\DysonNetwork.Shared.csproj"/>
        <ProjectReference Include="..\DysonNetwork.Pass\DysonNetwork.Pass.csproj"/>
    </ItemGroup>

</Project>
