# KRONIKA OPERACYJNA PROJEKTU "SLICEHUB PRO" (ENTERPRISE) **Główny Architekt:** Gema **Cel:** Budowa niezawodnego systemu ERP/POS dla gastronomii, opartego na architekturze mikroserwisów, modelu Event-Driven oraz ekstremalnej optymalizacji. --- ## ETAP 1: INICJACJA I MISJA ZEROWA **Wsad od Użytkownika:** Przekazanie dokumentu `Baza_Projektu_SliceHub_PRO.txt` zawierającego "Misję Zerową" oraz twarde rygory architektoniczne: * Battlefield jako Centralne Dowodzenie (POS Hub), nie ślepy KDS. * Dualizm znakowy: Klucze w ASCII, wyświetlanie w UTF-8. * Architektura ścieżek (3 poziomy w górę do API) i globalny zasięg funkcji JS. * Model WebSockets realizowany przez poboczny mikroserwis Node.js. **Reakcja Gemy (Analiza Strategiczna):** Pełna asymilacja zasad. Potwierdzenie zrozumienia definicji Battlefielda, modelu bezstanowego "Action Switch" w PHP, rygoru walidacji ASCII/UTF-8 oraz zidentyfikowanie długu technologicznego w starym kodzie. --- ## ETAP 2: OCENA STANU OBECNEGO BAZY DANYCH **Pytanie Użytkownika:** Polecenie wykonania wyciągu z przesłanego schematu starej bazy w celu namierzenia celów refaktoryzacji. **Odpowiedź Gemy:** Identyfikacja kluczowych tabel: * `sys_items` (Główna baza asortymentowa) * `wh_stock` (Stany magazynowe, partie) * `wh_ksef_mapping` (Słownik mapowania KSeF) --- ## ETAP 3: INŻYNIERIA ODWROTNA BAZY DANYCH (schema_v2.sql) **Polecenie Użytkownika (STOP):** Zmiana priorytetów. Nakaz wygenerowania nowej struktury `schema_v2.sql` eliminującej dług technologiczny (np. `cart_json`), wdrażającej relacyjność, twarde blokady znakowe i fundamenty pod KSeF oraz logikę magazynową (PZ, RW, IN). **Plan Ewolucji Gemy:** 1. Eksterminacja `cart_json` i stworzenie `sh_order_items` oraz `sh_order_item_modifiers`. 2. Wymuszenie dualizmu znakowego w całej strukturze (ASCII BIN dla kluczy, UTF-8 dla opisów). 3. Modernizacja `wh_stock` (dodanie partii i dat ważności). 4. Przekształcenie mapowania w `wh_ksef_mapping`. **Korekta Użytkownika (ANALIZA):** Wskazanie braków w planie: matrycy receptur (Most Produkcyjny / `waste_percent`), stawek podatkowych VAT (KSeF) oraz wymuszenia ASCII dla bazy menu (`sh_menu_items`). **Domknięcie Architektury przez Gemę:** Akceptacja korekt i wprowadzenie brakujących mechanizmów zabezpieczających: * Znaczniki czasu (`updated_at`) i `is_deleted` dla architektury Offline-First (synchronizacja IndexedDB). * Pełna infrastruktura Multi-Tenant wkomponowana w relacje. **Akcja:** Wygenerowanie sterylnego skryptu DDL `schema_v2.sql` wprowadzającego nowy ład. --- ## ETAP 4: WDROŻENIE I KONFIGURACJA ŚRODOWISKA **Pytania Użytkownika:** 1. *Podmienić, czy stworzyć nową bazę?* -> Gema: Tworzymy nową (`slicehub_pro_v2`), starą zostawiamy jako dawcę do skryptu ETL. 2. *Jaka ma być ustawiona kalkulacja w bazie?* -> Gema: Domyślnie `utf8mb4_unicode_ci` (skrypt automatycznie wymusza ASCII tam, gdzie to konieczne). 3. *Czy to słuszny wybór?* -> Gema: Tak. Ekstremalnie przyspiesza to indeksy (porównywanie binarne ASCII) i zabezpiecza przez wstrzyknięciem obcych znaków przy KSeF, gwarantując niezawodność na poziomie Enterprise. **Status:** Użytkownik potwierdza wgranie bazy lokalnie na XAMPP. --- ## ETAP 5: SEPARACJA I SATELITA MARKETINGOWY (ADR) **Pytanie Użytkownika:** Propozycja oddzielenia modułów na poziomie schematów w jednej bazie, aby zachować autonomię, np. dla modułu Marketingu (Studio). Przekazanie dokumentu architektonicznego ADR Satelity Marketingowego v2.0. **Reakcja Gemy (Krytyczna Analiza Architektoniczna):** Wykrycie i zablokowanie antywzorca "Modularnego Monolitu". * **Zagrożenie:** Uprawnienia logiczne (schematy w jednej bazie) nie chronią przed wyczerpaniem zasobów sprzętowych. Wadliwy skrypt Marketingu położyłby magazyn i POS. * **Rozwiązanie (Database-per-service):** Pełna fizyczna separacja. Satelita musi mieć własny serwer/bazę danych. Komunikacja odbywa się asynchronicznie przez szynę zdarzeń (np. RabbitMQ / Redis Streams). Satelita buduje własne, zredukowane projekcje danych magazynowych. * **Akceptacja pozostałych założeń ADR:** Zatwierdzenie walidacji w API Gateway, wyrzucenia operacji A/V do workerów Node.js oraz modelu "Audio-First". **Potwierdzenie Użytkownika:** Akceptacja fizycznej separacji i koncepcji "Własnej Twierdzy" oraz "Kopii Roboczej" (Data Projection) dla Satelity Marketingowego. Potwierdzenie czystości protokołu komunikacyjnego na szynie (Klucze ASCII, Payload UTF-8). --- ## ETAP 6: KONSOLIDACJA **Polecenie Użytkownika:** Zapisanie statusu prac. **Wynik:** Wygenerowanie raportu statusowego i przejście w stan czuwania, w oczekiwaniu na rozpoczęcie operacji kodowania (Skrypt migracyjny ETL w PHP lub refaktoryzacja starego API do modelu "Action Switch").