35 lines
1.6 KiB
SQL
35 lines
1.6 KiB
SQL
-- FREE content is accessible without a subscription; PREMIUM requires one.
|
|
-- Effective tier cascades at read time: any PREMIUM ancestor makes descendants PREMIUM.
|
|
|
|
ALTER TABLE programs
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_programs_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE courses
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_courses_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE modules
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_modules_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE lessons
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_lessons_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE exam_prep.catalog_courses
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_exam_prep_catalog_courses_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE exam_prep.units
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_exam_prep_units_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE exam_prep.unit_modules
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_exam_prep_unit_modules_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|
|
|
|
ALTER TABLE exam_prep.unit_module_lessons
|
|
ADD COLUMN access_tier VARCHAR(16) NOT NULL DEFAULT 'PREMIUM'
|
|
CONSTRAINT chk_exam_prep_unit_module_lessons_access_tier CHECK (access_tier IN ('FREE', 'PREMIUM'));
|