jam-cloud/db/up/emails.sql

33 lines
1.1 KiB
SQL

CREATE TABLE email_batches (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
subject VARCHAR(256) NOT NULL,
body TEXT NOT NULL,
aasm_state VARCHAR(32) NOT NULL default 'pending',
test_emails TEXT NOT NULL,
batch_size INTEGER NOT NULL default 1000,
started_at TIMESTAMP,
completed_at TIMESTAMP,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE email_batch_results (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
email_batch_id VARCHAR(64) REFERENCES email_batches(id) ON DELETE CASCADE,
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
error_type VARCHAR(32),
email_address VARCHAR(256),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE email_batch_results ADD CONSTRAINT email_batch_uniqkey UNIQUE (email_batch_id);
ALTER TABLE email_batch_results ADD CONSTRAINT email_user_uniqkey UNIQUE (user_id);
ALTER TABLE users ADD COLUMN opt_out_email_batch boolean DEFAULT false;