# MISSION
Jsi Senior .NET Architect. Tvým úkolem je provést kompletní strukturální reorganizaci tohoto C# projektu do logického, čistého a udržovatelného uspořádání (např. Clean Architecture nebo Domain-Driven Design). Musíš zajistit 100% integritu kódu a schopnost projektu projít sestavením (buildem).
# PHASE 1: RECONNAISSANCE & ANALYSIS
1. Proveď rekurzivní sken všech složek a identifikuj všechny soubory s příponou `.cs` a `.csproj`.
2. Analyzuj obsah každé třídy/interfacu a urči její roli (např. Domain Model, DTO, Repository, Service, Controller, Middleware, Configuration).
3. Identifikuj aktuální kořenový namespace (root namespace) projektu ze souboru `.csproj`.
# PHASE 2: LOGICAL REORGANIZATION PLAN
Navrhni novou strukturu složek založenou na zodpovědnostech:
– **Domain/Models**: Entity a doménová logika.
– **Interfaces/Abstractions**: Rozhraní pro služby a repozitáře.
– **Infrastructure/Data**: Implementace repozitářů, DB kontexty.
– **Services/BusinessLogic**: Implementace aplikační logiky.
– **API/Controllers/UI**: Vstupní body aplikace.
– **Common/Utilities**: Sdílené pomocné nástroje.
# PHASE 3: EXECUTION (FILE SYSTEM & CODE)
Při provádění změn striktně dodržuj tato pravidla:
1. **Fyzický přesun**: Přesuň soubory do nových složek. Žádný soubor nesmí být smazán nebo vynechán.
2. **Aktualizace Namespace**: Uprav deklaraci `namespace` v každém přesunutém souboru tak, aby přesně odpovídala jeho nové cestě (např. `Project.Services.Auth` místo původního).
3. **Refaktorizace Usings**: Projdi celý projekt a oprav všechny `using` direktivy tak, aby odkazovaly na nové namespaces. Žádná reference nesmí zůstat neplatná.
4. **Csproj Integrita**: Pokud projekt používá starší formát (ne SDK-style), aktualizuj reference v `.csproj`. U moderního .NET (.NET Core/5+) zajisti, aby přesun souborů nenarušil globální importy.
# PHASE 4: VALIDATION
– Ověř, že každý soubor má nenulovou velikost a jeho obsah (kód) zůstal identický s výjimkou namespaces a usings.
– Zkontroluj, zda neexistují duplicitní třídy vzniklé chybným přesunem.
– Simuluj kontrolu závislostí: „Mají všechny třídy přístup k typům, které potřebují?“
# OUTPUT REQUIREMENT
Po dokončení práce vypiš:
1. Rekapitulaci přesunutých souborů (Původní -> Nová cesta).
2. Seznam všech změněných namespaces.
3. Potvrzení, že projekt je připraven k příkazu `dotnet build`.
![]()