event unification

This commit is contained in:
2025-11-12 10:28:08 +01:00
parent 69c1725c9c
commit fd17ea0620

View File

@@ -2,31 +2,46 @@ import { z } from 'zod';
// canonical events for tracking user interactions
export type EventName =
// navigation & discovery
| 'page_view'
| 'click'
| 'product_view'
| 'product_hover'
| 'search'
| 'filter_apply'
| 'sort_change'
| 'add_to_cart'
| 'remove_from_cart'
| 'view_item_page'
| 'learn_more_about_item'
// cart operations
| 'add_item_to_cart'
| 'remove_item'
| 'checkout_start'
| 'purchase_complete'
// filtering & search
| 'search'
| 'filter_for_date'
| 'filter_for_amenities'
| 'filter_for_price'
| 'sort_change'
// dwell signals (3s threshold)
| 'hover_over_title'
| 'hover_over_paragraph'
| 'hover_over_link'
| 'hover_over_button'
// session
| 'session_start';
export const eventNames: readonly EventName[] = [
'page_view',
'click',
'product_view',
'product_hover',
'search',
'filter_apply',
'sort_change',
'add_to_cart',
'remove_from_cart',
'view_item_page',
'learn_more_about_item',
'add_item_to_cart',
'remove_item',
'checkout_start',
'purchase_complete',
'search',
'filter_for_date',
'filter_for_amenities',
'filter_for_price',
'sort_change',
'hover_over_title',
'hover_over_paragraph',
'hover_over_link',
'hover_over_button',
'session_start',
] as const;
@@ -51,16 +66,21 @@ export const eventBaseSchema = z.object({
page: z.string().min(1),
eventName: z.enum([
'page_view',
'click',
'product_view',
'product_hover',
'search',
'filter_apply',
'sort_change',
'add_to_cart',
'remove_from_cart',
'view_item_page',
'learn_more_about_item',
'add_item_to_cart',
'remove_item',
'checkout_start',
'purchase_complete',
'search',
'filter_for_date',
'filter_for_amenities',
'filter_for_price',
'sort_change',
'hover_over_title',
'hover_over_paragraph',
'hover_over_link',
'hover_over_button',
'session_start',
]),
productId: z.string().optional(),