2016-11-20 20:04:52 +01:00
|
|
|
CREATE TYPE email_status AS ENUM ('pending', 'ok', 'failed');
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS email_queue (
|
|
|
|
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
|
|
|
|
|
|
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
|
|
|
modified_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
|
|
|
deleted_at timestamptz DEFAULT NULL,
|
|
|
|
|
2019-11-22 18:08:27 +01:00
|
|
|
data bytea NOT NULL,
|
2016-11-20 20:04:52 +01:00
|
|
|
|
|
|
|
priority smallint NOT NULL DEFAULT 10
|
|
|
|
CHECK (priority BETWEEN 0 and 10),
|
|
|
|
|
|
|
|
status email_status NOT NULL DEFAULT 'pending',
|
|
|
|
retries integer NOT NULL DEFAULT -1
|
|
|
|
);
|
|
|
|
|
|
|
|
-- Triggers
|
|
|
|
|
|
|
|
CREATE TRIGGER email_queue_modified_at_tgr BEFORE UPDATE ON email_queue
|
2019-11-18 11:52:57 +01:00
|
|
|
FOR EACH ROW EXECUTE PROCEDURE update_modified_at();
|
2016-11-20 20:04:52 +01:00
|
|
|
|
|
|
|
-- Indexes
|
|
|
|
|
2019-11-18 11:52:57 +01:00
|
|
|
CREATE INDEX email_status_idx ON email_queue (status);
|