Files
2026-07-30 11:56:32 +03:00

57 lines
2.8 KiB
SQL

CREATE TABLE IF NOT EXISTS `{{content_prefix}}_presentations` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(190) NOT NULL,
`code` VARCHAR(80) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`kind` VARCHAR(32) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT 'card',
`description` TEXT NULL,
`draft_item_markup` LONGTEXT NOT NULL,
`draft_wrapper_markup` LONGTEXT NOT NULL,
`draft_empty_markup` LONGTEXT NOT NULL,
`draft_css` LONGTEXT NOT NULL,
`draft_settings_json` TEXT NULL,
`published_item_markup` LONGTEXT NOT NULL,
`published_wrapper_markup` LONGTEXT NOT NULL,
`published_empty_markup` LONGTEXT NOT NULL,
`published_css` LONGTEXT NOT NULL,
`published_settings_json` TEXT NULL,
`is_published` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`version` INT UNSIGNED NOT NULL DEFAULT 0,
`author_id` INT UNSIGNED NOT NULL DEFAULT 0,
`created_at` INT UNSIGNED NOT NULL DEFAULT 0,
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0,
`published_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_content_presentation_code` (`code`),
KEY `idx_content_presentation_kind` (`kind`, `is_published`),
KEY `idx_content_presentation_updated` (`updated_at`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `{{content_prefix}}_presentation_revisions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`presentation_id` INT UNSIGNED NOT NULL,
`action` VARCHAR(32) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`snapshot_hash` CHAR(40) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`snapshot_json` LONGTEXT NOT NULL,
`comment` VARCHAR(255) NOT NULL DEFAULT '',
`author_id` INT UNSIGNED NOT NULL DEFAULT 0,
`author_name` VARCHAR(190) NOT NULL DEFAULT '',
`created_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_presentation_revision_owner` (`presentation_id`, `created_at`, `id`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `{{content_prefix}}_presentation_assignments` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`presentation_id` INT UNSIGNED NOT NULL,
`context_code` VARCHAR(64) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`target_type` VARCHAR(32) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`target_key` VARCHAR(96) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '0',
`mode` VARCHAR(16) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT 'legacy',
`settings_json` TEXT NULL,
`author_id` INT UNSIGNED NOT NULL DEFAULT 0,
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_presentation_assignment_target` (`context_code`, `target_type`, `target_key`),
KEY `idx_presentation_assignment_owner` (`presentation_id`, `mode`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;