# Amy Design — uruchomienie panelu

Panel znajduje się pod adresem `/admin/`. Strona zachowuje aktualną treść także przed podłączeniem bazy.

## 1. Supabase

1. Utwórz projekt na https://supabase.com/dashboard (samodzielnie wybierz plan i zaakceptuj warunki usługi).
2. W SQL Editor uruchom raz `setup/schema.sql`, następnie `setup/seed.sql` z paczki ZIP. Nie uruchamiaj schema.sql drugi raz — reguły dostępu już istnieją.
3. Authentication → Users: utwórz konto administratora z e-mailem i własnym hasłem. Wyłącz rejestrację nowych użytkowników w ustawieniach Auth, jeśli nie jest potrzebna.
4. Skopiuj UUID tego konta i w SQL Editor wykonaj:

```sql
insert into public.amy_admins(user_id) values ('TUTAJ-UUID-KONTA');
```

Nie zmieniaj reguł dostępu na publiczny zapis. Sam formularz logowania nie chroni bazy — robią to reguły RLS z pliku SQL.

## 2. Połączenie

1. W ustawieniach projektu skopiuj Project URL i publiczny Publishable key (lub starszy klucz anon).
2. Otwórz `/admin/` na stronie. W formularzu pierwszego uruchomienia wpisz te dwie wartości i pobierz `config.js`.
3. Zastąp `cms/config.js` pobranym plikiem i ponownie opublikuj paczkę strony. W Sites możesz przekazać ten publiczny plik do wdrożenia w czacie.
4. Nigdy nie dodawaj do kodu secret key, service_role ani hasła administratora.
5. Otwórz `/admin/`, zaloguj się utworzonym kontem.

## 3. Edycja

- Portfolio: dodawaj projekty i galerie do 10 zdjęć. Każde zdjęcie JPEG, PNG lub WebP do 5 MB. Możesz zmieniać kategorię i kolejność, publikować, ukrywać i usuwać prace.
- Treści: edytuj teksty i obrazy w odpowiedniej zakładce. `Zapisz i opublikuj` zapisuje wszystkie zmiany treści.
- Cennik: dodawaj, ukrywaj, usuwaj i przestawiaj usługi. Zmieniaj opisy, ceny i kategorie.
- Kontakt / SEO / Stopka: zmieniaj informacje w panelu.
- Projekty zapisują się osobno od treści strony. Po zapisie odśwież publiczną stronę, aby zobaczyć zmiany.
- Gdy treści zmieniły się w innym oknie, panel odrzuci nadpisanie starej wersji. Skopiuj niezapisane wartości, odrzuć zmiany i wprowadź je do aktualnych danych.

## Zdjęcia i prywatność

`amy-portfolio` jest prywatnym magazynem. Zdjęcia szkiców dostępne są tylko administratorom; opublikowane projekty otrzymują krótkotrwałe adresy zdjęć. Po ukryciu projektu wcześniej wydany adres może działać do 10 minut.

`amy-site-assets` zawiera publiczne logo i obrazy strony. Nie przesyłaj do niego prywatnych materiałów. Zastępowane obrazy nie są automatycznie kasowane, aby nie uszkodzić odnośników w innych sekcjach; można je później uporządkować w Supabase Storage.

## Hosting i kopie

Folder `strona/` z ZIP może działać na statycznym hostingu HTTPS (np. Sites albo Netlify). Katalog publikacji musi zawierać index.html; nie publikuj folderu setup jako folderu strony. Nie trzeba przepisywać projektu na React. Po podłączeniu Supabase zmiana treści lub projektu nie wymaga ponownego wdrażania HTML.

Otwieranie index.html przez file:// wystarcza do podglądu statycznej strony. Panel i baza wymagają hostingu HTTP(S). Kopia ZIP zawiera treści początkowe, ale po uruchomieniu CMS aktualne dane i zdjęcia znajdują się w Supabase — wykonuj osobno kopie bazy i magazynu plików.

Przed oddaniem dostępu przetestuj na swoim projekcie: logowanie administratora, odmowę zapisu dla zwykłego użytkownika, dodanie galerii jako szkic, publikację, ukrycie, usunięcie oraz edycję treści. W tej paczce nie skonfigurowano jeszcze projektu Supabase, więc testy na rzeczywistej bazie należy wykonać po podłączeniu.

Dokumentacja: https://supabase.com/docs/guides/auth · https://supabase.com/docs/guides/database/postgres/row-level-security · https://supabase.com/docs/guides/storage/buckets/fundamentals
