package model import "time" type URL struct { ID int64 `json:"id"` ShortCode string `json:"short_code"` OriginalURL string `json:"original"` UserID string `json:"user_id"` Clicks int64 `json:"clicks"` IsActive bool `json:"is_active"` CreatedAt int64 `json:"created_at"` ExpiresAt int64 `json:"expires_at,omitempty"` UpdatedAt int64 `json:"updated_at"` } type ClickLog struct { ID int64 `json:"id"` URLID string `json:"url_id"` IPAddress string `json:"ip_address"` UserAgent string `json:"user_agent"` Referer string `json:"referer"` ClickedAt time.Time `json:"clicked_at"` } type CreateURLRequest struct { OriginalURL string `json:"original"` CustomCode string `json:"custom_code,omitempty"` ExpiryHours int `json:"expiry_hours,omitempty"` } type CreateURLResponse struct { ShortCode string `json:"short_code" binding:"required"` ShortURL string `json:"short_url"` OriginalURL string `json:"original_url"` ExpiresAt *time.Time `json:"expires_at,omitempty"` CreatedAt time.Time `json:"created_at"` } type URLStats struct { ShortCode string `json:"short_code"` OriginalURL string `json:"original_url"` Clicks int64 `json:"clicks"` IsActive bool `json:"is_active"` CreatedAt int64 `json:"created_at"` ExpiresAt int64 `json:"expires_at,omitempty"` RecentClick []ClickLog `json:"recent_click"` }