RPTRECIP - Retriever Schedule Recipients

-- RPTRECIP — Retriever schedule recipients.
-- One row per email address per schedule (recipients hang off the
-- SCHEDULE, not the report, so the same report can serve different
-- audiences on different cadences). USER_ID optionally links an internal
-- user (NULL = external recipient). BURSTVAL: when the schedule bursts
-- (RPTSCHED.BURSTCOL set), this recipient receives only rows where the
-- burst column equals BURSTVAL (blank = receives the full report).
-- ENABLED = pause one person (vacation, role change) without deleting
-- them and their burst value.
-- Runs in each install's XXX_5WEB library.

SET SCHEMA XXX_5WEB;

CREATE TABLE RPTRECIP (
	RECIPIENT_ID FOR COLUMN RECIP_ID INTEGER GENERATED ALWAYS AS IDENTITY
		( START WITH 1 INCREMENT BY 1 ) NOT NULL ,
	SCHEDULE_ID FOR COLUMN SCHED_ID INTEGER NOT NULL ,
	EMAIL VARCHAR(254) CCSID 37 NOT NULL ,
	USER_ID INTEGER DEFAULT NULL ,
	BURSTVAL VARCHAR(100) CCSID 37 NOT NULL DEFAULT '' ,
	ENABLED CHAR(1) CCSID 37 NOT NULL DEFAULT 'Y' ,
	BIRTH TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
	PRIMARY KEY ( RECIPIENT_ID ) ,
	CONSTRAINT RPTRECIP_SCHED_FK FOREIGN KEY ( SCHEDULE_ID )
		REFERENCES RPTSCHED ( SCHEDULE_ID ) ON DELETE CASCADE ,
	CONSTRAINT RPTRECIP_SCHED_EMAIL_UQ UNIQUE ( SCHEDULE_ID , EMAIL ) )

	RCDFMT RPTRECIP ;

LABEL ON TABLE RPTRECIP
	IS 'Web - Retriever Schedule Recipients' ;

CREATE INDEX RPTRECIP_SCHED_IX ON RPTRECIP ( SCHEDULE_ID ) ;