package db
type Migration struct {
Version int64
Up []string
Down []string
}
var migrations []Migration = []Migration{
{
Version: 1,
Up: []string{
`CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email text NOT NULL,
password_hash text NOT NULL,
otp_secret text,
is_otp_setup boolean,
status smallint,
UNIQUE(email)
)`,
`CREATE TABLE market_configs (
id BIGSERIAL PRIMARY KEY,
market_name text NOT NULL,
user_id bigint NOT NULL REFERENCES users(id),
config jsonb,
UNIQUE(user_id, market_name)
)`,
`CREATE TABLE reports (
id BIGSERIAL PRIMARY KEY,
date timestamp with time zone NOT NULL,
market_config_id bigint NOT NULL,
debug boolean
)`,
"CREATE INDEX IF NOT EXISTS reports_market_config_id ON reports (market_config_id)",
`CREATE TABLE report_lines (
id BIGSERIAL PRIMARY KEY,
date timestamp with time zone NOT NULL,
report_id bigint NOT NULL REFERENCES reports(id),
type text,
payload jsonb
)`,
"CREATE INDEX IF NOT EXISTS report_lines_report_id ON report_lines (report_id)",
"CREATE INDEX IF NOT EXISTS report_lines_type ON report_lines (type)",
},
Down: []string{"DROP TABLE users", "DROP TABLE market_configs", "DROP TABLE report_lines", "DROP TABLE reports"},
},
}