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

	<PropertyGroup>
		<TargetFramework>net10.0</TargetFramework>
		<ImplicitUsings>enable</ImplicitUsings>
		<Nullable>enable</Nullable>
		<NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
		<StaticWebAssetProjectMode>Default</StaticWebAssetProjectMode>

		<RunAOTCompilation>false</RunAOTCompilation>
		<WasmStripILAfterAOT>true</WasmStripILAfterAOT>
		<OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders>
	</PropertyGroup>

	<ItemGroup>
		<PackageReference Include="DevExpress.Blazor" Version="25.1.3" />
		<PackageReference Include="MessagePack" Version="3.1.4" />
		<PackageReference Include="MessagePack.Annotations" Version="3.1.4" />
		<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.0" />
		<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

		<StaticWebAssetFingerprintPattern Include="JS" Pattern="*.js" Expression="#[.{fingerprint}]!" />
	</ItemGroup>

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

	<!-- Shared appsettings.json synced into wwwroot at build time.
	     Approach: pre-build Copy Target (not <Content Include Link=...>), because:
	     - <Content Include="..\..." Link="wwwroot\..."/> triggers StaticWebAssets.Normalize() "Illegal characters"
	     - pre-normalizing via [System.IO.Path]::GetFullPath(...) still fails (the absolute path also trips the validator)
	     - a pre-build Copy creates a physical wwwroot/appsettings.json which the StaticWebAssets auto-discovery
	       picks up naturally, same as any other wwwroot file
	     BeforeTargets lists multiple early targets to ensure the Copy runs before static-asset discovery,
	     regardless of which one triggers first in a given SDK version.
	     NOTE: a clean build (delete obj/) is required the first time, because the static-asset manifest
	     is cached in obj/ and stale entries persist across incremental builds.
	     The physical wwwroot/appsettings.json is a build artifact — commit or gitignore per team policy;
	     edits should always be made in FruitBankHybrid.Shared/appsettings.json (the canonical source). -->
	<Target Name="CopySharedAppSettings"
	        BeforeTargets="CollectPackageReferences;AssignTargetPaths;ResolveStaticWebAssetsInputs;BeforeBuild"
	        Inputs="..\FruitBankHybrid.Shared\appsettings.json"
	        Outputs="wwwroot\appsettings.json">
		<Copy SourceFiles="..\FruitBankHybrid.Shared\appsettings.json"
		      DestinationFiles="wwwroot\appsettings.json"
		      SkipUnchangedFiles="true" />
	</Target>

	<ItemGroup>
		<Reference Include="AyCode.Core">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Core.Server">
		  <HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Core.Server.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Entities">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Entities.Server">
		  <HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Entities.Server.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Interfaces">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Interfaces.Server">
		  <HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Interfaces.Server.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Models">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Models.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Models.Server">
		  <HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Models.Server.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Services">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Services.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Services.Server">
		  <HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Services.Server.dll</HintPath>
		</Reference>
		<Reference Include="AyCode.Utils">
			<HintPath>..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\FruitBank\$(Configuration)\net9.0\AyCode.Utils.dll</HintPath>
		</Reference>
		<Reference Include="DevExpress.Blazor.Resources.v25.1"></Reference>
		<Reference Include="DevExpress.Blazor.v25.1"></Reference>
		<Reference Include="DevExpress.Blazor.v25.1.Viewer"></Reference>
		<Reference Include="DevExpress.Data.v25.1"></Reference>
		<Reference Include="DevExpress.Utils.v25.1"></Reference>
		<Reference Include="Mango.Nop.Core">
		  <HintPath>..\..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Core\bin\FruitBank\$(Configuration)\net9.0\Mango.Nop.Core.dll</HintPath>
		</Reference>
	</ItemGroup>

</Project>