package adtracking import ( "time" ) type AdTrackingLink struct { ID uint64 `gorm:"primaryKey" json:"id"` Name string `gorm:"size:128;not null" json:"name"` Code string `gorm:"size:64;not null;uniqueIndex:uk_ad_tracking_links_code" json:"code"` ChannelType string `gorm:"size:64;not null;default:'other';index:idx_ad_tracking_links_channel" json:"channel_type"` TargetURL string `gorm:"size:512;not null;default:'https://hao858.com/'" json:"target_url"` Status string `gorm:"size:16;not null;default:'active';index:idx_ad_tracking_links_status" json:"status"` CostCent int64 `gorm:"not null;default:0" json:"cost_cent"` Notes string `gorm:"size:500;not null;default:''" json:"notes"` CreatedBy uint64 `gorm:"not null;default:0" json:"created_by"` CreatedAt time.Time `gorm:"index:idx_ad_tracking_links_created" json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (AdTrackingLink) TableName() string { return "ad_tracking_links" } type AdTrackingClick struct { ID uint64 `gorm:"primaryKey" json:"id"` LinkID uint64 `gorm:"not null;index:idx_ad_tracking_clicks_link_created,priority:1" json:"link_id"` Code string `gorm:"size:64;not null;index:idx_ad_tracking_clicks_code_created,priority:1" json:"code"` IP string `gorm:"size:64;not null;default:'';index:idx_ad_tracking_clicks_ip_created,priority:1" json:"ip"` UserAgent string `gorm:"size:512;not null;default:''" json:"user_agent"` DeviceType string `gorm:"size:32;not null;default:'unknown'" json:"device_type"` OS string `gorm:"size:32;not null;default:'unknown'" json:"os"` Browser string `gorm:"size:32;not null;default:'unknown'" json:"browser"` Referer string `gorm:"size:512;not null;default:''" json:"referer"` VisitorID string `gorm:"size:64;not null;default:'';index:idx_ad_tracking_clicks_visitor,priority:1" json:"visitor_id"` CreatedAt time.Time `gorm:"index:idx_ad_tracking_clicks_link_created,priority:2;index:idx_ad_tracking_clicks_code_created,priority:2;index:idx_ad_tracking_clicks_ip_created,priority:2;index:idx_ad_tracking_clicks_visitor,priority:2" json:"created_at"` } func (AdTrackingClick) TableName() string { return "ad_tracking_clicks" }