package natspub import ( "time" "github.com/google/uuid" ) type AccessAttempted struct { EventID uuid.UUID `json:"event_id"` GuestID uuid.UUID `json:"guest_id"` TokenID uuid.UUID `json:"token_id"` AccessLogID uuid.UUID `json:"access_log_id"` Fingerprint map[string]any `json:"fingerprint,omitempty"` IPAddress string `json:"ip_address,omitempty"` UserAgent string `json:"user_agent,omitempty"` Referrer string `json:"referrer,omitempty"` OccurredAt time.Time `json:"occurred_at"` } type FraudScored struct { EventID uuid.UUID `json:"event_id"` GuestID uuid.UUID `json:"guest_id"` TokenID uuid.UUID `json:"token_id"` AccessLogID uuid.UUID `json:"access_log_id"` Score int `json:"score"` Risk string `json:"risk"` Reasons []string `json:"reasons"` ScoredAt time.Time `json:"scored_at"` } type RSVPConfirmed struct { EventID uuid.UUID `json:"event_id"` GuestID uuid.UUID `json:"guest_id"` RSVPID uuid.UUID `json:"rsvp_id"` Response string `json:"response"` PlusOnes int `json:"plus_ones"` RiskScore *int `json:"risk_score,omitempty"` SubmittedAt time.Time `json:"submitted_at"` } // InvitationSend asks the notifier to dispatch a guest invitation email. // Carries everything the email template needs so the worker doesn't have // to re-fetch event/guest details from Postgres on every send. type InvitationSend struct { EventID uuid.UUID `json:"event_id"` GuestID uuid.UUID `json:"guest_id"` TokenID uuid.UUID `json:"token_id"` GuestName string `json:"guest_name"` GuestEmail string `json:"guest_email"` HostName string `json:"host_name"` EventName string `json:"event_name"` Venue string `json:"venue,omitempty"` EventDate time.Time `json:"event_date"` Link string `json:"link"` IssuedAt time.Time `json:"issued_at"` }