-- 
CREATE TABLE promotionals(
    id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),

    /* allows for single table inheritance */
    type VARCHAR(128) NOT NULL DEFAULT 'JamRuby::PromoBuzz',
    /* state machine */
    aasm_state VARCHAR(64) DEFAULT 'hidden',
    /* order of promo within its types */
    position integer NOT NULL DEFAULT 0,
    /* standard AR timestamps */
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

    /* references latest recording or session polymorphically */
    latest_id VARCHAR(64) DEFAULT NULL, 
    latest_type VARCHAR(128) DEFAULT NULL,

    /* used for buzz promo type */
    image VARCHAR(1024) DEFAULT NULL,
    text_short VARCHAR(512) DEFAULT NULL,
    text_long VARCHAR(4096) DEFAULT NULL
);

CREATE INDEX promo_latest_idx ON promotionals(latest_id, latest_type);
