# Historia zmian

Format według [Keep a Changelog](https://keepachangelog.com/pl/1.1.0/), numeracja według [SemVer](https://semver.org/lang/pl/).

Ten plik jest źródłem dla strony `/changelog`. Wpisy pisane są językiem użytkownika, nie programisty. Szczegóły techniczne idą do opisu migracji, nie tutaj.

## [Nieopublikowane]

Etap 2 w przygotowaniu: pracownicy z uprawnieniami i grafikiem, usługi z cennikiem, klientki z kartą i importem z CSV.

## [1.0.0] - 2026-09-17

Pierwsza działająca wersja. Fundament, na którym staną kolejne moduły.

### Dodane
- Zakładanie konta salonu. 14 dni pełnego planu PRO, bez podawania karty.
- Logowanie, wylogowanie i reset hasła linkiem wysyłanym e-mailem. Link działa godzinę i tylko raz.
- Blokada konta na 15 minut po pięciu nieudanych próbach logowania oraz blokada adresu IP po dwudziestu.
- Zmiana hasła wylogowuje wszystkie pozostałe urządzenia.
- Panel z informacją o koncie, planie i saldzie SMS oraz listą tego, co już działa, a co dochodzi w kolejnych etapach.
- Publiczna strona salonu pod własnym adresem, na przykład `/studio-anna`. Zapisy online dochodzą w etapie 7.
- Strony `/version` i `/changelog`, obie publiczne.
- Panel operatora: lista salonów, stan systemu, migracje bazy i dziennik operacji.
- Stan systemu `/admin/health` z dziesięcioma sprawdzeniami i osobnym wejściem dla monitoringu zewnętrznego.
- Instalator przeprowadzający przez wymagania, bazę, konta i konfigurację, blokujący się po zakończeniu.
- Kopia zapasowa bazy uruchamiana codziennie, z rotacją 7 kopii dziennych, 4 tygodniowych i 6 miesięcznych.
- Kolejka zadań odporna na podwójne uruchomienie crona.

### Uwaga
- Po instalacji trzeba dodać jeden wpis w cronie. Bez niego nie działa kolejka zadań ani kopie zapasowe. Gotowa linia do skopiowania jest na ostatnim ekranie instalatora, a `/admin/health` ostrzega, jeśli cron nie ruszył.

## [0.1.0] - 2026-09-17

### Dodane
- Dokumentacja systemu: koncepcja, architektura, model danych, uprawnienia, moduły, SMS, płatności, rezerwacje online, wersjonowanie, etapy wdrożenia, instalacja, bezpieczeństwo i RODO, standardy kodu.
- Schemat bazy danych 1.0.0 do instalacji od zera oraz schemat docelowy jako plik referencyjny.
- Migracja inicjalna `0001_init.sql`.
- Podział prac na 10 etapów z kryteriami odbioru dla każdego.

### Ustalone decyzje
- PHP 8.2 z MySQL 8 na hostingu współdzielonym.
- Jedna baza danych dla wszystkich salonów, izolacja przez kolumnę `salon_id`.
- Operator SMS: sms.pl, przez API zgodne z SerwerSMS HTTPS API v2, za warstwą adaptera.
- Płatności i abonamenty: Stripe Subscriptions.
- Wszystkie znaczniki czasu w bazie w UTC, prezentacja w strefie salonu.
