30 lines
1.4 KiB
MySQL
30 lines
1.4 KiB
MySQL
|
|
-- 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());
|