diff --git a/db/upgrade-20210111.sql b/db/upgrade-20210111.sql index c41d51a2ba0f34b76c5cf057769d09a9e3f14a7d..78ee9b8cfcd610774c40f6889235176ba68cc2ad 100644 --- a/db/upgrade-20210111.sql +++ b/db/upgrade-20210111.sql @@ -26,3 +26,31 @@ ALTER TABLE papers ALTER TABLE solutions RENAME COLUMN last_submit TO final_submit, RENAME COLUMN last_feedback TO final_feedback; + +CREATE TYPE job_type AS ENUM ( + 'download_submits', + 'upload_feedback' +); + +CREATE TYPE job_state AS ENUM ( + 'ready', + 'running', + 'done', -- Hotovo, out_json a out_file jsou platné + 'failed' -- Interní chyba při zpracování, viz log +); + +CREATE TABLE jobs ( + job_id serial PRIMARY KEY, + type job_type NOT NULL, + state job_state NOT NULL, + user_id int NOT NULL REFERENCES users(user_id), -- komu patří + created_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP, -- kdy byl založen + finished_at timestamp with time zone DEFAULT NULL, -- kdy doběhl + expires_at timestamp with time zone DEFAULT NULL, -- kdy bude automaticky smazán + description text NOT NULL DEFAULT '', + in_json jsonb DEFAULT NULL, + out_json jsonb DEFAULT NULL, + -- Soubory jsou součástí úlohy a po jejím ukončení budou smazány + in_file varchar(255) DEFAULT NULL, + out_file varchar(255) DEFAULT NULL +);