package model import "time" type Notification struct { ID string `db:"id" json:"id"` UserID string `db:"user_id" json:"-"` EventID string `db:"event_id" json:"event_id"` PlanID *string `db:"plan_id" json:"plan_id"` Title string `db:"title" json:"title"` Body string `db:"body" json:"body"` ReadAt *time.Time `db:"read_at" json:"read_at"` CreatedAt time.Time `db:"created_at" json:"created_at"` } func (Notification) TableName() string { return "veyra_notification" } type QuoteSnapshot struct { SourceID *string `db:"source_id" json:"source_id,omitempty"` SourceVersion *int64 `db:"source_version" json:"source_version,omitempty"` ID string `db:"id" json:"id"` Symbol string `db:"symbol" json:"symbol"` Exchange string `db:"exchange" json:"exchange"` DataMode string `db:"data_mode" json:"data_mode"` PriceMinor int64 `db:"price_minor" json:"-"` Price string `json:"price"` ObservedAt time.Time `db:"observed_at" json:"observed_at"` Version int64 `db:"version" json:"version"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` } func (QuoteSnapshot) TableName() string { return "veyra_quote_snapshot" } type PlanTrigger struct { ID string `db:"id"` PlanID string `db:"plan_id"` QuoteSnapshotID string `db:"quote_snapshot_id"` QuoteVersion int64 `db:"quote_version"` TriggeredAt time.Time `db:"triggered_at"` } func (PlanTrigger) TableName() string { return "veyra_plan_trigger" } type NotificationTask struct { OutboxEvent RecipientCount int `json:"recipient_count"` }