26 lines
887 B
SQL
26 lines
887 B
SQL
--
|
|
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);
|