From 6dc381c0ab96bb1c4f0a958ebba2b6c1ecbc31af Mon Sep 17 00:00:00 2001 From: Araozu Date: Tue, 29 Aug 2023 17:49:02 -0500 Subject: [PATCH] [BE] SQL for courses --- backend/sql/schema.sql | 165 ++++++++++++++++++++++++++- backend/src/controller/person/mod.rs | 1 + frontend/src/types/Register.ts | 2 + 3 files changed, 166 insertions(+), 2 deletions(-) diff --git a/backend/sql/schema.sql b/backend/sql/schema.sql index b237682..354c003 100644 --- a/backend/sql/schema.sql +++ b/backend/sql/schema.sql @@ -1,4 +1,4 @@ -# Mysql schema +-- Mysql schema CREATE TABLE person ( person_id INTEGER PRIMARY KEY AUTO_INCREMENT, @@ -6,6 +6,167 @@ CREATE TABLE person ( person_names VARCHAR(50) NOT NULL, person_paternal_surname VARCHAR(30) NOT NULL, person_maternal_surname VARCHAR(30) NOT NULL -) +); + +CREATE TABLE course ( + course_id INTEGER PRIMARY KEY AUTO_INCREMENT, + course_name VARCHAR(50) NOT NULL, + course_display_name VARCHAR(100) NOT NULL, + course_days_amount INTEGER NOT NULL, + course_has_custom_label BOOLEAN NOT NULL +); +-- Course list +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), + + -- + -- Maquinarias + -- + ('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), + + + -- + -- Seguridad de maquinarias + -- + ('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 + ('Matpel 4', 'Matpel IV', 3, 0), + ('Herr. de Gestion', 'Herramientas de Gestión', 1, 0), + ('Seguridad minera', 'Seguridad Minera', 1, 0), + ('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 + ('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) +; diff --git a/backend/src/controller/person/mod.rs b/backend/src/controller/person/mod.rs index 9662538..d71dfc7 100644 --- a/backend/src/controller/person/mod.rs +++ b/backend/src/controller/person/mod.rs @@ -9,6 +9,7 @@ use crate::model::reniec_person::ReniecPerson; pub async fn get_by_dni(dni: i32) -> (Status, Json) { let db = db(); + // TODO: move db logic to model /* * Search person in DB */ diff --git a/frontend/src/types/Register.ts b/frontend/src/types/Register.ts index 21846b3..bf37869 100644 --- a/frontend/src/types/Register.ts +++ b/frontend/src/types/Register.ts @@ -26,4 +26,6 @@ export type Register = { register_person_id: number, /// Foreign key to the course table register_course_id: number, + /// If this register is a preview, it is a "no signatures" certificate. + register_is_preview: boolean }