gohorsejobs/backend/internal/models/job_view.go
Tiago Yamamoto b23393bf35 feat: implement stripe subscriptions, google analytics, and user crud
- Backend:
  - Add Stripe subscription fields to companies (migration 019)
  - Implement Stripe Checkout and Webhook handlers
  - Add Metrics API (view count, recording)
  - Update Company and Job models
- Frontend:
  - Add Google Analytics component
  - Implement User CRUD in Backoffice (Dashboard)
  - Add 'Featured' badge to JobCard
- Docs: Update Roadmap and artifacts
2025-12-27 12:06:54 -03:00

24 lines
886 B
Go

package models
import "time"
// JobView represents a view record for analytics
type JobView struct {
ID string `json:"id" db:"id"`
JobID string `json:"jobId" db:"job_id"`
UserID *string `json:"userId,omitempty" db:"user_id"`
IPAddress *string `json:"ipAddress,omitempty" db:"ip_address"`
UserAgent *string `json:"userAgent,omitempty" db:"user_agent"`
ViewedAt time.Time `json:"viewedAt" db:"viewed_at"`
}
// JobMetrics represents analytics data for a job
type JobMetrics struct {
JobID int `json:"jobId"`
ViewCount int `json:"viewCount"`
UniqueViewers int `json:"uniqueViewers"`
ApplicationCount int `json:"applicationCount"`
ConversionRate float64 `json:"conversionRate"` // applications / views * 100
ViewsLast7Days int `json:"viewsLast7Days"`
ViewsLast30Days int `json:"viewsLast30Days"`
}