Files
Nas-Notification/database/migrations/003_create_template_version_history.sql

42 lines
1.8 KiB
SQL

-- Migration: Create template version history table
-- Date: 2024-01-15
-- Description: Create table to store version history of notification templates
CREATE TABLE `notification_template_versions` (
`id` varchar(36) NOT NULL DEFAULT (UUID()),
`template_id` varchar(36) NOT NULL,
`version` varchar(20) NOT NULL,
`name` varchar(100) NOT NULL,
`description` text,
`subject` varchar(255) DEFAULT NULL,
`preheader` varchar(255) DEFAULT NULL,
`email_content` text,
`push_title` varchar(100) DEFAULT NULL,
`push_body` varchar(300) DEFAULT NULL,
`push_icon` varchar(500) DEFAULT NULL,
`push_url` text,
`sms_content` text,
`category` varchar(50) DEFAULT NULL,
`channels` json DEFAULT NULL,
`status` varchar(20) DEFAULT 'Draft',
`tags` text,
`is_personal` tinyint(1) DEFAULT '0',
`from_name` varchar(100) DEFAULT NULL,
`reply_to` varchar(255) DEFAULT NULL,
`track_opens` tinyint(1) DEFAULT '1',
`variables` json DEFAULT NULL,
`is_active` tinyint(1) DEFAULT '1',
`change_description` text,
`is_current` tinyint(1) DEFAULT '0',
`created_by` varchar(36) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_template_versions_template_id` (`template_id`),
KEY `idx_template_versions_version` (`version`),
KEY `idx_template_versions_created_at` (`created_at`),
CONSTRAINT `fk_template_versions_template_id` FOREIGN KEY (`template_id`) REFERENCES `notification_templates` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Create index for better performance
CREATE INDEX `idx_template_versions_template_version` ON `notification_template_versions` (`template_id`, `version`);
CREATE INDEX `idx_template_versions_is_current` ON `notification_template_versions` (`is_current`);