Alter DB schema to include register custom labels

This commit is contained in:
Araozu 2023-09-01 21:14:16 -05:00
parent a808c8d0a9
commit 1cb2885454
3 changed files with 30 additions and 157 deletions

View File

@ -1,5 +1,8 @@
-- Mysql schema -- Mysql schema
-- Enter the mysql container
-- sudo docker exec -it eegsac mysql -u root --password=123456789 educa7ls_plataforma
-- docker run --name eegsac -e MYSQL_ROOT_PASSWORD=123456789 -p 3306:3306 -d mysql:8.0-debian -- docker run --name eegsac -e MYSQL_ROOT_PASSWORD=123456789 -p 3306:3306 -d mysql:8.0-debian
CREATE TABLE person ( CREATE TABLE person (
@ -23,166 +26,38 @@ CREATE TABLE register (
register_code INTEGER NOT NULL, register_code INTEGER NOT NULL,
register_creation_date DATETIME NOT NULL, register_creation_date DATETIME NOT NULL,
register_display_date DATETIME NOT NULL, register_display_date DATETIME NOT NULL,
register_custom_label VARCHAR(100) NOT NULL, register_custom_label INTEGER NOT NULL,
register_is_preview BOOLEAN NOT NULL, register_is_preview BOOLEAN NOT NULL,
register_person_id INTEGER NOT NULL, register_person_id INTEGER NOT NULL,
register_course_id INTEGER NOT NULL, register_course_id INTEGER NOT NULL,
FOREIGN KEY (register_person_id) REFERENCES person (person_id), FOREIGN KEY (register_person_id) REFERENCES person (person_id),
FOREIGN KEY (register_course_id) REFERENCES course (course_id) FOREIGN KEY (register_course_id) REFERENCES course (course_id),
CONSTRAINT fk_register_custom_label
FOREIGN KEY (register_custom_label)
REFERENCES custom_label(custom_label_id)
);
CREATE TABLE custom_label (
custom_label_id INTEGER PRIMARY KEY AUTO_INCREMENT,
custom_label_value VARCHAR(50) NOT NULL
); );
-- Course list -- Migration
INSERT INTO course (course_name, course_display_name, course_days_amount, course_has_custom_label) VALUES
--
-- Comunes
--
('Manejo Def.', 'Manejo Defensivo', 1, 0),
('Mec. Basica', 'Mecánica Básica', 1, 0),
('4x4', 'Manejo en 4x4 Road Danger', 1, 0),
('Matpel 1', 'Matpel I - Advertencia', 1, 0),
('Matpel 2', 'Matpel II - Operaciones', 1, 0),
('Matpel 3', 'Matpel III - Técnico', 3, 0),
('Sup. Escolta', 'Supervisor Escolta Matpel', 7, 0),
('1ros auxilios', 'Primeros Auxilios', 1, 0),
('Lucha contra incendios', 'Lucha contra Incendios', 1, 0),
('Extintores', 'Uso y Manejo de Extintores', 1, 0),
('IPERC', 'IDENTIFICACIÓN DE PELIGROS, EVALUACIÓN DE RIESGOS Y CONTROLES (IPERC)', 1, 0),
-- -- Empty label
-- Maquinarias INSERT INTO custom_label (custom_label_value) VALUES ('');
--
('Cargador frontal', 'Operador profesional de Cargador Frontal', 5, 1),
('Excavadora', 'Operador profesional de Excavadora', 5, 1),
('Retroexcavadora', 'Operador profesional de Retroexcavadora', 5, 1),
('Volquete', 'Operador profesional de Volquete', 5, 1),
('Minicargador', 'Operador profesional de Minicargador', 5, 1),
('Montacarga', 'Operador profesional de Montacarga', 5, 1),
('Rodillo', 'Operador profesional de Rodillo', 5, 1),
('Telehandler', 'Operador profesional de Telehandler', 5, 1),
('Camion grua', 'Operador Profesional de Grua', 5, 1),
('Tractor Oruga', 'Operador profesional de Tractor Oruga', 5, 1),
-- 90 hours
('SCOOPTRAMS', 'Operador profesional de SCOOPTRAMS', 8, 1),
-- 2 months
('Jumbo', 'Operador profesional de Jumbo', 60, 1),
('Motoniveladora', 'Operador profesional de Motoniveladora', 5, 1),
ALTER TABLE register MODIFY COLUMN register_custom_label INTEGER NOT NULL DEFAULT 1;
-- -- Set all registers by default to empty label
-- Seguridad de maquinarias UPDATE register SET register_custom_label = 1;
--
('Seg. de Montacarga', 'Operación segura de Montacargas', 1, 0),
('Seg. Op. Maquinaria Pesada', 'Seguridad en la Operacion de Maquinaria Pesada', 3, 0),
('Seg. de Jumbo', 'SEGURIDAD EN LA OPERACIÓN DE JUMBO PERFORADOR', 30, 0),
-- Otros -- Add constraint after all values are set to empty label
('Matpel 4', 'Matpel IV', 3, 0), ALTER TABLE register CONSTRAINT fk_register_custom_label
('Herr. de Gestion', 'Herramientas de Gestión', 1, 0), FOREIGN KEY (register_custom_label)
('Seguridad minera', 'Seguridad Minera', 1, 0), REFERENCES custom_label(custom_label_id);
('SBComportamiento', 'Seguridad Basada en el Comportamiento', 1, 0),
('Primer respondedor', 'Primer Respondedor', 1, 0),
('Operador multiple', 'Operador múltiple', 1, 0),
('RITRA', 'RITRA', 1, 0),
('Fatiga y somnolencia', 'Fatiga y Somnolencia', 1, 0),
('Bioseguridad y la Salud Ocupacional', 'Bioseguridad y la Salud Ocupacional', 1, 0),
('Seguridad y Salud en Mineria', 'Seguridad y Salud en Mineria', 1, 0),
('Espacios Confinados', 'Espacios Confinados', 1, 0),
('Manipulación de productos químicos', 'Manipulación de productos químicos', 1, 0),
('Interpretación del Reglamento Interno de Transito', 'Interpretación del Reglamento Interno de Transito', 1, 0),
('DERRAMES DE HIDROCARBUROS', 'DERRAMES DE HIDROCARBUROS', 1, 0),
('PREVENCIÓN Y CONTROL DE COVID-19', 'PREVENCIÓN Y CONTROL DE COVID-19', 1, 0),
('BIOSEGURIDAD EN EL TRABAJO', 'BIOSEGURIDAD EN EL TRABAJO', 1, 0),
('Seguridad en la Operación', 'Seguridad en la Operación', 1, 0),
('IMPLEMENTACIÓN DE PLAN DE VIGILANCIA ', 'IMPLEMENTACIÓN DE PLAN DE VIGILANCIA ', 1, 0),
('ESPECIALIZACION PERFORACION Y VOLADURA', 'ESPECIALIZACION PERFORACION Y VOLADURA', 1, 0),
('SEGURIDAD Y SALUD EN EL TRABAJO frente al COVID-19', 'SEGURIDAD Y SALUD EN EL TRABAJO frente al COVID-19', 1, 0),
('Supervisor de trabajos en alto riesgo', 'Supervisor de trabajos en alto riesgo', 1, 0),
('Técnicas preventivas en la operación de maquinaria', 'Técnicas preventivas en la operación de maquinaria', 1, 0),
('Prevención y protección contra incendios', 'Prevención y protección contra incendios', 1, 0),
('Salud ocupacional y primeros auxilios', 'Salud ocupacional y primeros auxilios', 1, 0),
-- Merge with next cert, the same -- End migration
('Manejo defensivo y transporte personal', 'Manejo defensivo y transporte personal', 1, 0),
('Seguridad con materiales peligrosos', 'Seguridad con materiales peligrosos', 1, 0),
('Operador CAT', 'Operador CAT', 1, 0),
('Brigada de emergencia', 'Brigada de emergencia', 1, 0),
('Seguridad en trabajos de alto riesgo', 'Seguridad en trabajos de alto riesgo', 1, 0),
('Supervisor de seguridad minera e industrial', 'Supervisor de seguridad minera e industrial', 1, 0),
('Logística, transporte, almacenaje y manutención', 'Logística, transporte, almacenaje y manutención', 1, 0),
('PRIMEROS AUXILIOS (BIOSEGURIDAD) frente al COVID -', 'PRIMEROS AUXILIOS (BIOSEGURIDAD) frente al COVID -', 1, 0),
('SEGURIDAD Y SALUD EN EL TRABAJO, bajo normativas a', 'SEGURIDAD Y SALUD EN EL TRABAJO, bajo normativas a', 1, 0),
('Especialización operador de puente grúa', 'Especialización operador de puente grúa', 1, 0),
('Caja Fuller', 'Caja Fuller', 1, 0),
-- ? Merge?
('Especialización Cargador Frontal', 'Especialización Cargador Frontal', 1, 0),
('Rescatista Industrial', 'Rescatista Industrial', 1, 0),
('Camión Minero 797F CAT', 'Camión Minero 797F CAT', 1, 0),
('Investigación de accidentes e incidentes', 'Investigación de accidentes e incidentes', 1, 0),
('Sistema de Comando de Incidentes SCI', 'Sistema de Comando de Incidentes SCI', 1, 0),
('Seguridad en la Operación de Camión Minero de Alto', 'Seguridad en la Operación de Camión Minero de Alto', 1, 0),
('Seguridad Minera frente al Covid-19', 'Seguridad Minera frente al Covid-19', 1, 0),
('Operador de Camión Lubricador', 'Operador de Camión Lubricador', 1, 0),
('RIGGER', 'RIGGER o Auxiliar de Operador Grua', 1, 0),
('Operador de Elevador de Tijera', 'Operador de Elevador de Tijera', 1, 0),
('Trabajos en Caliente', 'Trabajos en Caliente', 1, 0),
('Operador Grua Articulada ANSI/ASME', 'Operador Grua Articulada ANSI/ASME', 1, 0),
('Operador Calificado KOMATSU', 'Operador Calificado KOMATSU', 1, 0),
('Cuidado del Medio AMbiente', 'Cuidado del Medio AMbiente', 1, 0),
('Campaña \"No al exceso de velocidad\"', 'Campaña \"No al exceso de velocidad\"', 1, 0),
('INCENDIO EN VEHÍCULOS', 'INCENDIO EN VEHÍCULOS', 1, 0),
('Sensibilización Primeros Auxilios', 'Sensibilización Primeros Auxilios', 1, 0),
('Inspecciones de Seguridad', 'Inspecciones de Seguridad', 1, 0),
('Transporte de Personal Industrial', 'Transporte de Personal Industrial', 1, 0),
('BIOSEGURIDAD EN INDUSTRIA Y MINERIA EN COVID-19', 'BIOSEGURIDAD EN INDUSTRIA Y MINERIA EN COVID-19', 1, 0),
('CAMPAÑA DE NO ALCOHOL', 'CAMPAÑA DE NO ALCOHOL', 1, 0),
('OPERACIÓN, LOGÍSTICA Y ALMACENES', 'OPERACIÓN, LOGÍSTICA Y ALMACENES', 1, 0),
('Trabajos en Altura ', 'Trabajos en Altura ', 1, 0),
('PERFORACIÓN Y VOLADURA', 'PERFORACIÓN Y VOLADURA', 1, 0),
('SEGURIDAD Y SALUD EN EL TRABAJO', 'SEGURIDAD Y SALUD EN EL TRABAJO', 1, 0),
('PREVENCIÓN DE RIESGOS LABORALES', 'PREVENCIÓN DE RIESGOS LABORALES', 1, 0),
-- ?? Merge?
('MANEJO DEFENSIVO 4X4', 'MANEJO DEFENSIVO 4X4', 1, 0),
-- Merge
('MANEJO DEFENSIVO Y TRANSPORTE PERSONAL', 'MANEJO DEFENSIVO Y TRANSPORTE PERSONAL', 1, 0),
('CONDUCCIÓN SEGURA', 'CONDUCCIÓN SEGURA', 1, 0),
('MANEJO Y MANTENIMIENTO OPERADOR DE SEMITRAILER', 'MANEJO Y MANTENIMIENTO OPERADOR DE SEMITRAILER', 1, 0),
('OPERADOR CAMION CISTERNA', 'OPERADOR CAMION CISTERNA', 1, 0),
('SEMITRAILER INTERNATIONAL', 'SEMITRAILER INTERNATIONAL', 1, 0),
('Procedimientos de carga y descarga de combustibles', 'Procedimientos de carga y descarga de combustibles', 1, 0),
('Transporte seguro de materiales y residuos peligro', 'Transporte seguro de materiales y residuos peligro', 1, 0),
('GESTIÓN DE ALMACENES EN GENERAL', 'GESTIÓN DE ALMACENES EN GENERAL', 1, 0),
('Operación Segura para Transporte de Hidrocarburos ', 'Operación Segura para Transporte de Hidrocarburos ', 1, 0),
('COMO EVITAR ACTOS SUBESTANDAR DURANTE LA OPERACIÓN', 'COMO EVITAR ACTOS SUBESTANDAR DURANTE LA OPERACIÓN', 1, 0),
('MANIOBRAS TEMERARIAS', 'MANIOBRAS TEMERARIAS', 1, 0),
('MANIOBRAS EN PARQUEOS Y ZONAS CERCA A PERSONAL QUE', 'MANIOBRAS EN PARQUEOS Y ZONAS CERCA A PERSONAL QUE', 1, 0),
('LÍMITES DE VELOCIDAD', 'LÍMITES DE VELOCIDAD', 1, 0),
-- Merge
('Cargador Frontal 950M CAT', 'Cargador Frontal 950M CAT', 1, 0),
('CAMPAÑA DE NO ALCOHOL Y DROGAS', 'CAMPAÑA DE NO ALCOHOL Y DROGAS', 1, 0),
('GESTIÓN DE RESIDUOS SOLIDOS', 'GESTIÓN DE RESIDUOS SOLIDOS', 1, 0),
('Tractor de Ruedas', 'Tractor de Ruedas', 1, 0),
('Manlift', 'Manlift', 1, 0),
('ASPECTOS E IMPACTO AMBIENTAL', 'ASPECTOS E IMPACTO AMBIENTAL', 1, 0),
('INVESTIGACIÓN DE ACCIDENTES', 'INVESTIGACIÓN DE ACCIDENTES', 1, 0),
('MANEJO DE RESIDUOS', 'MANEJO DE RESIDUOS', 1, 0),
-- Merge
('OPERADOR DE SCOOPTRANS R1600H', 'OPERADOR DE SCOOPTRANS R1600H', 1, 0),
('ELECTRICIDAD Y MANTENIMIENTO DE VOLQUETE', 'ELECTRICIDAD Y MANTENIMIENTO DE VOLQUETE', 1, 0),
('CARGAS Y MERCANCÍAS', 'CARGAS Y MERCANCÍAS', 1, 0)
;

View File

@ -29,9 +29,8 @@ pub struct Register {
/// Date shown on the certificate, in YYYY-MM-DD format /// Date shown on the certificate, in YYYY-MM-DD format
pub register_display_date: String, pub register_display_date: String,
/// Some course's names can be extended with a label. /// Some course's names can be extended with a label.
/// Used in machinery courses, where the course name is the type of machinery, /// Points to a custom_label entity
/// and the custom label the manufacturer and series (i.e. `320D CAT`). pub register_custom_label: i32,
pub register_custom_label: String,
/// Whether this register is a preview of the certificate ("sin firmas") /// Whether this register is a preview of the certificate ("sin firmas")
pub register_is_preview: bool, pub register_is_preview: bool,
/// Foreign key to the person table /// Foreign key to the person table
@ -62,7 +61,7 @@ impl RegisterCreate {
next_register_code, next_register_code,
current_date, current_date,
self.date, self.date,
"", 1,
false, false,
self.person_id, self.person_id,
self.course_id self.course_id

View File

@ -19,9 +19,8 @@ export type Register = {
/// Date shown on the certificate, in YYYY-MM-DD format /// Date shown on the certificate, in YYYY-MM-DD format
register_display_date: string, register_display_date: string,
/// Some course's names can be extended with a label. /// Some course's names can be extended with a label.
/// Used in machinery courses, where the course name is the type of machinery, /// Points to another entity
/// and the custom label the manufacturer and series (i.e. `320D CAT`). register_custom_label: number,
register_custom_label: string,
/// Foreign key to the person table /// Foreign key to the person table
register_person_id: number, register_person_id: number,
/// Foreign key to the course table /// Foreign key to the course table