24 lines
830 B
SQL
24 lines
830 B
SQL
CREATE TABLE schedules (
|
|
id TEXT PRIMARY KEY,
|
|
project_id TEXT NOT NULL REFERENCES projects(id),
|
|
owner TEXT NOT NULL REFERENCES users(login),
|
|
title TEXT NOT NULL,
|
|
every TEXT NOT NULL CHECK (every IN ('hour', 'day', 'week', 'month')),
|
|
hour INTEGER NOT NULL CHECK (hour BETWEEN 0 AND 23),
|
|
minute INTEGER NOT NULL CHECK (minute BETWEEN 0 AND 59),
|
|
day_of_month INTEGER NOT NULL CHECK (day_of_month BETWEEN 0 AND 31),
|
|
prompt TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
workflow TEXT NOT NULL,
|
|
next_run_at TEXT NOT NULL,
|
|
created_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE INDEX schedules_by_next_run ON schedules (next_run_at);
|
|
|
|
CREATE TABLE schedule_weekdays (
|
|
schedule_id TEXT NOT NULL REFERENCES schedules(id),
|
|
weekday TEXT NOT NULL CHECK (weekday IN ('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')),
|
|
PRIMARY KEY (schedule_id, weekday)
|
|
);
|