jam-cloud/db/up/email_batch.sql

49 lines
1.6 KiB
SQL

-- CREATE TABLE email_batches (
-- id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
-- subject VARCHAR(256) NOT NULL,
-- body TEXT NOT NULL,
-- from_email VARCHAR(64) NOT NULL default 'support@jamkazam.com',
-- aasm_state VARCHAR(32) NOT NULL default 'pending',
-- test_emails TEXT NOT NULL default '',
-- qualified_count INTEGER NOT NULL default 0,
-- sent_count INTEGER NOT NULL default 0,
-- lock_version INTEGER,
-- 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_sets (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
email_batch_id VARCHAR(64) REFERENCES email_batches(id) ON DELETE CASCADE,
started_at TIMESTAMP,
user_ids TEXT NOT NULL default '',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE email_batch_sets ADD CONSTRAINT email_batch_set_uniqkey UNIQUE (email_batch_id, started_at);
CREATE INDEX email_batch_set_fkidx ON email_batch_sets (email_batch_id);
CREATE TABLE email_errors (
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
);
CREATE INDEX email_error_fkidx ON email_errors(email_batch_id);