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

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net10.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
    <RootNamespace>ClawdDotNet</RootNamespace>
    <ApplicationIcon>Martin-Berube-Flat-Animal-Crab.ico</ApplicationIcon>

    <!-- ── Sauberes Build-Verzeichnis ── -->
    <!-- Nur deutsche + englische Satelliten-Assemblies (Sprachpakete) ausgeben -->
    <SatelliteResourceLanguages>de;en</SatelliteResourceLanguages>
    <!-- Keine XML-Dokumentationsdateien von NuGet-Paketen kopieren -->
    <PublishDocumentationFiles>false</PublishDocumentationFiles>
    <!-- PDB-Dateien nur im Debug-Build ausgeben -->
    <DebugSymbols Condition="'$(Configuration)' == 'Release'">false</DebugSymbols>
    <CopyOutputSymbolsToOutputDirectory Condition="'$(Configuration)' == 'Release'">false</CopyOutputSymbolsToOutputDirectory>
  </PropertyGroup>

  <!-- Unterordner mit eigenen Projekten aus dem Glob des Hauptprojekts nehmen.
       Ohne das kompiliert die WinForms-App die Test-Quellen mit. -->
  <ItemGroup>
    <Compile Remove="src\**" />
    <None Remove="src\**" />
    <EmbeddedResource Remove="src\**" />
    <Compile Remove="tests\**" />
    <None Remove="tests\**" />
    <EmbeddedResource Remove="tests\**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3967.48" />
  </ItemGroup>

  <!-- Uebergang: SettingsManager und AppSettings sind nach ClawdDotNet.App gewandert.
       Das globale Using haelt die WinForms-Fassung baubar, solange sie waehrend der
       Avalonia-Portierung noch als Vorlage und Vergleich dient. Faellt mit dem Projekt
       weg (Aufgabe „WinForms-Oberflaeche entfernen"). -->
  <ItemGroup>
    <Using Include="ClawdDotNet.App.Settings" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="EmbeddedUI\**\*" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="Martin-Berube-Flat-Animal-Crab.ico" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="src\ClawdDotNet.App\ClawdDotNet.App.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Core\ClawdDotNet.Core.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.FileRW\ClawdDotNet.Tools.FileRW.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.Telegram\ClawdDotNet.Tools.Telegram.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.Mail\ClawdDotNet.Tools.Mail.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.Database\ClawdDotNet.Tools.Database.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.FTP\ClawdDotNet.Tools.FTP.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.DirectAPI\ClawdDotNet.Tools.DirectAPI.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.WebFetch\ClawdDotNet.Tools.WebFetch.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.WebMonitor\ClawdDotNet.Tools.WebMonitor.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.AgentComm\ClawdDotNet.Tools.AgentComm.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.AgentSpawn\ClawdDotNet.Tools.AgentSpawn.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.SocialMediaManager\ClawdDotNet.Tools.SocialMediaManager.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.AgentEditor\ClawdDotNet.Tools.AgentEditor.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.Memory\ClawdDotNet.Tools.Memory.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.Taskboard\ClawdDotNet.Tools.Taskboard.csproj" />
    <ProjectReference Include="src\ClawdDotNet.Tools.TelegramClient\ClawdDotNet.Tools.TelegramClient.csproj" />
    <!-- Der Verweis auf das LicenseLabrador-SDK ist entfallen: Lizenz, Watchdog, Updates,
         Fehler-Stream und Bugtracker laufen jetzt ueber das Deploymentcenter. Das SDK
         dafuer haengt an src\ClawdDotNet.App und kommt von dort transitiv mit. -->
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Properties\Resources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

  <!-- ═══════════════════════════════════════════════
       Sauberes Programmverzeichnis
       ═══════════════════════════════════════════════ -->

  <!-- XML-Dokumentation von NuGet-Paketen nicht ins Build-Verzeichnis kopieren -->
  <Target Name="RemoveNuGetXmlDocs" AfterTargets="ResolveReferences">
    <ItemGroup>
      <ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)"
        Condition="'%(Extension)' == '.xml'" />
    </ItemGroup>
  </Target>

  <!-- WebView2-WPF-Assemblies entfernen (nur WinForms wird verwendet) -->
  <Target Name="RemoveWebView2Wpf" AfterTargets="ResolveReferences">
    <ItemGroup>
      <ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)"
        Condition="$([System.String]::Copy('%(Filename)').Contains('WebView2.Wpf'))" />
    </ItemGroup>
  </Target>

  <!-- Arbeitsordner (tools/, Logs/, Instances/) anlegen -->
  <Target Name="CreateWorkingDirectories" AfterTargets="Build">
    <MakeDir Directories="$(OutputPath)tools" />
    <MakeDir Directories="$(OutputPath)Logs" />
    <MakeDir Directories="$(OutputPath)Instances" />
  </Target>

  <Target Name="CreatePublishDirectories" AfterTargets="Publish">
    <MakeDir Directories="$(PublishDir)tools" />
    <MakeDir Directories="$(PublishDir)Logs" />
    <MakeDir Directories="$(PublishDir)Instances" />
  </Target>

</Project>
