diff --git a/tables/mail_queue.sql b/tables/mail_queue.sql new file mode 100644 index 0000000..19b830d --- /dev/null +++ b/tables/mail_queue.sql @@ -0,0 +1,62 @@ +--DROP TABLE mail_queue PURGE; +CREATE TABLE mail_queue ( + queue_id NUMBER(10) CONSTRAINT nn_mail_queue_queue_id NOT NULL, + app_id NUMBER(4) CONSTRAINT nn_mail_queue_app_id NOT NULL, + event_id VARCHAR2(30), + role_id VARCHAR2(30), + template_id VARCHAR2(30), + schedule_id VARCHAR2(30), + user_id VARCHAR2(30), + lang_id VARCHAR2(5), + -- + mail_recipient VARCHAR2(4000), -- mail headers + mail_cc VARCHAR2(4000), + mail_bcc VARCHAR2(4000), + mail_sender VARCHAR2(256), + mail_subject VARCHAR2(256), + mail_body CLOB, -- mail body + -- + -- @TODO: mail_attachments + -- + created_by VARCHAR2(30), + created_at DATE, + sent_at DATE, + -- + CONSTRAINT pk_mail_queue + PRIMARY KEY (queue_id), + -- + CONSTRAINT fk_mail_queue_app_id + FOREIGN KEY (app_id) + REFERENCES apps (app_id), + -- + CONSTRAINT fk_mail_queue_user_roles + FOREIGN KEY (app_id, user_id, role_id) + REFERENCES user_roles (app_id, user_id, role_id), + -- + CONSTRAINT fk_mail_queue_subscriptions + FOREIGN KEY (app_id, event_id, role_id, schedule_id) + REFERENCES mail_subscriptions (app_id, event_id, role_id, schedule_id) +); +-- +COMMENT ON TABLE mail_queue IS '[CORE] Queue with e-mails to track what was sent and when'; +-- +COMMENT ON COLUMN mail_queue.queue_id IS 'Unique ID from queue_id sequence'; +COMMENT ON COLUMN mail_queue.app_id IS 'APEX application ID'; +COMMENT ON COLUMN mail_queue.event_id IS ''; +COMMENT ON COLUMN mail_queue.role_id IS ''; +COMMENT ON COLUMN mail_queue.template_id IS ''; +COMMENT ON COLUMN mail_queue.schedule_id IS 'Schedule id'; +COMMENT ON COLUMN mail_queue.user_id IS ''; +COMMENT ON COLUMN mail_queue.lang_id IS ''; +-- +COMMENT ON COLUMN mail_queue.mail_recipient IS ''; +COMMENT ON COLUMN mail_queue.mail_cc IS ''; +COMMENT ON COLUMN mail_queue.mail_bcc IS ''; +COMMENT ON COLUMN mail_queue.mail_sender IS ''; +COMMENT ON COLUMN mail_queue.mail_subject IS 'E-mail subject'; +COMMENT ON COLUMN mail_queue.mail_body IS 'E-mail body, can be generated by a process_function'; +-- +COMMENT ON COLUMN mail_queue.created_by IS 'User whi created the e-mail'; +COMMENT ON COLUMN mail_queue.created_at IS 'Time of adding e-mail to the queue'; +COMMENT ON COLUMN mail_queue.sent_at IS 'Time when e-mail was actually sent'; +