# Sonics NBA Manager - Changelog

## [1.4.0] - 2025-01-15

### Dodane
- **Kompletny System Meczów (1967-2008)** ⚡
  - Import automatyczny wszystkich 41 sezonów jednym kliknięciem (~3300 meczów)
  - Rozbudowana tabela bazy danych z 18 polami
  - Dane meczów: dogrywki (OT, 2OT, 3OT), frekwencja, bilanse, areny, kody drużyn
  - Obsługa sezonów regularnych i playoffs
  - Metoda `import_all_seasons()` - pełna automatyzacja importu
  - Metoda `import_games()` - import pojedynczego sezonu
  - Parser HTML dla wszystkich kolumn z Basketball-Reference
  - Aktualizacja bilansu sezonu po imporcie
  
- **Panel Administracyjny Meczów** 🎨
  - Filtry: wybór sezonu, typ meczu (Regular Season / Playoffs)
  - Statystyki nagłówka: bilans, procent wygranych, nazwa trenera
  - Tabela z kolorystyką (zielone tło = wygrana, czerwone = przegrana)
  - Kolumny: #, Data, vs/@, Przeciwnik, W/L, Wynik, OT, Bilans, Frekwencja
  - Przycisk "Importuj mecze sezonu"
  - Przycisk "Importuj WSZYSTKIE sezony (1967-2008)"
  - Komunikaty sukcesu z liczbą zaimportowanych meczów
  
- **Nowe Shortcodes dla Meczów** 📱
  - `[sonics_games]` - Lista meczów z parametrami:
    - `season` - rok sezonu (np. "2007-08")
    - `season_id` - ID sezonu z bazy
    - `limit` - liczba meczów
    - `type` - "Regular Season", "Playoffs", "all"
    - `home_away` - "HOME", "AWAY"
    - `style` - "table" (tabela) lub "cards" (karty)
  - `[sonics_season_schedule]` - Pełny harmonogram sezonu z nagłówkiem i statystykami
  - Zmodyfikowano render kart meczów o nowe pola
  
