This commit is contained in:
2026-04-19 22:43:02 +02:00
parent 10cba24727
commit fd1e23eb26
23 changed files with 2320 additions and 72 deletions

View File

@@ -1,7 +1,7 @@
# ARCHITECTURE
## Zakres
- Dokument opisuje aktualna architekture kodu (stan repo: 2026-04-18).
- Dokument opisuje aktualna architekture kodu (stan repo: 2026-04-19).
- Zrodlem prawdy sa: `src/`, `routes/web.php`, `database/migrations/`.
## Warstwy systemu
@@ -21,6 +21,7 @@
- `Automation`: reguly event-condition-action, historia wykonan.
- `Settings`: konfiguracja statusow, integracji, cron, skrzynek, szablonow, drukowania, mapowan projektow.
- `Printing`: API kolejkowania wydruku i klucze API dla klienta desktop.
- `Statistics`: raporty i agregacje dzienne zamowien z filtrowaniem po datach, kanalach i grupach statusow.
- `Cron`: synchronizacje integracji i zadania utrzymaniowe.
- `Info`: endpoint diagnostyczny `/info`.
@@ -35,6 +36,8 @@
- `App\Modules\Printing\PrintApiController`: endpointy kolejki wydruku (session/api-key).
- `App\Modules\Automation\AutomationService`: trigger eventow, ewaluacja warunkow, wykonanie akcji.
- `App\Modules\Settings\ProjectMappingController`: CRUD mapowania produkt -> skrypt generacji projektu.
- `App\Modules\Statistics\OrdersStatisticsController`: endpoint `/statistics/orders`, walidacja filtrow i przygotowanie modelu tabeli.
- `App\Modules\Statistics\OrdersStatisticsRepository`: agregacje SQL dzienne (`COUNT`, `SUM total_net`, `SUM total_with_tax`) i mapowanie filtrow kanal/status-group.
## Integracje zewnetrzne
- Allegro: OAuth, import zamowien, sync statusow push/pull, mapowania statusow i dostaw.
@@ -47,6 +50,18 @@
- Controller waliduje dane i CSRF, wywoluje Repository/Service.
- Response: HTML (widoki) albo JSON (endpointy AJAX/API).
### Przeplyw Statystyk Zamowien
- Route: `GET /statistics/orders` (wymaga sesji uzytkownika).
- Controller:
- parsuje `date_from`, `date_to`, `channels[]`, `status_groups[]`,
- ustawia domyslne grupy statusow (wszystkie poza grupa `anulowane`),
- pobiera agregaty dzienne z repozytorium,
- buduje tabele z dynamicznymi kolumnami kanalow i stopka `Razem`.
- Repository:
- liczy kanaly jako `allegro` oraz `shoppro:{integration_id}`,
- dla statusu efektywnego allegro stosuje mapowanie `allegro_order_status_mappings`,
- zwraca zagregowane rekordy dzien/kanal.
## Glowny przeplyw Cron
- Trigger:
- `GET /cron` (public token) lub web-cron w `Application::maybeRunCronOnWeb`.