diff --git a/event/event.go b/event/event.go index 1e4cf17..0630359 100644 --- a/event/event.go +++ b/event/event.go @@ -92,6 +92,15 @@ const ( // `track.*` RabbitMQ routing pattern by construction. TrackPromotionView Type = "track.promotion_view" TrackPromotionClick Type = "track.promotion_click" + // TrackEvent — free-form named storefront event (custom analytics + // signals the storefront wires ad hoc: open_cart, plp_sort_change, + // plp_filter_change, …). Producer: lib/track.ts trackEvent() beacons / + // the data-track attribute island (POST /api/track/event). Consumer: + // slask-tracking (pkg/view CustomEvent → pkg/customstats) — per-name + // counters for the tracking read surface. Payload is the wire + // CustomEvent (name + flat string props). Browser-beacon path only, + // like the promotion pair. + TrackEvent Type = "track.event" // Newsletter campaign attribution (review 3.8). Producer: the order // service's MailerSend webhook receiver (cmd/order/newsletter-webhook.go) @@ -207,7 +216,7 @@ var KnownTypes = []Type{ TrackSession, TrackSearch, TrackClick, TrackCart, TrackPurchase, TrackImpression, TrackAction, TrackPageView, TrackPageEngaged, TrackPageAction, TrackExperiment, - TrackPromotionView, TrackPromotionClick, + TrackPromotionView, TrackPromotionClick, TrackEvent, // Track* constants without a browser beacon: consumed over AMQP only, // but the drift-guard test requires every declared Track* constant to // appear here so the HTTP ?event_types= surface stays exhaustive.