16 lines
539 B
SQL
16 lines
539 B
SQL
-- name: GetSchedule :one
|
|
SELECT * FROM schedules WHERE project_id = $1;
|
|
|
|
-- name: UpsertSchedule :one
|
|
INSERT INTO schedules (id, project_id, interval_seconds, enabled)
|
|
VALUES ($1, $2, $3, $4)
|
|
ON CONFLICT (project_id) DO UPDATE SET interval_seconds = $3, enabled = $4
|
|
RETURNING *;
|
|
|
|
-- name: ListDueSchedules :many
|
|
SELECT * FROM schedules
|
|
WHERE enabled AND (last_run_at IS NULL OR last_run_at + (interval_seconds || ' seconds')::interval <= $1);
|
|
|
|
-- name: TouchScheduleRun :exec
|
|
UPDATE schedules SET last_run_at = $2 WHERE project_id = $1;
|