# Řešení problémů s navigací

## Problém: Žádné položky navigace se nenačítají

Pokud se na stránce **Správa navigace** nezobrazuje žádný obsah (ani ve webové navigaci, ani v admin panelu, ani sociální sítě), může to být způsobeno několika důvody:

### 1. Databázové tabulky nejsou vytvořeny nebo jsou prázdné

#### Kontrola stavu

1. Otevřete **Správu navigace** (`/admin/navigace`)
2. Zkontrolujte informační panel nahoře - měl by zobrazit: "Načteno: X webových, X admin, X sociálních"
3. Otevřete konzoli prohlížeče (F12) a podívejte se na výpis:
   ```
   Načtená navigace: []
   Načtené sociální odkazy: []
   ```

Pokud jsou pole prázdná (`[]`), znamená to, že backend běží správně, ale databáze je prázdná.

#### Řešení A: Spustit migrace s výchozími daty

Tabulky `navigation_items` a `social_links` se vytvoří automaticky při startu aplikace, ale **výchozí data se vkládají pouze při spuštění migrací**.

**Postup:**

1. Zastavte backend server (pokud běží)
2. Spusťte backend s příznakem pro migrace:

   **Windows (PowerShell):**
   ```powershell
   $env:RUN_MIGRATIONS="true"
   go run main.go
   ```

   **Linux/Mac:**
   ```bash
   RUN_MIGRATIONS=true go run main.go
   ```

3. Zkontrolujte logy - měli byste vidět:
   ```
   Running database migrations...
   Migration 20251010154600_create_navigation_system.up.sql applied successfully
   ```

4. Obnovte stránku správy navigace
5. Nyní byste měli vidět výchozí navigační položky:
   - Domů
   - O klubu
   - Kalendář
   - Zápasy
   - Aktivity
   - Hráči
   - Tabulky
   - Články
   - Videa
   - Fotogalerie
   - Sponzoři
   - Kontakt

#### Řešení B: Vytvořit položky ručně

Pokud nechcete spouštět migrace (např. už jste upravili databázi), můžete položky vytvořit ručně:

1. V záložce **Webová navigace** klikněte na tlačítko **"Přidat hlavní položku"**
2. Vyplňte formulář:
   - **Název:** např. "Domů"
   - **Typ:** Vyberte "Stránka (vyberte existující)"
   - **Webová stránka:** Vyberte ze seznamu, např. "Domů (/)"
   - **Viditelné:** Zapnuto (checkbox)
3. Klikněte na **Uložit**
4. Opakujte pro další stránky

### 2. Problémy s API připojením

Pokud vidíte chybovou hlášku při načítání, může se jednat o problém s API.

#### Kontrola

1. Otevřete konzoli prohlížeče (F12)
2. Přejděte na záložku **Network/Síť**
3. Obnovte stránku správy navigace
4. Podívejte se na požadavky:
   - `GET /api/v1/admin/navigation` - měl by vrátit status 200
   - `GET /api/v1/admin/social-links` - měl by vrátit status 200

#### Možné chyby:

**Status 401 Unauthorized:**
- Nejste přihlášeni jako administrátor
- Řešení: Odhlaste se a znovu se přihlaste

**Status 404 Not Found:**
- Backend neběží nebo běží na jiném portu
- Zkontrolujte `.env` soubor: `REACT_APP_API_URL=http://localhost:8080/api/v1`
- Ověřte, že backend běží na portu 8080

**Status 500 Internal Server Error:**
- Chyba na straně serveru
- Zkontrolujte logy backendu
- Možná databáze neběží nebo není dostupná

**CORS Error:**
- Backend blokuje požadavky z frontendu
- Řešení: Ujistěte se, že backend běží v dev módu (`APP_ENV=development`)

### 3. Backend neběží

#### Kontrola

1. Otevřete novou PowerShell/terminál
2. Zkuste přistoupit k API přímo:
   ```powershell
   curl http://localhost:8080/api/v1/navigation
   ```

Pokud dostanete chybu "Connection refused" nebo podobnou, backend neběží.

#### Řešení

Spusťte backend:
```powershell
cd c:\Users\conta\Downloads\PROG+HTML\Fotbal\fotbal-club
go run main.go
```

### 4. Databáze neběží

Pokud backend vyhodí chybu při startu o nemožnosti připojení k databázi:

```
Failed to connect to database: connection refused
```

#### Řešení

1. Zkontrolujte, zda PostgreSQL běží
2. Ověřte konfiguraci v `.env`:
   ```
   DB_HOST=localhost
   DB_PORT=5432
   DB_USER=postgres
   DB_PASSWORD=your_password
   DB_NAME=fotbal_club
   ```
3. Spusťte PostgreSQL server

## Rychlá diagnostika - Checklist

- [ ] Backend běží (vidím "Server starting on port 8080" v logu)
- [ ] Frontend běží (React dev server na portu 3000)
- [ ] Jsem přihlášen jako administrátor
- [ ] V konzoli prohlížeče vidím: `Načtená navigace: []` (prázdné pole, ne chyba)
- [ ] Spustil jsem migrace s `RUN_MIGRATIONS=true` nebo vytvořil položky ručně
- [ ] Obnovil jsem stránku po přidání dat

## Testování API přímo

Můžete otestovat API přímo pomocí curl/PowerShell:

```powershell
# Získat veřejné navigační položky
curl http://localhost:8080/api/v1/navigation

# Získat admin navigační položky (vyžaduje přihlášení)
# Nejprve se přihlaste přes prohlížeč, pak:
curl http://localhost:8080/api/v1/admin/navigation -H "Cookie: your-session-cookie"
```

## Pokud nic nepomůže

1. Zkontrolujte konzoli prohlížeče - hledejte červené chyby
2. Zkontrolujte logy backendu - hledejte chybové zprávy
3. Zkuste restartovat:
   - Backend server
   - Frontend dev server
   - PostgreSQL databázi
4. Zkuste vymazat cookies a local storage prohlížeče
5. Použijte režim inkognito/soukromé okno

## Podpora

Pokud problém přetrvává:
1. Zkopírujte chybovou zprávu z konzole prohlížeče
2. Zkopírujte logy z backendu
3. Uveďte, které kroky jste již vyzkoušeli
