-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdafem_ticketsystem.sql
More file actions
89 lines (82 loc) · 3.59 KB
/
dafem_ticketsystem.sql
File metadata and controls
89 lines (82 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
-- QBX Ticket System Database Schema
-- Author: _dafemboy
CREATE TABLE IF NOT EXISTS `ticket_categories` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`icon` VARCHAR(50) DEFAULT NULL,
`color` VARCHAR(7) DEFAULT '#3b82f6',
`is_active` TINYINT(1) DEFAULT 1,
`display_order` INT(11) DEFAULT 0,
`deleted_at` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `ticket_priorities` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`level` INT(11) NOT NULL,
`color` VARCHAR(7) DEFAULT '#3b82f6',
`is_active` TINYINT(1) DEFAULT 1,
`deleted_at` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `tickets` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ticket_number` VARCHAR(20) NOT NULL UNIQUE,
`category_id` INT(11) DEFAULT NULL,
`priority_id` INT(11) DEFAULT NULL,
`creator_id` VARCHAR(50) NOT NULL,
`creator_name` VARCHAR(255) NOT NULL,
`subject` VARCHAR(255) NOT NULL,
`status` ENUM('open', 'in_progress', 'closed') DEFAULT 'open',
`claimed_by` VARCHAR(50) DEFAULT NULL,
`claimed_by_username` VARCHAR(255) DEFAULT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`last_activity_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`deleted_at` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_creator` (`creator_id`),
KEY `idx_status` (`status`),
KEY `idx_category` (`category_id`),
KEY `idx_priority` (`priority_id`),
FOREIGN KEY (`category_id`) REFERENCES `ticket_categories`(`id`) ON DELETE SET NULL,
FOREIGN KEY (`priority_id`) REFERENCES `ticket_priorities`(`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `ticket_messages` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ticket_id` INT(11) NOT NULL,
`sender_id` VARCHAR(50) NOT NULL,
`sender_name` VARCHAR(255) NOT NULL,
`message` TEXT NOT NULL,
`is_internal` TINYINT(1) DEFAULT 0,
`is_system_message` TINYINT(1) DEFAULT 0,
`is_staff_message` TINYINT(1) DEFAULT 0,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_ticket` (`ticket_id`),
FOREIGN KEY (`ticket_id`) REFERENCES `tickets`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `ticket_activity_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ticket_id` INT(11) NOT NULL,
`user_id` VARCHAR(50) NOT NULL,
`action` VARCHAR(50) NOT NULL,
`details` TEXT DEFAULT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_ticket` (`ticket_id`),
FOREIGN KEY (`ticket_id`) REFERENCES `tickets`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Insert default categories
INSERT INTO `ticket_categories` (`name`, `icon`, `color`, `display_order`) VALUES
('Allgemeine Frage', 'question-circle', '#3b82f6', 1),
('Technisches Problem', 'wrench', '#ef4444', 2),
('Regelverstoß melden', 'gavel', '#f59e0b', 3),
('Beschwerde', 'exclamation-triangle', '#dc2626', 4),
('Sonstiges', 'ellipsis-h', '#6b7280', 5);
-- Insert default priorities
INSERT INTO `ticket_priorities` (`name`, `level`, `color`) VALUES
('Niedrig', 1, '#10b981'),
('Normal', 2, '#3b82f6'),
('Hoch', 3, '#f59e0b'),
('Dringend', 4, '#ef4444');