Files
Veyra/internal/model/notification.go
T

49 lines
1.7 KiB
Go

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"`
}