mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 10:42:57 +00:00
upload
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
// VisitorEvent stores client-side analytics events
|
||||
// TableName: visitor_events
|
||||
// Common events: "page_view", "click", "interaction"
|
||||
// Fields kept generic to avoid rigid schema changes
|
||||
// Metadata stores arbitrary event payload (e.g., element details)
|
||||
|
||||
type VisitorEvent struct {
|
||||
BaseModel
|
||||
|
||||
EventType string `gorm:"index;size:50" json:"event_type"`
|
||||
Page string `gorm:"index;size:512" json:"page"` // Short page path
|
||||
PagePath string `gorm:"index;size:512" json:"page_path"` // Full page path (alias for Page)
|
||||
PageName string `gorm:"size:512" json:"page_name"` // Human-readable page name
|
||||
Element string `gorm:"size:256" json:"element"` // Element identifier (for clicks/interactions)
|
||||
Referrer string `gorm:"size:512" json:"referrer"`
|
||||
UserAgent string `gorm:"size:512" json:"user_agent"`
|
||||
IPAddress string `gorm:"size:64" json:"ip_address"`
|
||||
SessionID string `gorm:"size:128;index" json:"session_id"`
|
||||
UserID *uint `gorm:"index" json:"user_id,omitempty"`
|
||||
Data json.RawMessage `gorm:"type:jsonb" json:"data"` // Generic event data
|
||||
Metadata json.RawMessage `gorm:"type:jsonb" json:"metadata"` // Legacy metadata field
|
||||
}
|
||||
|
||||
func (VisitorEvent) TableName() string { return "visitor_events" }
|
||||
Reference in New Issue
Block a user