- **Style CSS dla Meczów** 🎨
  - `.sonics-games-table` - pełna stylizacja tabel
  - `.sonics-game-card` - karty z gradientami
  - Kolorystyka: zielony (#00A651), złoty (#FFC72C), ciemnozielony (#2D5C2D)
  - Animacje: fadeIn, slideUp, hover effects
  - Responsywność: mobile, tablet, desktop
  - Grid layouts dla kart
  - Ikony vs/@ dla domu/wyjazdu
  
- **Dokumentacja Systemu Meczów** 📚
  - `GAMES_DOCUMENTATION.md` - Kompletna dokumentacja techniczna (import, baza, API, shortcodes)
  - `GAMES_EXAMPLES.md` - Przykłady użycia (HTML, PHP, CSS, integracje)
  - `GAMES_IMPLEMENTATION.md` - Podsumowanie implementacji i statystyki

### Zmienione
- **`Sonics_Database`** - Rozszerzone metody:
  - `add_game()` - teraz przyjmuje array z 17 parametrami
  - `get_games()` - dodano filtry (game_type, home_away, order, orderby, limit, offset)
  - `get_season_record()` - nowa metoda zwracająca bilans W-L
  - `get_season_by_year()` - nowa metoda wyszukująca sezon po roku
  
- **`Sonics_API_Importer`** - Nowe metody:
  - `import_games()` - przepisana z pełnym parserem HTML
  - `parse_games_table()` - parsing wszystkich kolumn z BR
  - `update_season_record()` - aktualizacja bilansu w tabeli seasons
  - `import_all_seasons()` - import 41 sezonów z throttlingiem
  
- **`admin/partials/games.php`** - Całkowicie przepisany:
  - Nowy interfejs z importem
  - Filtry sezonu i typu meczu
  - Statystyki w nagłówku
  - Tabela z kolorystyką W/L
  
- **`class-sonics-shortcodes.php`** - Rozszerzone:
  - `shortcode_games()` - nowe parametry i filtry
  - `shortcode_season_schedule()` - nowy shortcode
  - `render_game_card()` - aktualizacja o nowe pola
  - `render_games_table()` - nowa metoda
  - `render_games_cards()` - nowa metoda
  
- **`public-style.css`** - Dodano ~800 linii CSS dla meczów
- **`README.md`** - Zaktualizowano o system meczów v1.4.0

### Poprawione
- Parser dat meczów obsługuje format "Tue, Oct 31, 2007"
- Obsługa dogrywek (wykrywa OT, 2OT, 3OT, 4OT)
- Poprawne przypisywanie areny (Seattle Center Coliseum dla 1967-1995, KeyArena dla 1995-2008)
- Filtry `get_games()` z SQL prepare dla bezpieczeństwa
- Encoding UTF-8 w parserze HTML

## [1.3.0] - 2025-01-14

### Dodane
- **Automatyczny import z Basketball Reference** 🏀
  - Rozszerzona klasa `Sonics_API_Importer` z pełnym web scrapingiem
  - Metoda `import_season()` - pobiera sezon z BR (roster, statystyki, mecze)
  - Metoda `import_roster()` - parsuje tabelę składu zespołu
  - Metoda `import_season_stats()` - importuje statystyki zawodników (PPG, RPG, APG, FG%, 3P%, FT%)
  - Metoda `import_games()` - pobiera wyniki meczów sezonu
  - Metoda `import_player()` - import pojedynczego zawodnika
  - Parsowanie HTML z DOMDocument i XPath
  - Automatyczne tworzenie stron CPT dla importowanych zawodników i sezonów
  - Obsługa pól: data urodzenia, college, pozycja, wzrost, waga, Basketball Reference ID
- **Widget urodziny** 🎂
  - Nowa klasa `Sonics_Birthday_Widget` - widget WordPress
  - Wyświetla zawodników z urodzinami dzisiaj lub w najbliższych dniach
  - Konfigurowalne opcje:
    - Liczba dni do przodu (domyślnie 7)
    - Wyświetlanie wieku
    - Wyświetlanie odliczania
  - Animacja pulsowania dla urodzin dzisiejszych
  - Ikona 🎉 dla "Dziś!"
  - Integracja z CPT - linki do stron zawodników
  - Stylizacja w kolorach zespołu (zielony #00A651, złoty #FFC72C)
- Zaktualizowany formularz importu z checkboxem "Importuj również mecze"
- Szczegółowe komunikaty po imporcie (liczba zawodników, meczów)
- Error handling dla błędów połączenia z Basketball Reference
- JavaScript z progress barem i szczegółowymi komunikatami

### Zmienione
- AJAX `ajax_import_season()` teraz wywołuje rzeczywisty import z BR
- Formularz importu wyświetla format "2005-06" zamiast samego roku
- Zakres lat importu: 1995-2007 (ostatnie sezony Seattle SuperSonics)
- Widget dostępny w obszarze Widgets w panelu WordPress
- Usprawnienia UI w progress barze i komunikatach

### Naprawione
- Poprawiona obsługa błędów podczas scrapowania BR
- Rate limiting dla zapytań HTTP (30 sekund timeout)

---

## [1.2.0] - 2026-01-14

### Dodane
- **Automatyczne generowanie stron WordPress** 🚀
  - Custom Post Type `sonics_player` dla zawodników
  - Custom Post Type `sonics_season` dla sezonów
  - Automatyczne tworzenie stron po dodaniu zawodnika/sezonu w admin
  - SEO-friendly URLs: `/zawodnicy/gary-payton/`, `/sezony/2005-06-seattle-supersonics/`
  - Przycisk "Generuj strony" w Dashboard do masowej synchronizacji
  - AJAX endpoint `sonics_sync_pages` do synchronizacji
- **Klasa Sonics_CPT** z metodami:
  - `create_player_page()` - tworzy stronę zawodnika
  - `create_season_page()` - tworzy stronę sezonu
  - `sync_all_players()` - synchronizuje wszystkich zawodników
  - `sync_all_seasons()` - synchronizuje wszystkie sezony
  - `get_player_page_url()` - pobiera URL strony zawodnika
  - `get_season_page_url()` - pobiera URL strony sezonu
  - `delete_player_page()` - usuwa stronę zawodnika
  - `delete_season_page()` - usuwa stronę sezonu
- Automatyczne shortcodes w treści CPT (profil zawodnika, kadra, roster, mecze)
- Linki w `[sonics_players]` teraz prowadzą do wygenerowanych stron zamiast query params
- Karta "Automatyczne strony" w Dashboard admin
- Dokumentacja: **AUTO_STRONY.md** - kompletny przewodnik

### Zmienione
- Shortcode `[sonics_players]` używa teraz URLs z CPT zamiast `?player=X`
- AJAX `ajax_add_player()` automatycznie tworzy stronę po dodaniu zawodnika
- AJAX `ajax_import_season()` automatycznie tworzy stronę po imporcie sezonu
- Klasa `Sonics_Admin` ma instancję `Sonics_CPT`
- Plik główny wtyczki ładuje nową klasę `class-sonics-cpt.php`

### Naprawione
- Brak problemów (nowa funkcjonalność)

---

## [1.1.0] - 2026-01-14

### Dodane
- **Profile zawodników z historią sezonów** (jak Basketball Reference)
  - Nowa tabela `wp_sonics_player_stats` ze statystykami PPG, RPG, APG, shooting %
  - Shortcode `[sonics_player_profile player_id="X"]` wyświetla profil zawodnika
  - Tabela z historią występów przez wszystkie sezony
  - Linki "Profil" w tabelach zawodników
- **Kadra szkoleniowa**
  - Nowa tabela `wp_sonics_coaching_staff`
  - Admin strona "Kadra" do zarządzania trenerami i personelem
  - Shortcode `[sonics_coaching season_id="X"]` wyświetla kadrę sezonu
  - Foto, stanowisko, rola, biografia dla każdego członka kadry
  - AJAX dodawanie i usuwanie członków kadry
- **Rozszerzone dane sezonów**
  - Pola: `team_logo`, `coach_name`, `arena`, `wins`, `losses`, `playoff_result`
  - Możliwość dodania logo zespołu do każdego sezonu
- **Nowa relacja zawodnik-sezon**
  - Tabela `wp_sonics_season_players` łączy zawodników z sezonami
  - Zawodnicy mogą występować w wielu sezonach
  - Basketball Reference ID (`br_id`) dla linków do profili
- Rozszerzone style CSS dla profili i kadry szkoleniowej
- Nowe metody bazy danych: `get_player_season_history()`, `add_player_stats()`, `get_coaching_staff()`, `add_coaching_staff()`, `delete_coaching_staff()`
- JavaScript handlers dla formularza kadry szkoleniowej

### Zmienione
- Struktura tabeli `wp_sonics_players` (usunięto `season_id`, dodano `br_id`)
- Rozszerzona tabela `wp_sonics_box_scores` (dodano `season_id`, `minutes`)
- Zwiększono liczbę tabel z 4 do 6
- Zaktualizowano shortcode `[sonics_players]` o linki do profili
- Zaktualizowana dokumentacja (README, CHANGELOG)

### Naprawione
- Brak problemów (nowa wersja)

---

## [1.0.0] - 2026-01-14

### Dodane
- Inicjalna wersja wtyczki
- Zarządzanie sezonami (dodawanie, edycja, usuwanie)
- Zarządzanie meczami (CRUD operacje)
- Zarządzanie zawodnikami (baza danych)
- Dashboard administratora z statystykami
- 5 shortcodes dla frontendu:
  - `[sonics_last_game]` - Ostatni mecz
  - `[sonics_next_game]` - Następny mecz
  - `[sonics_games]` - Lista meczów
  - `[sonics_players]` - Roster zespołu
  - `[sonics_box_score]` - Box score
- System importu danych z Basketball Reference
- Wsparcie dla wgrywania CSV
- 4 tabele bazy danych automatycznie tworzone
- Responsywny interfejs admin
- Nowoczesne style CSS dla frontendu
- AJAX obsługę dla operacji bez przeładowania
- Bezpieczeństwo: sanitizacja, escapowanie, nonce tokens
- Dokumentacja i instrukcje instalacji

### Technologia
- PHP 7.2+
- WordPress Hooks i Filters
- jQuery dla AJAX
- CSS3 Flexbox i Grid
- MySQL/MariaDB

### Pliki główne
- `sonics-nba-manager.php` - Bootstrap wtyczki
- `includes/class-sonics-plugin.php` - Logika główna
- `includes/class-sonics-database.php` - Operacje BD
- `includes/class-sonics-api-importer.php` - Import danych
- `includes/class-sonics-shortcodes.php` - Shortcodes
- `admin/class-sonics-admin.php` - Panel admin
- `public/class-sonics-public.php` - Frontend
- `assets/css/admin-style.css` - Style admin
- `assets/css/public-style.css` - Style frontend
- `assets/js/admin-script.js` - Skrypty admin
- `assets/js/public-script.js` - Skrypty frontend

### Znane ograniczenia
- Import z Basketball Reference wymaga implementacji scrapera
- Box score wymaga pełnej implementacji UI
- CSV import wymaga obróbki file upload
- Wsparcie dla zdjęć zawodników tylko przez URL

## Planowane na przyszłość

### v1.1.0
- [ ] Integracja z Basketball Reference API
- [ ] Pełna implementacja box score
- [ ] Obsługa upload plików CSV
- [ ] Wykresy i statystyki zaawansowane
- [ ] REST API endpoints

### v1.2.0
- [ ] Powiadomienia o meczach
- [ ] Komentarze fanów
- [ ] Galeria zdjęć
- [ ] Eksport do PDF
- [ ] Panel front-end dla fanów

### v2.0.0
- [ ] Wielojęzyczność (i18n)
- [ ] WebHooks
- [ ] Mobile app API
- [ ] Advanced analytics
- [ ] Social media integration

## Wsparcie

- Email: support@example.com
- Docs: https://example.com/docs
- Bug Reports: https://github.com/example/sonics-nba-manager/issues
