Wiki
This commit is contained in:
69
Architektura.md
Normal file
69
Architektura.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Architektura
|
||||
|
||||
## Technologický stack
|
||||
|
||||
| Vrstva | Technologie |
|
||||
|--------|-------------|
|
||||
| Framework | Laravel 12, PHP 8.2+ |
|
||||
| Frontend | Livewire 3, Tailwind CSS, Vite |
|
||||
| Autentizace | Laravel Jetstream + Sanctum |
|
||||
| Queue | Laravel Queue (databáze nebo Redis) |
|
||||
| Debugging | Laravel Telescope, Laravel Pulse |
|
||||
| Email | SMTP / Microsoft Graph |
|
||||
| Externí integrace | SmartEmailing API, Vario SOAP, PBX |
|
||||
|
||||
## Adresářová struktura
|
||||
|
||||
```
|
||||
app/
|
||||
├── Console/Commands/ # Artisan příkazy (sync, rebuild, backfill...)
|
||||
├── Http/
|
||||
│ ├── Controllers/
|
||||
│ │ ├── Api/Tracking/ # Browser tracking endpointy
|
||||
│ │ ├── Api/Eshop/ # Server-to-server eshop endpointy
|
||||
│ │ └── Admin/ # Web admin controllery
|
||||
│ └── Middleware/
|
||||
│ ├── ResolveTrackingSite # Ověření X-Site-Key
|
||||
│ ├── CorsForTracking # CORS pro tracking API
|
||||
│ └── LogEshopRequest # Logování eshop requestů
|
||||
├── Jobs/ # Background joby (queue)
|
||||
├── Livewire/Admin/ # Livewire komponenty admin UI
|
||||
├── Models/ # Eloquent modely
|
||||
├── Services/
|
||||
│ ├── Actions/ # ActionRunner + drivery akcí
|
||||
│ ├── Ai/ # OpenAI integrace
|
||||
│ ├── Funnel/ # RulesEngine, FunnelAssigner
|
||||
│ ├── GeoIP/ # Geo-lookup
|
||||
│ ├── Ingest/ # IngestEvent pipeline
|
||||
│ ├── Integrations/ # SmartEmailing klient
|
||||
│ ├── Tracking/ # IdentityLinker, CategoryTree, BotDetector...
|
||||
│ └── Vario/ # Vario SOAP sync
|
||||
public/
|
||||
└── collect.js # Tracking skript pro weby/eshopy
|
||||
routes/
|
||||
├── api.php # API endpointy
|
||||
└── web.php # Admin web rozhraní
|
||||
```
|
||||
|
||||
## Klíčové modely
|
||||
|
||||
| Model | Tabulka | Popis |
|
||||
|-------|---------|-------|
|
||||
| `Contact` | `contacts` | Identifikovaný zákazník/návštěvník |
|
||||
| `FunnelCart` | `funnel_carts` | Nákupní košík |
|
||||
| `FunnelEvent` | `funnel_events` | Každá trackovací událost |
|
||||
| `FunnelRule` | `funnel_rules` | Pravidlo automace (trigger + podmínky) |
|
||||
| `FunnelAction` | `funnel_actions` | Akce spouštěná pravidlem |
|
||||
| `FunnelState` | `funnel_states` | Aktuální stav kontaktu v segmentu/sloupci |
|
||||
| `Segment` | `segments` | Skupina kontaktů s vlastními pravidly |
|
||||
| `FunnelColumn` | `funnel_columns` | Sloupec (stav) v segmentu |
|
||||
| `EmailCampaign` | `email_campaigns` | Emailová kampaň |
|
||||
| `EmailCampaignSend` | `email_campaign_sends` | Jeden plánovaný email send |
|
||||
| `EmailTemplate` | `email_templates` | Šablona emailu |
|
||||
| `TrackingSite` | `tracking_sites` | Web/eshop identifikovaný Site Key |
|
||||
| `TrackingProduct` | `tracking_products` | Produkt zaznamenaný z košíků |
|
||||
| `VisitorIdentity` | `visitor_identities` | Mapping visitor_id → contact_id |
|
||||
|
||||
## Multi-tenancy
|
||||
|
||||
Aplikace je multi-tenant přes `team_id`. Každý tým má vlastní kontakty, segmenty, kampaně a tracking sites. Autentizace týmů probíhá přes Laravel Jetstream.
|
||||
Reference in New Issue
Block a user