mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 16:43:36 +00:00
event unification
This commit is contained in:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user