models

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const SchemaVersion = "1.0"

SchemaVersion is the version of the event schema this code was generated from

Variables

This section is empty.

Functions

This section is empty.

Types

type AddedToCart

type AddedToCart struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	ProductId   string          `json:"product_id" validate:"required"`
	ProductName string          `json:"product_name" validate:"required"`
	CartTotal   float64         `json:"cart_total"`
	Metadata    json.RawMessage `json:"metadata"`
	UserId      string          `json:"user_id" validate:"required"`
	SessionId   string          `json:"session_id" validate:"required"`
	Quantity    int64           `json:"quantity" validate:"required"`
	Price       float64         `json:"price" validate:"required"`
	Currency    string          `json:"currency" validate:"required"`
}

AddedToCart represents: Fired when a user adds an item to cart

type ArticleShared

type ArticleShared struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	ArticleTitle string          `json:"article_title" validate:"required"`
	Platform     string          `json:"platform" validate:"required"`
	Metadata     json.RawMessage `json:"metadata"`
	UserId       string          `json:"user_id"`
	SessionId    string          `json:"session_id" validate:"required"`
	ArticleId    string          `json:"article_id" validate:"required"`
}

ArticleShared represents: Fired when a user shares an article

type ArticleViewed

type ArticleViewed struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	Category        string          `json:"category" validate:"required"`
	Tags            json.RawMessage `json:"tags"`
	Source          string          `json:"source"`
	Metadata        json.RawMessage `json:"metadata"`
	UserId          string          `json:"user_id"`
	ArticleTitle    string          `json:"article_title" validate:"required"`
	ReadTimeSeconds int64           `json:"read_time_seconds"`
	Referrer        string          `json:"referrer"`
	SessionId       string          `json:"session_id" validate:"required"`
	ArticleId       string          `json:"article_id" validate:"required"`
	Author          string          `json:"author" validate:"required"`
}

ArticleViewed represents: Fired when a user views a blog article

type CheckoutStarted

type CheckoutStarted struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	UserId    string          `json:"user_id" validate:"required"`
	SessionId string          `json:"session_id" validate:"required"`
	CartId    string          `json:"cart_id" validate:"required"`
	NumItems  int64           `json:"num_items" validate:"required"`
	CartTotal float64         `json:"cart_total" validate:"required"`
	Currency  string          `json:"currency" validate:"required"`
	Items     json.RawMessage `json:"items" validate:"required"`
	Metadata  json.RawMessage `json:"metadata"`
}

CheckoutStarted represents: Fired when a user begins checkout process

type CommentPosted

type CommentPosted struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	ParentCommentId string          `json:"parent_comment_id"`
	CommentLength   int64           `json:"comment_length" validate:"required"`
	Metadata        json.RawMessage `json:"metadata"`
	UserId          string          `json:"user_id" validate:"required"`
	SessionId       string          `json:"session_id" validate:"required"`
	ArticleId       string          `json:"article_id" validate:"required"`
	CommentId       string          `json:"comment_id" validate:"required"`
}

CommentPosted represents: Fired when a user posts a comment

type NewsletterSubscribed

type NewsletterSubscribed struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	UserId           string          `json:"user_id"`
	SessionId        string          `json:"session_id" validate:"required"`
	Email            string          `json:"email" validate:"required"`
	SubscriptionType string          `json:"subscription_type" validate:"required"`
	Source           string          `json:"source"`
	Metadata         json.RawMessage `json:"metadata"`
}

NewsletterSubscribed represents: Fired when a user subscribes to newsletter

type OrderCompleted

type OrderCompleted struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	Items           json.RawMessage `json:"items" validate:"required"`
	DiscountAmount  float64         `json:"discount_amount"`
	UserId          string          `json:"user_id" validate:"required"`
	OrderId         string          `json:"order_id" validate:"required"`
	TotalAmount     float64         `json:"total_amount" validate:"required"`
	Currency        string          `json:"currency" validate:"required"`
	PaymentMethod   string          `json:"payment_method" validate:"required"`
	ShippingAddress json.RawMessage `json:"shipping_address" validate:"required"`
	DiscountCode    string          `json:"discount_code"`
	Metadata        json.RawMessage `json:"metadata"`
	SessionId       string          `json:"session_id" validate:"required"`
	CartId          string          `json:"cart_id"`
	NumItems        int64           `json:"num_items" validate:"required"`
}

OrderCompleted represents: Fired when an order is successfully placed

type PageView

type PageView struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	// User ID (if logged in)
	UserId string `json:"user_id"`
	// Session identifier
	SessionId string `json:"session_id" validate:"required"`
	// Full page URL
	PageUrl string `json:"page_url" validate:"required"`
	// Page title
	PageTitle string `json:"page_title"`
	// Referrer URL
	Referrer string `json:"referrer"`
	// Time spent on page (milliseconds)
	DurationMs int64 `json:"duration_ms"`
	// Additional page metadata
	Metadata json.RawMessage `json:"metadata"`
}

PageView represents: Fired when a user views a page

type ProductViewed

type ProductViewed struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	ProductName     string          `json:"product_name" validate:"required"`
	ProductCategory string          `json:"product_category" validate:"required"`
	Price           float64         `json:"price" validate:"required"`
	Source          string          `json:"source"`
	Metadata        json.RawMessage `json:"metadata"`
	UserId          string          `json:"user_id" validate:"required"`
	Currency        string          `json:"currency" validate:"required"`
	SessionId       string          `json:"session_id" validate:"required"`
	ProductId       string          `json:"product_id" validate:"required"`
}

ProductViewed represents: Fired when a user views a product page

type Purchase

type Purchase struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	// Currency code
	Currency string `json:"currency" validate:"oneof=USD EUR GBP INR"`
	// Payment method used
	PaymentMethod string `json:"payment_method" validate:"oneof=card paypal stripe razorpay"`
	// Array of purchased items
	Items json.RawMessage `json:"items"`
	// User who made the purchase
	UserId string `json:"user_id" validate:"required"`
	// Unique order identifier
	OrderId string `json:"order_id" validate:"required"`
	// Purchase amount
	Amount float64 `json:"amount" validate:"required"`
}

Purchase represents: Fired when a user makes a purchase

type SearchPerformed

type SearchPerformed struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	UserId          string          `json:"user_id"`
	SessionId       string          `json:"session_id" validate:"required"`
	Query           string          `json:"query" validate:"required"`
	ResultsCount    int64           `json:"results_count" validate:"required"`
	ClickedResultId string          `json:"clicked_result_id"`
	Metadata        json.RawMessage `json:"metadata"`
}

SearchPerformed represents: Fired when a user searches for content

type UserSignup

type UserSignup struct {
	TenantID  string    `json:"tenant_id" validate:"required"`
	EventID   int64     `json:"event_id,omitempty"`
	Timestamp time.Time `json:"timestamp,omitempty"`

	// Where the signup originated
	SignupSource string `json:"signup_source" validate:"oneof=web mobile api"`
	// Device type used for signup
	SignupDevice string `json:"signup_device" validate:"oneof=desktop mobile tablet"`
	// Referrer URL where user came from
	Referrer string `json:"referrer"`
	// User country from signup
	Country string `json:"country"`
	// Marketing campaign identifier
	UtmCampaign string `json:"utm_campaign"`
	// Additional flexible metadata
	Metadata json.RawMessage `json:"metadata"`
	// Unique user identifier
	UserId string `json:"user_id" validate:"required"`
	// User email address
	Email string `json:"email" validate:"required"`
}

UserSignup represents: Fired when a new user signs up

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL