3.0 KiB
3.0 KiB
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 |
| 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.