35632-vm/db/migrations/003_create_roles_and_permissions_tables.sql
2025-11-20 02:21:39 +00:00

42 lines
1.1 KiB
SQL

CREATE TABLE IF NOT EXISTS `roles` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL UNIQUE
);
INSERT INTO `roles` (name) VALUES ('Admin'), ('HR'), ('Manager'), ('Employee');
CREATE TABLE IF NOT EXISTS `permissions` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL UNIQUE
);
INSERT INTO `permissions` (name) VALUES
('view_dashboard'),
('manage_candidates'),
('manage_tasks'),
('manage_users'),
('view_reports');
CREATE TABLE IF NOT EXISTS `role_permissions` (
`role_id` INT,
`permission_id` INT,
PRIMARY KEY (role_id, permission_id),
FOREIGN KEY (role_id) REFERENCES roles(id),
FOREIGN KEY (permission_id) REFERENCES permissions(id)
);
-- Admin permissions
INSERT INTO `role_permissions` (role_id, permission_id) VALUES
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5);
-- HR permissions
INSERT INTO `role_permissions` (role_id, permission_id) VALUES
(2, 1), (2, 2), (2, 3), (2, 5);
-- Manager permissions
INSERT INTO `role_permissions` (role_id, permission_id) VALUES
(3, 1), (3, 3);
-- Employee permissions
INSERT INTO `role_permissions` (role_id, permission_id) VALUES
(4, 3);