-- Migration: Create recurring tickets table -- Description: Enables automatic ticket creation on a schedule CREATE TABLE IF NOT EXISTS recurring_tickets ( recurring_id INT AUTO_INCREMENT PRIMARY KEY, title_template VARCHAR(255) NOT NULL, description_template TEXT, category VARCHAR(50) DEFAULT 'General', type VARCHAR(50) DEFAULT 'Task', priority INT DEFAULT 4, assigned_to INT NULL, schedule_type ENUM('daily', 'weekly', 'monthly') NOT NULL, schedule_day INT NULL COMMENT 'Day of week (1-7) for weekly, day of month (1-31) for monthly', schedule_time TIME DEFAULT '09:00:00', next_run_at TIMESTAMP NOT NULL, last_run_at TIMESTAMP NULL, is_active BOOLEAN DEFAULT TRUE, created_by INT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (assigned_to) REFERENCES users(user_id) ON DELETE SET NULL, FOREIGN KEY (created_by) REFERENCES users(user_id) ON DELETE SET NULL, INDEX idx_recurring_next_run (next_run_at, is_active), INDEX idx_recurring_active (is_active) ); -- Sample recurring ticket for testing (commented out) -- INSERT INTO recurring_tickets (title_template, description_template, category, type, schedule_type, schedule_day, next_run_at) -- VALUES ('Weekly Server Maintenance Check', 'Perform weekly server health check and maintenance tasks.', 'Maintenance', 'Task', 'weekly', 1, NOW());