CREATE TABLE permissions (
  Id NUMBER(10) NOT NULL,
  Name varchar(45) NOT NULL,
  PRIMARY KEY (Id)
);
INSERT INTO permissions (id, name) VALUES (1, 'MANAGE_CATEGORIES');
INSERT INTO permissions (id, name) VALUES (2, 'MANAGE_PRODUCTS');
INSERT INTO permissions (id, name) VALUES (3, 'MANAGE_ORDERS');
INSERT INTO permissions (id, name) VALUES (4, 'MANAGE_CUSTOMERS');
INSERT INTO permissions (id, name) VALUES (5, 'MANAGE_PAYMENT_SYSTEMS');
INSERT INTO permissions (id, name) VALUES (6, 'MANAGE_USERS');
INSERT INTO permissions (id, name) VALUES (7, 'MANAGE_ROLES');
INSERT INTO permissions (id, name) VALUES (8, 'MANAGE_PERMISSIONS');
INSERT INTO permissions (id, name) VALUES (9, 'MANAGE_SETTINGS');

CREATE TABLE roles (
  Id NUMBER(10) NOT NULL,
  Name varchar(45) NOT NULL,
  PRIMARY KEY (Id)
);
INSERT INTO roles (id, name) VALUES (1, 'ROLE_SUPER_ADMIN');
INSERT INTO roles (id, name) VALUES (2, 'ROLE_ADMIN');
INSERT INTO roles (id, name) VALUES (3, 'ROLE_CMS_ADMIN');
INSERT INTO roles (id, name) VALUES (4, 'ROLE_USER');

CREATE TABLE  users (
  Id NUMBER(10) NOT NULL ,
  First_Name varchar2(45) DEFAULT NULL,
  Last_Name varchar2(45) DEFAULT NULL,
  Name varchar2(45) NOT NULL,
  Password varchar2(200) NOT NULL,
  Email varchar2(45) NOT NULL,
  Phone_Number varchar2(45) DEFAULT NULL,  
  PRIMARY KEY (Id)
);
INSERT INTO users (id, email, password, name) VALUES (1, 'superadmin@gmail.com', '$2a$10$p3PHnpoBAnzZiL8mr3gMieMhVVSb585ajC2ZsBB0kwb4KvZKFSdNi', 'Super Admin');
INSERT INTO users (id, email, password, name) VALUES (2, 'admin@gmail.com', '$2a$10$hKDVYxLefVHV/vtuPhWD3OigtRyOykRLDdUAp80Z1crSoS1lFqaFS', 'Admin');
INSERT INTO users (id, email, password, name) VALUES (3, 'cms@gmail.com', '$2a$10$/Y0IarSOuH2dz.UOLrZbaus17K6AJF7n15qWr02aWN1MOz5vEKT8y', 'CMSGuy');
INSERT INTO users (id, email, password, name) VALUES (4, 'ravi@gmail.com', '$2a$10$UFEPYW7Rx1qZqdHajzOnB.VBR3rvm7OI7uSix4RadfQiNhkZOi2fi', 'ravi');
INSERT INTO users (id, email, password, name) VALUES (5, 'user@gmail.com', '$2a$10$ByIUiNaRfBKSV6urZoBBxe4UbJ/sS6u1ZaPORHF9AtNWAuVPVz1by', 'DemoUser');

CREATE TABLE role_permission (
  role_id NUMBER(10)  NOT NULL ,
  permission_id NUMBER(10)  NOT NULL,
  CONSTRAINT FK_role_id FOREIGN KEY (role_id) REFERENCES roles(Id),
  CONSTRAINT FK_permission_id FOREIGN KEY (permission_id) REFERENCES permissions(Id)
);
insert into role_permission(role_id, permission_id) values(1,1);
insert into role_permission(role_id, permission_id) values(1,2);
insert into role_permission(role_id, permission_id) values(1,3);
insert into role_permission(role_id, permission_id) values(1,4);
insert into role_permission(role_id, permission_id) values(1,5);
insert into role_permission(role_id, permission_id) values(1,6);
insert into role_permission(role_id, permission_id) values(1,7);
insert into role_permission(role_id, permission_id) values(1,8);
insert into role_permission(role_id, permission_id) values(1,9);
insert into role_permission(role_id, permission_id) values(2,1);
insert into role_permission(role_id, permission_id) values(2,2);
insert into role_permission(role_id, permission_id) values(2,3);
insert into role_permission(role_id, permission_id) values(2,4);
insert into role_permission(role_id, permission_id) values(2,5);
insert into role_permission(role_id, permission_id) values(2,9);
insert into role_permission(role_id, permission_id) values(3,1);
insert into role_permission(role_id, permission_id) values(3,2);

CREATE TABLE user_role (
  role_id NUMBER(10)  NOT NULL ,
  user_id NUMBER(10)  NOT NULL,
  CONSTRAINT FK_role_id FOREIGN KEY (role_id) REFERENCES roles(Id),
  CONSTRAINT FK_pusers_id FOREIGN KEY (user_id) REFERENCES users(Id)
);
insert into user_role(user_id, role_id) values (1,1);
insert into user_role(user_id, role_id) values (2,2);
insert into user_role(user_id, role_id) values (3,3);
insert into user_role(user_id, role_id) values (4,2);
insert into user_role(user_id, role_id) values (4,3);
insert into user_role(user_id, role_id) values (5,4);