package model import ( "encoding/json" "time" ) type HistoricalBar struct { Date string `json:"date"` Open string `json:"open"` High string `json:"high"` Low string `json:"low"` Close string `json:"close"` } type BacktestInput struct { DataOrigin string `json:"data_origin"` SourceVersion int64 `json:"source_version"` DataReceivedAt *time.Time `json:"data_received_at"` StrategyVersionID string `json:"strategy_version_id"` DatasetName string `json:"dataset_name"` Symbol string `json:"symbol"` InitialCash string `json:"initial_cash"` Bars []HistoricalBar `json:"bars"` } type ResearchInput struct { BacktestInput Parameters StrategyParameters `json:"parameters"` } type BacktestRun struct { Symbol string `json:"symbol"` ID string `db:"id" json:"id"` StrategyVersionID string `db:"strategy_version_id" json:"strategy_version_id"` Status string `db:"status" json:"status"` Input json.RawMessage `db:"input" json:"input,omitempty"` InputHash string `db:"input_hash" json:"input_hash"` Result json.RawMessage `db:"result" json:"result"` Failure string `db:"failure" json:"failure"` LeaseID *string `db:"lease_id" json:"-"` CreatedAt time.Time `db:"created_at" json:"created_at"` FinishedAt *time.Time `db:"finished_at" json:"finished_at"` } func (BacktestRun) TableName() string { return "veyra_backtest_run" }