diff --git a/deno.lock b/deno.lock
index 47882cb..69dffaa 100644
--- a/deno.lock
+++ b/deno.lock
@@ -109,33 +109,57 @@
"npm": {
"@deno/darwin-arm64@2.6.4": {
"integrity": "sha512-5pocuV2IVWYUzomXze+bDSO86uX1WPxUn82BS7BrLI3ix8Eq7l8DhvYgz064w7rwCM4CiLLSc6MAQpAI+0gUag==",
- "os": ["darwin"],
- "cpu": ["arm64"]
+ "os": [
+ "darwin"
+ ],
+ "cpu": [
+ "arm64"
+ ]
},
"@deno/darwin-x64@2.6.4": {
"integrity": "sha512-tX7Fz47HcoXTYR4wN2WzXjqJtEPTftzjEknCYkZa8D4BzvpN7Zo1ra3Jd6bWPN9+T6mgTL6YMPMMSigXddIUcA==",
- "os": ["darwin"],
- "cpu": ["x64"]
+ "os": [
+ "darwin"
+ ],
+ "cpu": [
+ "x64"
+ ]
},
"@deno/linux-arm64-glibc@2.6.4": {
"integrity": "sha512-wY4hjjVLq5idClWj6e1de9IUZ0QZ1rxo16o0dwCJpMi+w1lolxtYxGF4y7pkcxAdZOpMGsXZuYMPq1Z2n51esA==",
- "os": ["linux"],
- "cpu": ["arm64"]
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "arm64"
+ ]
},
"@deno/linux-x64-glibc@2.6.4": {
"integrity": "sha512-H9b0WJw+eWyC6GcMGCXxC/3lz2kVveyWyUrzGyQ8hJmtDJpWiDnCU2iPqEpEcwXHgAUFFyjnRaFwedwwv5ApdA==",
- "os": ["linux"],
- "cpu": ["x64"]
+ "os": [
+ "linux"
+ ],
+ "cpu": [
+ "x64"
+ ]
},
"@deno/win32-arm64@2.6.4": {
"integrity": "sha512-fMH1dx54ORbCTpMorGjDshwonIu6KfgfPC+Pq+14jeq/8604EIFXiA484p3Ov+ViZycndNHEPe8ZKPNd8xLjJA==",
- "os": ["win32"],
- "cpu": ["arm64"]
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "arm64"
+ ]
},
"@deno/win32-x64@2.6.4": {
"integrity": "sha512-hAxqNrBLHCINtqDgKcRiu8QtMbtdnHOVW3OFQjzA3gZEcpnGUK3JiF5ql++83SjuQH8ViZKGcdqkioLR7Bf14A==",
- "os": ["win32"],
- "cpu": ["x64"]
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "x64"
+ ]
},
"@isaacs/fs-minipass@4.0.1": {
"integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
@@ -372,7 +396,7 @@
"workspace": {
"dependencies": [
"jsr:@openai/openai@^6.16.0",
- "jsr:@zod/zod@^4.3.5"
+ "jsr:@zod/zod@^4.3.5",
"jsr:@david/dax@~0.44.2"
],
"packageJson": {
diff --git a/scripts/sql_para_local_como_remoto.ts b/scripts/sql_para_local_como_remoto.ts
index f01cdaf..4488a6e 100644
--- a/scripts/sql_para_local_como_remoto.ts
+++ b/scripts/sql_para_local_como_remoto.ts
@@ -4,7 +4,7 @@
*/
import { $ } from "@david/dax";
-const OUT_FILE = "supabase/diffs/sql_para_remoto_como_local.sql";
+const OUT_FILE = "supabase/diffs/sql_para_local_como_remoto.sql";
console.log("ƒöì Comparando base de datos local vs. remota...");
diff --git a/supabase/.temp/cli-latest b/supabase/.temp/cli-latest
index 9b07af9..1dd6178 100644
--- a/supabase/.temp/cli-latest
+++ b/supabase/.temp/cli-latest
@@ -1 +1 @@
-v2.72.7
\ No newline at end of file
+v2.75.0
\ No newline at end of file
diff --git a/supabase/data_backup.sql b/supabase/data_backup.sql
index 8e835b7..8118592 100644
--- a/supabase/data_backup.sql
+++ b/supabase/data_backup.sql
@@ -1924,7 +1924,17 @@ INSERT INTO "public"."usuarios_app" ("id", "nombre_completo", "email", "externo"
INSERT INTO "public"."facultades" ("id", "nombre", "nombre_corto", "color", "icono", "creado_en", "actualizado_en") VALUES
('155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Facultad de Ingeniería', 'ING', '#EF4444', 'Hammer', '2026-01-09 13:45:37.784586+00', '2026-01-09 21:31:25.552784+00'),
- ('45a6da79-1e2d-4854-9953-6229f46c8e82', 'Facultad de Negocios', 'NEG', '#2980B9', 'Briefcase', '2026-01-09 21:32:50.605959+00', '2026-01-09 21:32:50.605959+00');
+ ('45a6da79-1e2d-4854-9953-6229f46c8e82', 'Facultad de Negocios', 'NEG', '#2980B9', 'Briefcase', '2026-01-09 21:32:50.605959+00', '2026-01-09 21:32:50.605959+00'),
+ ('21561e2c-22be-40ec-b0ad-520b5253f846', 'Coordinaci├│n de Desarrollo Humano Profesional', 'CDHP', '#F472B6', 'HeartHandshake', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('cd9409f5-bbcd-466d-82eb-b206cea51b8b', 'Centro de Idiomas', 'CI', '#2DD4BF', 'Languages', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('ab73dbce-e750-4070-82b1-4e71347cd273', 'Escuela de Altos Estudios en Salud', 'EAES', '#F43F5E', 'Stethoscope', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('0d711469-4668-4910-b08e-88406ad30c9a', 'Facultad Mexicana de Arquitectura, Dise├▒o y Comunicaci├│n', 'FAMADYC', '#EC4899', 'DraftingCompass', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Facultad de Derecho', 'DER', '#64748B', 'Scale', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('a977a640-709d-47d7-a306-9acbe4a867a9', 'Facultad de Humanidades y Ciencias Sociales', 'HUM', '#6366F1', 'Users', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('7884f606-71b0-4f67-92da-bf22e0601480', 'Facultad Mexicana de Medicina', 'MED', '#10B981', 'HeartPulse', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('d17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Facultad de Ciencias Químicas', 'FCQ', '#84CC16', 'FlaskConical', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('d8e1f958-6a3d-4a19-afa8-597755ea7873', 'Escuela de Ciencias Religiosas', 'ECR', '#0EA5E9', 'BookHeart', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00'),
+ ('45a15339-dd80-4ef7-ab8a-63c5d844e692', 'Escuela de Ciencias de la Educaci├│n', 'EDU', '#FB7185', 'GraduationCap', '2026-01-30 20:38:02.844498+00', '2026-01-30 20:38:02.844498+00');
--
@@ -1933,7 +1943,97 @@ INSERT INTO "public"."facultades" ("id", "nombre", "nombre_corto", "color", "ico
INSERT INTO "public"."carreras" ("id", "facultad_id", "nombre", "nombre_corto", "clave_sep", "activa", "creado_en", "actualizado_en") VALUES
('8208da08-d549-4359-8865-9d806bc54f19', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Ingenier├¡a en Cibern├®tica y Sistemas Computacionales', 'CIB', 'CIB-ULSA', true, '2026-01-09 13:45:37.784586+00', '2026-01-09 21:34:25.770587+00'),
- ('089cdeda-d557-4a57-b49f-eb44921dfa3a', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Ingeniería Mecatrónica', 'MTR', 'MTR_ULSA', true, '2026-01-09 21:36:01.354741+00', '2026-01-09 21:36:01.354741+00');
+ ('089cdeda-d557-4a57-b49f-eb44921dfa3a', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Ingeniería Mecatrónica', 'MTR', 'MTR_ULSA', true, '2026-01-09 21:36:01.354741+00', '2026-01-09 21:36:01.354741+00'),
+ ('b56eb209-245d-4258-a6a7-9dcb1d231cb4', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Ingeniería Económica y Financiera', 'ING_FIN', NULL, true, '2026-01-30 14:23:23.012049+00', '2026-01-30 14:23:23.012049+00'),
+ ('33c850f2-160c-472c-bf14-b39031e8e47e', '21561e2c-22be-40ec-b0ad-520b5253f846', 'Área Curricular Común 2013', 'ACC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('d65ca933-c6b4-4eb0-98fb-4a61acc49dec', '21561e2c-22be-40ec-b0ad-520b5253f846', 'Área Curricular Común 2021', 'ACC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('66c6dbda-c2a4-4891-bd80-b09d01cf7532', 'cd9409f5-bbcd-466d-82eb-b206cea51b8b', 'Área Curricular Común (Centro de Idiomas) 2013', 'ACCI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('def2d29e-dec6-42c5-b36a-5ea58873b661', 'cd9409f5-bbcd-466d-82eb-b206cea51b8b', 'Área Curricular Común (Centro de Idiomas) 2021', 'ACCI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('21ce004a-2c89-422b-ae7d-675ffcb17365', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Licenciatura en Enfermería', 'LENF', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('196f80c0-0194-4eb2-b7c2-bd5fb70fb719', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Licenciatura en Fisioterapia y Promoci├│n para la Salud', 'LFPS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('4cd28b20-f419-410c-8224-7e24c060280a', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Licenciatura en Ciencias en el Deporte', 'LCD', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6d3ea686-e38b-4baf-8fbe-5760bae33314', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Licenciatura en Medicina Dental', 'LMD', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('28627757-007a-4a57-b26d-1eb778b7d2fc', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Maestría en Nutrición Clínica', 'MNC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6f14401a-1080-4546-9a68-d9a13373bac0', 'ab73dbce-e750-4070-82b1-4e71347cd273', 'Licenciatura en Fisioterapia', 'LFIS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('73f639f2-71a7-4313-ac21-23420eb6f738', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Arquitectura', 'ARQ', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('cafa9b44-f894-48c8-8aa5-ac3dab3a384f', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Ciencias de la Comunicaci├│n', 'LCC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('4d52027e-ce61-4758-b643-448d09d6a1d9', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Diseño Gráfico y Digital', 'LDGD', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('88ed9818-552e-4637-a8d6-d6f361451cac', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Dise├▒o de Ambientes Interiores y Exteriores', 'LDAI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('b1ffa2d6-1237-4a8a-a01a-5dfbc70f3d90', '0d711469-4668-4910-b08e-88406ad30c9a', 'Especialidad en Gesti├│n y Administraci├│n de Proyectos', 'EGAP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('ad86cdab-cd81-457a-bbf5-afffec0a28cc', '0d711469-4668-4910-b08e-88406ad30c9a', 'Maestría en Estrategia e Innovación en Marcas', 'MEIM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('624a2927-3f47-4b23-b80d-fe1a7f809b7f', '0d711469-4668-4910-b08e-88406ad30c9a', 'Maestr├¡a en Direcci├│n Estrat├®gica de Comunicaci├│n', 'MDEC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('0f3366b5-9b05-4104-b87d-46931bd96f22', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Comunicaci├│n', 'LCOM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('0f3ed17e-38b7-4c4b-b1af-29096cb0215e', '0d711469-4668-4910-b08e-88406ad30c9a', 'Licenciatura en Dise├▒o de Productos', 'LDP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('be807290-075d-40a5-85bf-966ae111e743', '0d711469-4668-4910-b08e-88406ad30c9a', 'Especialidad en Direcci├│n de Proyectos', 'EDP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('20593041-d605-4174-8404-4b152041eece', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Licenciatura en Derecho', 'LDER', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('431eaf1c-42a3-4a37-a7a2-79c350bbe1ae', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Licenciatura en Relaciones Internacionales', 'LRI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('170f14c6-1b9f-49a7-92f0-ccf79c41d750', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Maestría en Derecho Financiero', 'MDF', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('7176dfbd-4b30-410e-b58c-51d03c261240', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Especialidad en Derecho de Empresa', 'EDE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('33e0ef2a-9144-4a00-b6a4-850f20a16843', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Maestría en Gobernanza y Estrategia Internacional', 'MGEI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c4e4c745-5963-4bbd-84d8-7fbbf857c499', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Doctorado en Ciencias Jurídicas', 'DCJ', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('43adfd53-06bc-422d-b5ac-0545aff30d65', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Maestría en Derecho Civil', 'MDC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('86a8d3ba-99fb-4e67-a03b-ce2c02d36db9', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Maestría en Derecho de Empresa', 'MDE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('0cab0fb0-7399-4696-a89b-f4d41fba8ae6', '7a162523-1120-4fb9-b291-dfb606c8f1d4', 'Maestría en Justicia Penal', 'MJP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('5c1b2052-6045-444f-a333-4f4234edb03f', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Educaci├│n Preescolar', 'LEP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('2937ed73-e56d-4995-91a3-198215b741bc', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Ciencias Religiosas', 'LCR', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('55dd719d-1545-421f-93c6-adc082c87e50', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Filosofía', 'LFIL', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('82408bb8-eb5b-4a16-97eb-be20494a88c8', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Maestría en Filosofía Social', 'MFS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('d644f8df-9329-4afa-a0e3-0d4572bbed5e', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Área de Gestión Educativa', 'AGE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('649f86d4-b41e-4255-9519-086f603920b4', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Área de Intervención Docente', 'AID', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('747efb86-3955-4176-ba3c-9a906bbecde2', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Especialidad en Gesti├│n de los Aprendizajes', 'EGA', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('8f98cef0-a585-4da2-bcda-4f871ccf80c4', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Doctorado en Educaci├│n', 'DOCE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c8a8cd55-e124-4393-9775-b2da161297dd', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Psicología', 'LPS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6d086d1b-aaea-4b76-9b16-fa8f3e29d9fa', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Educaci├│n Primaria', 'LEPR', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('e7b89d58-6b55-4993-a96f-bb4eb8c2eb88', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Ciencias de la Educaci├│n', 'LCE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('b4e0ad06-84b0-40fc-8228-a75b0c9cbd9b', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Pedagogía', 'LPED', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('41298122-2ffb-49cb-91c8-2decce409d81', 'a977a640-709d-47d7-a306-9acbe4a867a9', 'Licenciatura en Teología', 'LTEO', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('ade7dcff-d65b-4d95-919b-d2e09788253f', '7884f606-71b0-4f67-92da-bf22e0601480', 'Licenciatura en M├®dico Cirujano', 'LMC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('ab3bb83e-fcd9-4838-92f1-b6c4fb98ed2e', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Licenciatura en Ingeniería Química', 'LIQ', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('991edcde-b77e-4d22-b76b-3bf6ec3d3555', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Licenciatura en Qu├¡mico Farmac├®utico Bi├│logo', 'QFB', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('2017ce3d-89ea-48c0-b36f-fe05f1e364cc', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Licenciatura en Química de Alimentos', 'LQA', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('7bb3c955-fee8-42af-bc5b-6f96fdbcedcd', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Licenciatura en Ingeniería Ambiental', 'LIA', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('eee00014-3877-4572-a8af-cdd36ca04802', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Maestría en Ciencia de los Alimentos y Nutrición Humana', 'MCAN', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('2e4ac125-101e-4897-80a2-e4e9a313d43f', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Maestría en Farmacología Clínica', 'MFC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('8b25bb3f-dbb9-46be-8423-761964bd65f9', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Maestría en Calidad y Estadística Aplicada', 'MCEA', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('b425282f-9e08-47da-b755-ede93d198eed', 'd17b19c6-b7ab-4bdc-8bb9-ddf6f9e0358e', 'Maestría en Ingeniería de Proyectos', 'MIP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('334763cf-973e-4610-9ee3-6475e861b783', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Contaduría y Finanzas', 'LCF', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('7075d507-6404-4b18-a5cb-e07a187bae55', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Mercadotecnia', 'LMER', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('90cad868-c0db-4b8b-a346-2272655141c8', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Comercio y Negocios Internacionales', 'LCNI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('98ac0686-c6cf-4b89-bb7c-616c7d23dc38', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Administraci├│n', 'LADM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c296f7b6-351b-44dc-a08c-2a676aa6786c', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Tecnologías de Información', 'LTI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('d2c59b24-0483-49d0-b9c3-cff6b7af5847', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Dirección de Organizaciones de la Salud', 'MDOS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('cc757121-41aa-4532-9050-81e8adc7fbb8', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Actuaría', 'LACT', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c4f371bb-9132-4dbc-b4c3-def5d6abe627', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Especialidad en Mercadotecnia y Publicidad', 'EMP', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('545a7ee2-506c-4a15-970f-8bd9c9267b9e', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Especialidad en Finanzas Corporativas y Bursátiles', 'EFCB', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c33b8931-6648-4916-96bd-177cdaf75002', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Especialidad en Logística y Cadena de Suministro', 'ELCS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6d78b05e-9838-4256-90d3-28d270439e81', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Especialidad en Administraci├│n de Organizaciones de la Salud', 'EAOS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('ece2d1f2-4f70-47fe-92aa-7b56dadf78ca', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Ciencias Actuariales', 'MCA', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('cf97a7fc-e769-4597-b470-72fad0d37d26', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Doctorado en Administraci├│n', 'DADM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('18ce85d7-4bea-4909-bad4-e0b30aa8f0d8', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Administración de Organizaciones de la Salud', 'MAOS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6e3056f7-1147-41df-8f9b-d39e72c20ea5', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Administración de Negocios Internacionales', 'MANI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('1e8360a6-a86a-4a66-9b9e-68cbde3b3b1e', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Tecnologías de Información en la Dirección de Negocios', 'MTID', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('324f1f4a-8bcc-4b60-b1f5-86364ee00cbb', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Administración', 'MADM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('b0c5b5fe-ef94-4a34-a29a-80e3b9d28552', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Ingeniería Económica y Financiera', 'MIEF', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('2769395d-08bc-4903-89a6-04530dc7e1c7', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestría en Administración de Negocios Internacionales (MIEX)', 'MIEX', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('5f3c379b-a064-4658-96de-f4301b8f9cef', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Maestr├¡a en Gesti├│n Estrat├®gica del Capital Humano', 'MGEC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('ddb222ae-2bd1-4e0b-a389-deb6f24e74fd', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Administraci├│n e Innovaci├│n de Negocios', 'LAIN', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('e733243f-9791-48f0-8dd8-bd54e119a7f0', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Ingeniería Económica y Financiera', 'LIEF', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('b8e1d826-8ea8-4b64-8c57-a544d82e52b6', '45a6da79-1e2d-4854-9953-6229f46c8e82', 'Licenciatura en Transformaci├│n Digital para los Negocios', 'LTDN', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('00f6f9a0-56bc-43e6-a0e7-5ac2c00fbc2a', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingeniería Electrónica', 'LIE', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6dcde533-b35b-4c53-b803-e2ccc275a04f', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingeniería Civil', 'LIC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('48220a64-7bd5-4dea-bb95-31f1af9dbcbd', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingenier├¡a Mec├ínica y en Sistemas Energ├®ticos', 'LIME', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('a607a966-d454-4f08-950e-d8e6ec1e1545', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingeniería Electrónica para Sistemas Inteligentes', 'LIES', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('a75b6da6-ad46-43d8-a069-31a203a9d340', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingeniería Mecatrónica', 'LIM', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c0fb8394-656f-4709-a92e-351daf477c60', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingeniería Industrial', 'LII', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('8f1ce751-949b-45dd-8e38-e10c64b077fd', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingenier├¡a Cibern├®tica y Sistemas Computacionales', 'LICS', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('76224caa-1203-4b18-b9df-758f1f9a97fb', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Licenciatura en Ingenier├¡a Biom├®dica', 'LIB', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('01552f83-5625-4532-a8ae-723cc864494c', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Maestría en Gerencia de Proyectos Inmobiliarios', 'MGPI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('81278d11-5487-41b3-b8bd-708cdd147ed4', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Maestría en Dirección Industrial', 'MDI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('d8089840-c7ba-4e64-b073-d8d93092424f', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Especialidad en Direcci├│n Industrial', 'EDI', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('fbae0d9a-282c-4eb0-bc48-02bb11015d57', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Maestría en Gestión de Proyectos y de Empresas Constructoras', 'MGPC', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('c8f8c573-ec33-446d-886d-338def5d55af', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Especialidad en Energías Renovables', 'EER', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('83fcc355-b79b-4650-a757-0c935127e161', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Maestría en Ciberseguridad', 'MCIB', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00'),
+ ('6a9ae3f4-91ae-4e56-8806-9d9f4692d796', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'Especialidad en Inteligencia de Datos', 'EID', NULL, true, '2026-01-30 20:55:12.677212+00', '2026-01-30 20:55:12.677212+00');
--
@@ -1951,7 +2051,7 @@ INSERT INTO "public"."estados_plan" ("id", "clave", "etiqueta", "orden", "es_fin
--
INSERT INTO "public"."estructuras_asignatura" ("id", "nombre", "version", "definicion", "creado_en", "actualizado_en") VALUES
- ('7856e9cc-9ac1-4a31-b93a-0624d4c5e1de', 'Asignatura SEP/ULSA (semilla)', '1.0', '{"type": "object", "required": ["descripcion", "nombre", "fines_de_aprendizaje_o_formacion", "perfil_de_egreso"], "properties": {"nombre": {"type": "string", "description": "Indicar la denominación (nombre) del plan de estudios. Corresponde al requisito de denominación propuesto en el Artículo 8, fracción IV del Acuerdo 17/11/17."}, "descripcion": {"type": "string", "description": "Una breve descripción"}, "perfil_de_egreso": {"type": "string", "description": "Describir los atributos que habrán desarrollado los estudiantes al concluir el plan de estudios, acordes al nivel educativo y denominación propuesta. De preferencia, dividirlo en conocimientos, habilidades y actitudes. Corresponde al requisito ''Perfil de egreso'' del Artículo 8, fracción VI del Acuerdo 17/11/17."}, "fines_de_aprendizaje_o_formacion": {"type": "string", "description": "Describir los aprendizajes que lograrán los estudiantes al concluir el plan de estudios. Deberá corresponder con el nivel educativo y la denominación del plan de estudios. Corresponde al requisito ''Descripción de los fines del aprendizaje o formación'' del Artículo 8, fracción IV del Acuerdo 17/11/17."}}, "additionalProperties": false}', '2026-01-09 13:45:37.784586+00', '2026-01-13 20:41:14.261408+00');
+ ('7856e9cc-9ac1-4a31-b93a-0624d4c5e1de', 'Asignatura SEP/ULSA (semilla)', '1.0', '{"type": "object", "required": ["denominacion_de_la_asignatura_o_unidad_de_aprendizaje", "ciclo", "clave_de_la_asignatura", "fines_de_aprendizaje_o_formacion", "contenido_tematico", "actividades_de_aprendizaje_bajo_conduccion_de_un_academico", "actividades_de_aprendizaje_independientes", "criterios_de_evaluacion", "modalidades_tecnologicas_e_informaticas"], "properties": {"ciclo": {"type": "string", "title": "Ciclo", "examples": ["Primer semestre"], "description": "Indicar el ciclo en el que se impartir├í la asignatura en el orden establecido en el mapa curricular. En caso de ser flexible; indicar el ├írea o m├│dulo al que pertenece. Para curr├¡culum r├¡gido que contemple asignaturas optativas; indicar ÔÇ£OptativaÔÇØ, y en caso de que se curse en un ciclo determinado, se├▒alar el ciclo acompa├▒ado de la leyenda ÔÇ£OptativaÔÇØ."}, "contenido_tematico": {"type": "string", "title": "Contenido tem├ítico", "description": "Enunciar, en idioma espa├▒ol, los temas y subtemas que se abordar├ín en la asignatura o unidad de aprendizaje; estructurados de manera l├│gica y secuencial y numerados en orden jer├írquico. ├ëstos deber├ín ser acordes con la carga horaria asignada, sustentar la denominaci├│n de la asignatura y contribuir al logro de los fines de aprendizaje."}, "clave_de_la_asignatura": {"type": "string", "title": "Clave de la asignatura", "examples": ["MAT-101"], "description": "Anotar la clave que identifica a la asignatura o unidad de aprendizaje; la cual debe coincidir con la se├▒alada en el mapa curricular."}, "criterios_de_evaluacion": {"type": "string", "title": "Criterios de evaluaci├│n", "description": "Enlistar las actividades o productos que considerar├ín para valorar los aprendizajes logrados por los estudiantes, se├▒alar el porcentaje para cada uno, de tal manera que sumen el 100%. ├ëstos deber├ín ser acordes con las actividades de aprendizaje."}, "fines_de_aprendizaje_o_formacion": {"type": "string", "title": "Fines de aprendizaje o formaci├│n", "description": "Describir los aprendizajes y fines que alcanzar├í el estudiante al concluir la asignatura. Deber├í sustentar la denominaci├│n de la asignatura, vincularse con los contenidos tem├íticos y coadyuvar al logro del fin de aprendizaje y perfil de egreso del plan de estudios."}, "modalidades_tecnologicas_e_informaticas": {"type": "string", "title": "Modalidades tecnol├│gicas e inform├íticas", "description": "Describir los recursos tecnol├│gicos y de comunicaci├│n que se emplear├ín para el desarrollo del proceso de ense├▒anza-aprendizaje de la asignatura. Para las modalidades no escolarizada y mixta, este elemento es obligatorio."}, "actividades_de_aprendizaje_independientes": {"type": "string", "title": "Actividades de aprendizaje independientes", "description": "Se├▒alar las actividades de aprendizaje que desarrollar├í el estudiante de manera independiente. ├ëstas deber├ín ser acordes con la naturaleza de la asignatura y la modalidad educativa."}, "denominacion_de_la_asignatura_o_unidad_de_aprendizaje": {"type": "string", "title": "Denominaci├│n de la asignatura o unidad de aprendizaje", "examples": ["Matem├íticas I"], "description": "Se├▒alar el nombre de la asignatura o unidad de aprendizaje de igual manera que en el mapa curricular."}, "actividades_de_aprendizaje_bajo_conduccion_de_un_academico": {"type": "string", "title": "Actividades de aprendizaje bajo conducci├│n de un acad├®mico", "description": "Se├▒alar las actividades de aprendizaje que desarrollar├í el estudiante en las horas-clase. ├ëstas deber├ín ser acordes con la naturaleza de la asignatura, modalidad educativa e instalaciones empleadas, adem├ís de contribuir al logro de los fines de aprendizaje."}}, "additionalProperties": false}', '2026-01-09 13:45:37.784586+00', '2026-01-28 15:42:54.449734+00');
--
@@ -1959,16 +2059,21 @@ INSERT INTO "public"."estructuras_asignatura" ("id", "nombre", "version", "defin
--
INSERT INTO "public"."estructuras_plan" ("id", "nombre", "tipo", "template_id", "definicion", "creado_en", "actualizado_en") VALUES
- ('69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Plan base SEP/ULSA (2026)', 'CURRICULAR', '1337636802549652331', '{"type": "object", "required": ["nivel", "nombre", "modalidad_educativa", "antecedente_academico", "area_de_estudio", "clave_del_plan_de_estudios", "diseno_curricular", "total_de_ciclos_del_plan_de_estudios", "duracion_del_ciclo_escolar", "carga_horaria_a_la_semana", "fines_de_aprendizaje_o_formacion", "perfil_de_egreso", "programa_de_investigacion", "curso_propedeutico", "perfil_de_ingreso", "administracion_y_operatividad_del_plan_de_estudios", "sustento_teorico_del_modelo_curricular", "justificacion_de_la_propuesta_curricular", "propuesta_de_evaluacion_periodica_del_plan_de_estudios"], "properties": {"nivel": {"type": "string", "description": "Indicar el nivel educativo del plan de estudios. Corresponde al requisito de ''Nivel educativo'' propuesto en el Art├¡culo 8, fracci├│n I del Acuerdo 17/11/17."}, "nombre": {"type": "string", "description": "Indicar la denominaci├│n (nombre) del plan de estudios. Corresponde al requisito de denominaci├│n propuesto en el Art├¡culo 8, fracci├│n IV del Acuerdo 17/11/17."}, "area_de_estudio": {"type": "string", "description": "Se├▒alar el ÔÇ£campo amplioÔÇØ al que pertenece el plan de estudios. Para ello, considerar la Clasificaci├│n Mexicana de Planes de Estudio por Campos de Formaci├│n Acad├®mica (CMPE 2016), publicado por INEGI. Deber├í vincularse con el fin de aprendizaje y perfil de egreso del plan de estudios. Dato de clasificaci├│n del Anexo 1."}, "perfil_de_egreso": {"type": "string", "description": "Describir los atributos que habr├ín desarrollado los estudiantes al concluir el plan de estudios, acordes al nivel educativo y denominaci├│n propuesta. De preferencia, dividirlo en conocimientos, habilidades y actitudes. Corresponde al requisito ''Perfil de egreso'' del Art├¡culo 8, fracci├│n VI del Acuerdo 17/11/17."}, "diseno_curricular": {"enum": ["R├¡gido", "Flexible"], "type": "string", "description": "Indicar si es ÔÇ£R├¡gidoÔÇØ o ÔÇ£FlexibleÔÇØ. Define la estructura para el requisito ''Mapa curricular'' del Art├¡culo 8, fracci├│n VII del Acuerdo 17/11/17."}, "perfil_de_ingreso": {"type": "string", "description": "Indicar las condiciones acad├®micas ideales (conocimientos, habilidades y aptitudes), para incorporarse al plan de estudios. Deber├í vincularse con el nivel educativo y campo de estudio. Corresponde al requisito ''Perfil de ingreso'' (condiciones m├¡nimas requeridas) del Art├¡culo 8, fracci├│n V del Acuerdo 17/11/17."}, "curso_propedeutico": {"type": ["string", "null"], "description": "Se├▒alar las situaciones en las que aplicar├í el curso proped├®utico, la poblaci├│n a la que estar├í dirigido, su duraci├│n, la relaci├│n con el plan de estudios, as├¡ como la informaci├│n que considere relevante. Elemento opcional mencionado en las gu├¡as de llenado del Anexo 1."}, "modalidad_educativa": {"enum": ["Escolar", "No escolarizada", "Mixta"], "type": "string", "description": "Se├▒alar la modalidad educativa en la que se impartir├í el plan de estudios: escolar, no escolarizada o mixta. Corresponde al requisito de ''Modalidad educativa'' del Art├¡culo 8, fracci├│n II del Acuerdo 17/11/17."}, "antecedente_academico": {"type": "string", "description": "Se├▒alar el nivel educativo requerido para ingresar al plan de estudios. Para posgrados, adem├ís del nivel educativo; indicar la(s) disciplina(s) o ├írea(s) af├¡n(es) al plan de estudios. Corresponde al requisito ''Perfil de ingreso'' (antecedente acad├®mico necesario) del Art├¡culo 8, fracci├│n V del Acuerdo 17/11/17."}, "carga_horaria_a_la_semana": {"type": "number", "description": "Indicar la m├íxima carga horaria impartida a la semana; no mayor a 50 horas bajo la conducci├│n de un acad├®mico. Corresponde a la restricci├│n ''sin exceder una carga m├íxima de 50 horas efectivas por semana'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "programa_de_investigacion": {"type": ["string", "null"], "description": "(Obligatorio para el nivel de Doctorado y para aqu├®llas Maestr├¡as orientadas a la investigaci├│n). Presentar el programa de investigaci├│n que describa los objetivos del programa y l├¡neas de investigaci├│n con sus respectivos objetivos. Asimismo, detallar la vinculaci├│n con las asignaturas que conforman el plan de estudios, la metodolog├¡a y presentaci├│n de las investigaciones, as├¡ como el perfil de los docentes que guiar├ín su desarrollo. Requisito obligatorio solo para Doctorados o Maestr├¡as con orientaci├│n a investigaci├│n seg├║n el Art├¡culo 10, fracci├│n III incisos b) y c) del Acuerdo 17/11/17."}, "clave_del_plan_de_estudios": {"type": "string", "description": "Se├▒alar el a├▒o en el que solicita el tr├ímite. Dato administrativo del Anexo 1."}, "duracion_del_ciclo_escolar": {"type": "string", "description": "Se├▒alar el n├║mero m├¡nimo de semanas efectivas de clase que integran el tipo de ciclo en el que se imparte el plan de estudios. Corresponde exactamente al requisito ''Duraci├│n m├¡nima en semanas'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "fines_de_aprendizaje_o_formacion": {"type": "string", "description": "Describir los aprendizajes que lograr├ín los estudiantes al concluir el plan de estudios. Deber├í corresponder con el nivel educativo y la denominaci├│n del plan de estudios. Corresponde al requisito ''Descripci├│n de los fines del aprendizaje o formaci├│n'' del Art├¡culo 8, fracci├│n IV del Acuerdo 17/11/17."}, "total_de_ciclos_del_plan_de_estudios": {"type": "string", "description": "Establecer el n├║mero de ciclos escolares que integran el plan de estudios. Corresponde a ''se├▒alando el n├║mero de ciclos en que se impartir├í'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "sustento_teorico_del_modelo_curricular": {"type": ["string", "null"], "description": "Presentar de forma concreta el marco conceptual en el que se justifica y fundamenta el dise├▒o y organizaci├│n curricular del plan de estudios. Corresponde al ''sustento te├│rico del modelo curricular'' que el particular puede incluir seg├║n el Art├¡culo 8 (p├írrafo tercero) del Acuerdo 17/11/17."}, "justificacion_de_la_propuesta_curricular": {"type": ["string", "null"], "description": "(Exclusivo para modalidades no escolarizada y mixta). Describir c├│mo se impartir├í el plan de estudios en la modalidad educativa elegida, los recursos tecnol├│gicos y/o did├ícticos que emplear├ín para su desarrollo y su vinculaci├│n con las asignaturas y actividades de aprendizaje. Corresponde a lo solicitado en el Art├¡culo 14 (justificaci├│n de modalidad) y Art├¡culo 15 (especificaciones de plataforma/modelo) del Acuerdo 17/11/17."}, "administracion_y_operatividad_del_plan_de_estudios": {"type": ["string", "null"], "description": "Describir la administraci├│n del plan de estudios, as├¡ como su operatividad; considerando el tipo de dise├▒o curricular empleado. Si es flexible; incorporar el n├║mero m├¡nimo y m├íximo de asignaturas que se cursar├ín por ciclo. Corresponde a la ''descripci├│n detallada de la(s) forma(s) de administraci├│n y operatividad'' permitida en el Art├¡culo 8 (p├írrafo tercero) del Acuerdo 17/11/17."}, "propuesta_de_evaluacion_periodica_del_plan_de_estudios": {"type": ["string", "null"], "description": "Describir de manera detallada la metodolog├¡a que emplear├ín para la evaluaci├│n del plan de estudios, incluyendo los instrumentos y periodicidad en la que se llevar├í a cabo; con la finalidad de mantenerlo actualizado y acorde a las necesidades educativas y disciplinares. Corresponde al requisito ''Propuesta de evaluaci├│n peri├│dica del Plan de estudio'' del Art├¡culo 8, fracci├│n VIII del Acuerdo 17/11/17."}}, "additionalProperties": false}', '2026-01-09 13:45:37.784586+00', '2026-01-20 14:06:17.099626+00');
+ ('69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Plan base SEP/ULSA (2026)', 'CURRICULAR', '1337636802549652331', '{"type": "object", "required": ["nombre_autorizado_de_la_institucion", "nivel_y_nombre_del_plan_de_estudios", "modalidad_educativa", "vigencia", "antecedente_academico", "area_de_estudio", "clave_del_plan_de_estudios", "diseno_curricular", "total_de_ciclos_del_plan_de_estudios", "duracion_del_ciclo_escolar", "carga_horaria_a_la_semana", "fines_de_aprendizaje_o_formacion", "perfil_de_egreso", "programa_de_investigacion", "curso_propedeutico", "perfil_de_ingreso", "administracion_y_operatividad_del_plan_de_estudios", "sustento_teorico_del_modelo_curricular", "justificacion_de_la_propuesta_curricular", "propuesta_de_evaluacion_periodica_del_plan_de_estudios", "nombre_y_cargo_de_la_persona_facultada_para_autorizar_el_plan_de_estudios"], "properties": {"vigencia": {"type": "string", "title": "Vigencia", "examples": ["2024-2029"], "description": "(Espacio para uso exclusivo de la autoridad educativa)", "referencia_normativa": "Dato administrativo del Anexo 1."}, "area_de_estudio": {"type": "string", "title": "├ürea de estudio", "examples": ["Ingenier├¡a, industria y construcci├│n", "Ciencias sociales y derecho"], "description": "Se├▒alar el ÔÇ£campo amplioÔÇØ al que pertenece el plan de estudios. Para ello, considerar la Clasificaci├│n Mexicana de Planes de Estudio por Campos de Formaci├│n Acad├®mica (CMPE 2016), publicado por INEGI.", "referencia_normativa": "Deber├í vincularse con el fin de aprendizaje y perfil de egreso del plan de estudios."}, "perfil_de_egreso": {"type": "string", "title": "Perfil de egreso", "examples": ["El egresado ser├í capaz de dise├▒ar estrategias legales..."], "description": "Describir los atributos que habr├ín desarrollado los estudiantes al concluir el plan de estudios, acordes al nivel educativo y denominaci├│n propuesta. De preferencia, dividirlo en conocimientos, habilidades y actitudes.", "referencia_normativa": "Corresponde al requisito ''Perfil de egreso'' del Art├¡culo 8, fracci├│n VI del Acuerdo 17/11/17."}, "diseno_curricular": {"enum": ["R├¡gido", "Flexible"], "type": "string", "title": "Dise├▒o curricular", "examples": ["Flexible"], "description": "Indicar si es ÔÇ£R├¡gidoÔÇØ o ÔÇ£FlexibleÔÇØ.", "referencia_normativa": "Define la estructura para el requisito ''Mapa curricular'' del Art├¡culo 8, fracci├│n VII del Acuerdo 17/11/17."}, "perfil_de_ingreso": {"type": "string", "title": "Perfil de ingreso", "examples": ["Conocimientos b├ísicos de matem├íticas, capacidad de an├ílisis y redacci├│n."], "description": "Indicar las condiciones acad├®micas ideales (conocimientos, habilidades y aptitudes), para incorporarse al plan de estudios. Deber├í vincularse con el nivel educativo y campo de estudio.", "referencia_normativa": "Corresponde al requisito ''Perfil de ingreso'' (condiciones m├¡nimas requeridas) del Art├¡culo 8, fracci├│n V del Acuerdo 17/11/17."}, "curso_propedeutico": {"type": ["string", "null"], "title": "Curso proped├®utico", "examples": ["Curso de nivelaci├│n de 40 horas obligatorio para aspirantes de ├íreas ajenas."], "description": "Se├▒alar las situaciones en las que aplicar├í el curso proped├®utico, la poblaci├│n a la que estar├í dirigido, su duraci├│n, la relaci├│n con el plan de estudios, as├¡ como la informaci├│n que considere relevante.", "referencia_normativa": "Elemento opcional mencionado en las gu├¡as de llenado del Anexo 1."}, "modalidad_educativa": {"enum": ["Escolar", "No escolarizada", "Mixta"], "type": "string", "title": "Modalidad educativa", "examples": ["Escolar"], "description": "Se├▒alar la modalidad educativa en la que se impartir├í el plan de estudios: escolar, no escolarizada o mixta.", "referencia_normativa": "Corresponde al requisito de ''Modalidad educativa'' del Art├¡culo 8, fracci├│n II del Acuerdo 17/11/17."}, "antecedente_academico": {"type": "string", "title": "Antecedente acad├®mico", "examples": ["Bachillerato concluido o equivalente.", "T├¡tulo de Licenciatura en ├íreas afines a la salud."], "description": "Se├▒alar el nivel educativo requerido para ingresar al plan de estudios. Para posgrados, adem├ís del nivel educativo; indicar la(s) disciplina(s) o ├írea(s) af├¡n(es) al plan de estudios.", "referencia_normativa": "Corresponde al requisito ''Perfil de ingreso'' (antecedente acad├®mico necesario) del Art├¡culo 8, fracci├│n V del Acuerdo 17/11/17."}, "carga_horaria_a_la_semana": {"type": "number", "title": "Carga horaria a la semana", "examples": [25], "description": "Indicar la m├íxima carga horaria impartida a la semana; no mayor a 50 horas bajo la conducci├│n de un acad├®mico.", "referencia_normativa": "Corresponde a la restricci├│n ''sin exceder una carga m├íxima de 50 horas efectivas por semana'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "programa_de_investigacion": {"type": ["string", "null"], "title": "Programa de investigaci├│n", "examples": ["L├¡nea 1: Innovaci├│n Educativa. Objetivo: Analizar el impacto de..."], "description": "(Obligatorio para el nivel de Doctorado y para aqu├®llas Maestr├¡as orientadas a la investigaci├│n). Presentar el programa de investigaci├│n que describa los objetivos del programa y l├¡neas de investigaci├│n con sus respectivos objetivos. Asimismo, detallar la vinculaci├│n con las asignaturas que conforman el plan de estudios, la metodolog├¡a y presentaci├│n de las investigaciones, as├¡ como el perfil de los docentes que guiar├ín su desarrollo.", "referencia_normativa": "Requisito obligatorio solo para Doctorados o Maestr├¡as con orientaci├│n a investigaci├│n seg├║n el Art├¡culo 10, fracci├│n III incisos b) y c) del Acuerdo 17/11/17."}, "clave_del_plan_de_estudios": {"type": "string", "title": "Clave / A├▒o del plan", "examples": ["2024"], "description": "Se├▒alar el a├▒o en el que solicita el tr├ímite.", "referencia_normativa": "Dato administrativo del Anexo 1."}, "duracion_del_ciclo_escolar": {"type": "string", "title": "Duraci├│n m├¡nima en semanas de cada ciclo escolar", "examples": ["16 semanas"], "description": "Se├▒alar el n├║mero m├¡nimo de semanas efectivas de clase que integran el tipo de ciclo en el que se imparte el plan de estudios.", "referencia_normativa": "Corresponde exactamente al requisito ''Duraci├│n m├¡nima en semanas'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "fines_de_aprendizaje_o_formacion": {"type": "string", "title": "Fin de aprendizaje o formaci├│n", "examples": ["El estudiante analizar├í los principios fundamentales del derecho penal..."], "description": "Describir los aprendizajes que lograr├ín los estudiantes al concluir el plan de estudios. Deber├í corresponder con el nivel educativo y la denominaci├│n del plan de estudios.", "referencia_normativa": "Corresponde al requisito ''Descripci├│n de los fines del aprendizaje o formaci├│n'' del Art├¡culo 8, fracci├│n IV del Acuerdo 17/11/17."}, "nivel_y_nombre_del_plan_de_estudios": {"type": "string", "title": "Nivel y nombre del plan de estudios", "examples": ["Licenciatura en Derecho", "Maestr├¡a en Ciencias de la Computaci├│n"], "description": "Indicar el nivel educativo y denominaci├│n del plan de estudios.", "referencia_normativa": "Corresponde al requisito ''Nivel y denominaci├│n del plan de estudios'' del Art├¡culo 8, fracci├│n I del Acuerdo 17/11/17."}, "nombre_autorizado_de_la_institucion": {"type": "string", "title": "Nombre autorizado de la instituci├│n", "examples": ["Universidad La Salle A.C."], "description": "Proporcionar el nombre de la instituci├│n autorizado por SEP.", "referencia_normativa": "Dato administrativo del Anexo 1."}, "total_de_ciclos_del_plan_de_estudios": {"type": "string", "title": "N├║mero de ciclos escolares que integrar├ín el plan de estudio", "examples": ["9 cuatrimestres", "8 semestres"], "description": "En dise├▒o flexible especificar m├¡nimo y m├íximo de ciclos. En dise├▒o r├¡gido especificar el total de ciclos.", "referencia_normativa": "Corresponde a ''se├▒alando el n├║mero de ciclos en que se impartir├í'' del Art├¡culo 8, fracci├│n III del Acuerdo 17/11/17."}, "sustento_teorico_del_modelo_curricular": {"type": ["string", "null"], "title": "Sustento te├│rico del modelo curricular", "examples": ["Modelo por competencias profesionales fundamentado en el constructivismo..."], "description": "Presentar de forma concreta el marco conceptual en el que se justifica y fundamenta el dise├▒o y organizaci├│n curricular del plan de estudios.", "referencia_normativa": "Corresponde al ''sustento te├│rico del modelo curricular'' que el particular puede incluir seg├║n el Art├¡culo 8 (p├írrafo tercero) del Acuerdo 17/11/17."}, "justificacion_de_la_propuesta_curricular": {"type": ["string", "null"], "title": "Justificaci├│n de la propuesta curricular en la modalidad no escolarizada o mixta", "examples": ["Se utilizar├í una plataforma LMS asincr├│nica complementada con sesiones s├¡ncronas..."], "description": "(Exclusivo para modalidades no escolarizada y mixta). Describir c├│mo se impartir├í el plan de estudios en la modalidad educativa elegida, los recursos tecnol├│gicos y/o did├ícticos que emplear├ín para su desarrollo y su vinculaci├│n con las asignaturas y actividades de aprendizaje.", "referencia_normativa": "Corresponde a lo solicitado en el Art├¡culo 14 (justificaci├│n de modalidad) y Art├¡culo 15 (especificaciones de plataforma/modelo) del Acuerdo 17/11/17."}, "administracion_y_operatividad_del_plan_de_estudios": {"type": ["string", "null"], "title": "Administraci├│n y operatividad del plan de estudios", "examples": ["El estudiante podr├í inscribir un m├¡nimo de 3 y un m├íximo de 6 asignaturas por ciclo..."], "description": "Describir la administraci├│n del plan de estudios, as├¡ como su operatividad; considerando el tipo de dise├▒o curricular empleado. Si es flexible; incorporar el n├║mero m├¡nimo y m├íximo de asignaturas que se cursar├ín por ciclo.", "referencia_normativa": "Corresponde a la ''descripci├│n detallada de la(s) forma(s) de administraci├│n y operatividad'' permitida en el Art├¡culo 8 (p├írrafo tercero) del Acuerdo 17/11/17."}, "propuesta_de_evaluacion_periodica_del_plan_de_estudios": {"type": ["string", "null"], "title": "Propuesta de evaluaci├│n peri├│dica del plan de estudios", "examples": ["Revisi├│n quinquenal mediante encuestas a empleadores, egresados y an├ílisis de tendencias del mercado."], "description": "Describir de manera detallada la metodolog├¡a que emplear├ín para la evaluaci├│n del plan de estudios, incluyendo los instrumentos y periodicidad en la que se llevar├í a cabo; con la finalidad de mantenerlo actualizado y acorde a las necesidades educativas y disciplinares.", "referencia_normativa": "Corresponde al requisito ''Propuesta de evaluaci├│n peri├│dica del Plan de estudio'' del Art├¡culo 8, fracci├│n VIII del Acuerdo 17/11/17."}, "nombre_y_cargo_de_la_persona_facultada_para_autorizar_el_plan_de_estudios": {"type": "string", "title": "Nombre y cargo de la persona facultada para autorizar el plan de estudios", "examples": ["Dr. Juan P├®rez G├│mez, Rector de la Universidad XYZ"], "description": "Indicar el nombre y cargo de la persona facultada para autorizar el plan de estudios.", "referencia_normativa": "Dato administrativo del Anexo 1."}}, "additionalProperties": false}', '2026-01-09 13:45:37.784586+00', '2026-01-28 23:09:36.914016+00');
--
-- Data for Name: planes_estudio; Type: TABLE DATA; Schema: public; Owner: postgres
--
-INSERT INTO "public"."planes_estudio" ("id", "carrera_id", "estructura_id", "nombre", "nivel", "tipo_ciclo", "numero_ciclos", "datos", "estado_actual_id", "activo", "tipo_origen", "meta_origen", "creado_por", "actualizado_por", "creado_en", "actualizado_en") VALUES
- ('c90aebbb-454e-4a8e-b2a3-99dd1c200e86', '8208da08-d549-4359-8865-9d806bc54f19', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a en Cibern├®tica y Ciberseguridad (2026)', 'Licenciatura', 'Semestre', 9, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica y Ciberseguridad", "area_de_estudio": "5. Ingenier├¡a, manufactura y construcci├│n (CMPE 2016)", "perfil_de_egreso": "Al finalizar, el egresado demostrar├í los siguientes atributos: Conocimientos Fundamentos de matem├íticas, f├¡sica y probabilidad aplicados a se├▒ales, control y comunicaciones. Arquitecturas de redes, sistemas operativos, virtualizaci├│n, servicios en la nube e integraci├│n TI/OT. Modelado y control de sistemas ciberf├¡sicos y embebidos, protocolos industriales e IoT. Criptograf├¡a aplicada, gesti├│n de identidades, gobierno y gesti├│n de seguridad de la informaci├│n. Normativa y marcos de referencia: ISO/IEC 27001/27002, NIST CSF/800-53, MITRE ATT&CK, OWASP, ENS (referencial), legislaci├│n mexicana aplicable en protecci├│n de datos y delitos inform├íticos. Auditor├¡a de seguridad, pruebas de penetraci├│n ├®ticas, respuesta a incidentes y continuidad del negocio. Gesti├│n de proyectos, econom├¡a de la ciberseguridad y ├®tica profesional. HabilidadesDise├▒ar y desplegar arquitecturas seguras para redes, nube y sistemas ciberf├¡sicos. Programar en C/C++, Python y scripts para automatizaci├│n, pruebas y an├ílisis. Configurar y operar firewalls, IDS/IPS, SIEM, WAF, VPN, segmentaci├│n y Zero Trust b├ísico. Conducir an├ílisis de riesgo, planes de tratamiento y auditor├¡as t├®cnicas y de cumplimiento. Orquestar procesos de detecci├│n, respuesta y recuperaci├│n ante incidentes. Desarrollar prototipos de IoT seguro y realizar hardening de dispositivos embebidos. Comunicar resultados t├®cnicos mediante informes ejecutivos y presentaciones efectivas. Actitudes y valores├ëtica, responsabilidad social y legalidad en el manejo de informaci├│n y en pruebas de seguridad. Aprendizaje aut├│nomo y actualizaci├│n permanente. Trabajo colaborativo, liderazgo y orientaci├│n a resultados. Respeto a la diversidad, perspectiva de g├®nero e inclusi├│n.", "diseno_curricular": "Flexible", "perfil_de_ingreso": " ConocimientosMatem├íticas de bachillerato: ├ílgebra, funciones y trigonometr├¡a. Ofim├ítica e inform├ítica b├ísica; navegaci├│n segura en Internet. Ingl├®s t├®cnico b├ísico (lectura de manuales). HabilidadesPensamiento l├│gico-matem├ítico y resoluci├│n de problemas. Comunicaci├│n escrita y oral. Gesti├│n del tiempo y aprendizaje aut├│nomo. ActitudesInter├®s por la tecnolog├¡a, la seguridad digital y la innovaci├│n. ├ëtica, responsabilidad y respeto a la legalidad. Trabajo colaborativo y apertura al aprendizaje continuo.", "curso_propedeutico": "Aplicar├í cuando el diagn├│stico de ingreso identifique brechas en matem├íticas y programaci├│n. Poblaci├│n: aspirantes provenientes de bachilleratos no afines. Duraci├│n: 40 horas (4 semanas). Contenidos: Aritm├®tica y ├ílgebra para ingenier├¡a; pensamiento l├│gico; introducci├│n a programaci├│n (Python); fundamentos de redes; ciudadan├¡a digital y nociones de ciberseguridad. Evaluaci├│n: examen criterio-referido (70% m├¡nimo) y evidencias pr├ícticas. Vinculaci├│n: articulado con Programaci├│n I, Matem├íticas I y Fundamentos de Redes.", "modalidad_educativa": "Mixta", "antecedente_academico": "Bachillerato general o tecnol├│gico concluido, o T├®cnico Superior Universitario equivalente, preferentemente en ├íreas f├¡sico-matem├íticas, inform├ítica, electr├│nica o afines.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2025", "duracion_del_ciclo_escolar": "18 semanas efectivas por ciclo semestral", "fines_de_aprendizaje_o_formacion": "El plan de estudios se orienta al desarrollo de competencias profesionales para dise├▒ar, implementar y gestionar sistemas ciberf├¡sicos y de ciberseguridad en organizaciones p├║blicas y privadas, con enfoque de resultados y apego normativo. Al concluir, el egresado ser├í capaz de: Analizar arquitecturas de sistemas ciberf├¡sicos, redes y servicios para identificar riesgos, amenazas y vulnerabilidades. Dise├▒ar estrategias de ciberseguridad basadas en est├índares (ISO/IEC 27001, NIST, MITRE ATT&CK) y en principios de ingenier├¡a segura. Implementar controles t├®cnicos y administrativos, incluyendo criptograf├¡a aplicada, segmentaci├│n de redes, endurecimiento de sistemas y gesti├│n de identidades. Programar y modelar sistemas embebidos y de IoT con pr├ícticas de seguridad por dise├▒o. Administrar infraestructuras de TI/OT y plataformas de monitoreo (SIEM, IDS/IPS) para la detecci├│n y respuesta a incidentes. Evaluar la conformidad normativa y el riesgo tecnol├│gico mediante auditor├¡as t├®cnicas y de cumplimiento. Integrar metodolog├¡as de ciencia de datos e inteligencia artificial para la detecci├│n de anomal├¡as y ciberamenazas. Simular, probar y validar el desempe├▒o y la resiliencia de sistemas cibern├®ticos en entornos controlados (cyber range/laboratorios). Gestionar proyectos tecnol├│gicos aplicando enfoques ├ígiles y de calidad, con perspectiva ├®tica y de sostenibilidad. Comunicar hallazgos t├®cnicos y recomendaciones a audiencias t├®cnicas y directivas, sustentando decisiones con evidencia.", "total_de_ciclos_del_plan_de_estudios": "8 a 10 ciclos (semestres)", "sustento_teorico_del_modelo_curricular": "Se adopta un modelo por competencias y resultados de aprendizaje, con base en: Constructivismo y aprendizaje situado para problemas reales. Taxonom├¡a de Bloom para progresi├│n cognitiva. OBE/ABET para trazabilidad de resultados de programa-asignatura. CDIO (Concebir-Dise├▒ar-Implementar-Operar) en proyectos integradores. Evaluaci├│n aut├®ntica mediante r├║bricas y desempe├▒o en laboratorios f├¡sicos y virtuales.", "justificacion_de_la_propuesta_curricular": "La modalidad mixta combina sesiones presenciales/laboratorio y trabajo en l├¡nea para garantizar pertinencia, flexibilidad espacio-temporal y autogesti├│n del aprendizaje. Plataformas tecnol├│gicas: LMS institucional (p. ej., Moodle 4.x) con repositorio de contenidos, foros, cuestionarios, r├║bricas y anal├¡tica; videoconferencia para sesiones sincr├│nicas; repositorios de c├│digo (Git) y laboratorios virtuales (simuladores de redes y ciberseguridad, sandboxes y m├íquinas virtuales) articulados con las asignaturas. Distribuci├│n horaria: 40-60% de horas bajo conducci├│n (presencial o s├¡ncrona) y 60-40% de horas independientes (as├¡ncronas) seg├║n la naturaleza de cada asignatura. Funcionalidad con instalaciones: laboratorios de redes, ciberseguridad e IoT; cyber range institucional; aulas de c├│mputo; todos con pol├¡ticas de seguridad, bit├ícoras y control de acceso. Estrategias de aprendizaje: aula invertida, aprendizaje basado en problemas/proyectos, retos de blue/red team, estudios de caso y simulaciones. Evaluaci├│n: tareas pr├ícticas en plataforma, laboratorios verificados, ex├ímenes en l├¡nea con supervisi├│n, presentaciones y defensa t├®cnica. Perfil docente: ingenier├¡as afines con experiencia en TI/OT, certificaciones deseables (CCNA/Network Security, ISO 27001 LA/LI, CEH o equivalentes) y dominio de herramientas LMS.", "administracion_y_operatividad_del_plan_de_estudios": "El plan es de dise├▒o flexible con seriaci├│n acad├®mica por competencias y cr├®ditos. Se cursa en 8 a 10 semestres con un total referencial de 320 cr├®ditos (ÔëÑ300 conforme al Art. 10). La operaci├│n acad├®mica considera: Carga por ciclo: de 5 a 7 asignaturas por semestre. Promedio semanal: 18-22 horas bajo conducci├│n y 18-22 horas independientes (carga m├íxima 40 h/sem). Modalidad mixta: al menos el 40% de las horas del programa son bajo conducci├│n de un acad├®mico (ÔëÑ960 h totales); el resto en actividades independientes mediadas por plataforma. Seriaci├│n t├¡pica: Programaci├│n I ÔåÆ Programaci├│n II ÔåÆ Estructuras de Datos ÔåÆ Sistemas Operativos; Matem├íticas I ÔåÆ Matem├íticas II ÔåÆ Probabilidad y Estad├¡stica; Redes I ÔåÆ Redes II ÔåÆ Seguridad en Redes; Control I ÔåÆ Sistemas Embebidos ÔåÆ IoT Seguro. Componentes de formaci├│n: b├ísica (matem├íticas, ciencias y programaci├│n), profesional (redes, sistemas, control, seguridad), terminal optativa (ciberdefensa, forense, nube, OT/SCADA), Proyecto Integrador y Estancia/Residencia. Tutor├¡a y asesor├¡a: obligatoria el primer a├▒o y bajo demanda en cursos superiores. Servicio social: 480 horas conforme a normativa aplicable. Acreditaci├│n y titulaci├│n: por cr├®ditos y opci├│n de titulaci├│n por examen general, proyecto aplicado, portafolio de evidencias o tesis.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "La evaluaci├│n del plan se realizar├í con una periodicidad bienal y cortes anuales, mediante: M├®todo: ciclo PDCA con evidencias OBE: mapeo resultados de programa-asignatura, r├║bricas, portafolios y KPIs institucionales. Instrumentos: encuestas a estudiantes y egresados, panel de empleadores, an├ílisis de EGEL/EXANI (cuando aplique), anal├¡tica del LMS, informes de pr├ícticas/residencias y auditor├¡as acad├®micas internas. Indicadores: eficiencia terminal, tiempo de titulaci├│n, empleabilidad, resultados de aprendizaje, certificaciones profesionales obtenidas, producci├│n de proyectos y patentes/prototipos. Vinculaci├│n sectorial: Consejo Consultivo con industria (TI/OT, energ├¡a, manufactura, finanzas) para actualizaci├│n de contenidos al menos cada 2 a├▒os. Uso de resultados: actualizaci├│n de programas, seriaci├│n y recursos did├ícticos; capacitaci├│n docente; adecuaciones a laboratorios y plataforma."}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'IA', '{}', NULL, NULL, '2026-01-09 21:48:48.404283+00', '2026-01-09 21:48:48.404283+00'),
- ('0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '8208da08-d549-4359-8865-9d806bc54f19', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a en Cibern├®tica y Ciberseguridad (2025)', 'Licenciatura', 'Semestre', 8, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica", "area_de_estudio": "Tecnolog├¡as de la Informaci├│n y la Comunicaci├│n (CMPE 2016)", "perfil_de_egreso": "Conocimientos: redes, sistemas, criptograf├¡a. Habilidades: pentesting, hardening, respuesta a incidentes. Actitudes: ├®tica, responsabilidad.", "diseno_curricular": "R├¡gido", "perfil_de_ingreso": "Pensamiento l├│gico, bases de ├ílgebra, nociones de programaci├│n y comunicaci├│n escrita.", "curso_propedeutico": null, "modalidad_educativa": "Escolar", "antecedente_academico": "Bachillerato concluido; afinidad con matem├íticas y computaci├│n.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2026-CIB-ING", "duracion_del_ciclo_escolar": "16", "fines_de_aprendizaje_o_formacion": "Formar profesionales capaces de dise├▒ar, implementar y asegurar sistemas ciberf├¡sicos y plataformas digitales.", "total_de_ciclos_del_plan_de_estudios": "8", "sustento_teorico_del_modelo_curricular": "Enfoque por competencias, aprendizaje basado en problemas y laboratorios.", "justificacion_de_la_propuesta_curricular": null, "administracion_y_operatividad_del_plan_de_estudios": "Plan r├¡gido con cargas sugeridas por semestre; asignaturas seriadas por ├íreas.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Revisi├│n anual por comit├® acad├®mico; actualizaci├│n por tendencias y retroalimentaci├│n de egresados."}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'MANUAL', '{"seed": true, "version": "2026-01-08"}', '11111111-1111-1111-1111-111111111111', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', '2026-01-21 19:38:38.888504+00');
+INSERT INTO "public"."planes_estudio" ("id", "carrera_id", "estructura_id", "nombre", "nivel", "tipo_ciclo", "numero_ciclos", "datos", "estado_actual_id", "activo", "tipo_origen", "meta_origen", "creado_por", "actualizado_por", "creado_en", "actualizado_en", "conversation_id") VALUES
+ ('4660b774-a6e2-44f4-a340-747b41235c7c', '089cdeda-d557-4a57-b49f-eb44921dfa3a', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a en Sistemas Dom├│ticos (2027)', 'Otro', 'Semestre', 9, '{"nivel": "Bachillerato", "nombre": "Especializaci├│n en Gravedad Cu├íntica de Bucles", "area_de_estudio": "Ciencias F├¡sico-Matem├íticas", "perfil_de_egreso": "La Specializaci├│n en Gravedad Cu├íntica de Bucles formar├í a un especialista capaz de integrar creativamente conocimientos avanzados en f├¡sica, matem├íticas y computaci├│n para enfrentar problemas te├│ricos y fenomenol├│gicos en la intersecci├│n de la relatividad general y la mec├ínica cu├íntica. Al finalizar el programa, el egresado ser├í capaz de: 1) Comprender y aplicar los fundamentos de la gravedad cu├íntica de bucles, incluyendo su formulaci├│n can├│nica, las variables de Ashtekar y el formalismo de redes de esp├¡n; 2) Desarrollar modelos y simulaciones rigurosas de fen├│menos cu├íntico-gravitacionales, empleando m├®todos num├®ricos y herramientas de c├│mputo cient├¡fico para analizar redes y espumas de esp├¡n, as├¡ como su relaci├│n con la cosmolog├¡a cu├íntica; 3) Utilizar y conectar conceptos avanzados de geometr├¡a diferencial, teor├¡a de grupos de Lie, representaciones y espinores para la construcci├│n de estados cu├ínticos geom├®tricos; 4) Resolver y comunicar de manera cr├¡tica problemas de frontera en f├¡sica te├│rica contempor├ínea, integrando procesos de modelado matem├ítico, an├ílisis computacional y validaci├│n fenomenol├│gica; 5) Evaluar y proponer soluciones innovadoras en entornos de trabajo colaborativo, mostrando habilidad para desarrollar proyectos cient├¡ficos reproducibles bajo principios ├®ticos y de buenas pr├ícticas en la investigaci├│n; 6) Integrarse a comunidades cient├¡ficas y continuar con estudios de posgrado o desempe├▒arse en entornos interdisciplinares que involucren f├¡sica matem├ítica, simulaci├│n, cosmolog├¡a, informaci├│n cu├íntica o modelado de sistemas complejos.", "diseno_curricular": "R├¡gido", "perfil_de_ingreso": "El aspirante debe haber concluido el bachillerato con perfil ├ürea 1 (Ciencias F├¡sico-Matem├íticas), lo que implica s├│lidas bases en matem├íticas, f├¡sica, qu├¡mica, razonamiento l├│gico y competencia en an├ílisis de problemas. Se espera capacidad para el aprendizaje aut├│nomo y familiaridad con herramientas y conceptos cient├¡ficos y tecnol├│gicos, as├¡ como inter├®s en la resoluci├│n de problemas complejos y trabajo experimental.", "curso_propedeutico": "No tiene", "modalidad_educativa": "Escolar", "antecedente_academico": "Bachillerato en Ciencias F├¡sico-Matem├íticas, con orientaci├│n en matem├íticas y f├¡sica; requisito previo para ingreso a la especializaci├│n. El plan asume que el aspirante ha concluido un bachillerato con ├íreas de Ciencias F├¡sico-Matem├íticas.", "carga_horaria_a_la_semana": 27, "programa_de_investigacion": "No aplica", "clave_del_plan_de_estudios": "2020", "duracion_del_ciclo_escolar": "16 semanas", "fines_de_aprendizaje_o_formacion": "Analizar fundamentos de la gravedad cu├íntica de bucles y su relaci├│n con la relatividad general; Dise├▒ar modelos computacionales para explorar redes de esp├¡n y espumas cu├ínticas, con enfoque en cosmolog├¡a cu├íntica; Evaluar resultados num├®ricos mediante criterios de reproducibilidad y validaci├│n fenomenol├│gica; Comunicar resultados cient├¡ficos de forma clara, estructurada y t├®cnica; Integrar conceptos de dom├│tica, electr├│nica, control y sistemas computacionales mediante herramientas de simulaci├│n para proyectos interdisciplinarios y el desarrollo de asistentes virtuales; Aplicar herramientas de c├│mputo para la creaci├│n de proyectos con c├│digo reproducible y documentaci├│n adecuada; Desarrollar capacidades de trabajo en equipo, ├®tica cient├¡fica y buenas pr├ícticas en investigaci├│n.", "total_de_ciclos_del_plan_de_estudios": "9", "sustento_teorico_del_modelo_curricular": "No aplica", "justificacion_de_la_propuesta_curricular": "No aplica", "administracion_y_operatividad_del_plan_de_estudios": "La administraci├│n y operatividad del plan de estudios se ubica bajo la Direcci├│n de Asuntos Acad├®micos - Anexo 1; modalidad escolar; estructura r├¡gida con 9 ciclos; carga horaria semanal de 27 horas; responsable: Lic. Mar├¡a Gonz├ílez P├®rez, Directora Acad├®mica; procesos de revisi├│n y actualizaci├│n conforme a la Propuesta de Evaluaci├│n Peri├│dica y a los lineamientos del Acuerdo 17/11/17.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Nivel de evaluaci├│n curricular interna: diagn├│stico de estructura y operaci├│n. An├ílisis t├®cnico-pedag├│gico del planteamiento curricular vigente; consulta a directivos del ├írea acad├®mica para valorar problem├íticas de formaci├│n y operaci├│n; consulta a docentes sobre problem├íticas de formaci├│n, operaci├│n y necesidades disciplinarias; estudio de opini├│n de estudiantes sobre la formaci├│n y operaci├│n. Nivel de evaluaci├│n curricular externa: diagn├│stico de impacto y pr├ícticas profesionales. An├ílisis del estado del conocimiento en campos disciplinarios vinculados al programa, comparaci├│n de planes y tendencias en criterios de organismos evaluadores; estudio con egresados y empleadores para valorar inserci├│n laboral y requerimientos actuales; recopilaci├│n de criterios y reformas necesarias para mantener el programa actualizado y acorde con la disciplina."}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'IA', '{"iaConfig": {"usarMCP": false, "notasAdicionales": "Agrega a los asistentes virtuales", "descripcionEnfoque": "Carrera relacionada con la dom├│tica, electr├│nica, control y sistemas computacionales"}, "referencias": {"repositoriosIds": [], "archivosReferenciaIds": []}, "generado_por": "ai_generate_plan", "ai_structured": {"model": "gpt-5-nano-2025-08-07", "usage": {"input_tokens": 9812, "total_tokens": 19204, "output_tokens": 9392, "input_tokens_details": {"cached_tokens": 0}, "output_tokens_details": {"reasoning_tokens": 8256}}, "responseId": "resp_0b1339b15ea08d51006973b4892a20819c954b7fe00a35e1ed", "conversationId": null}}', NULL, NULL, '2026-01-23 17:50:00.85346+00', '2026-01-23 22:00:33.119999+00', NULL),
+ ('c90aebbb-454e-4a8e-b2a3-99dd1c200e86', '8208da08-d549-4359-8865-9d806bc54f19', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a en Cibern├®tica y Ciberseguridad (2026)', 'Licenciatura', 'Semestre', 9, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica y Ciberseguridad", "area_de_estudio": "5. Ingenier├¡a, manufactura y construcci├│n (CMPE 2016)", "perfil_de_egreso": "Al finalizar, el egresado demostrar├í los siguientes atributos: Conocimientos Fundamentos de matem├íticas, f├¡sica y probabilidad aplicados a se├▒ales, control y comunicaciones. Arquitecturas de redes, sistemas operativos, virtualizaci├│n, servicios en la nube e integraci├│n TI/OT. Modelado y control de sistemas ciberf├¡sicos y embebidos, protocolos industriales e IoT. Criptograf├¡a aplicada, gesti├│n de identidades, gobierno y gesti├│n de seguridad de la informaci├│n. Normativa y marcos de referencia: ISO/IEC 27001/27002, NIST CSF/800-53, MITRE ATT&CK, OWASP, ENS (referencial), legislaci├│n mexicana aplicable en protecci├│n de datos y delitos inform├íticos. Auditor├¡a de seguridad, pruebas de penetraci├│n ├®ticas, respuesta a incidentes y continuidad del negocio. Gesti├│n de proyectos, econom├¡a de la ciberseguridad y ├®tica profesional. HabilidadesDise├▒ar y desplegar arquitecturas seguras para redes, nube y sistemas ciberf├¡sicos. Programar en C/C++, Python y scripts para automatizaci├│n, pruebas y an├ílisis. Configurar y operar firewalls, IDS/IPS, SIEM, WAF, VPN, segmentaci├│n y Zero Trust b├ísico. Conducir an├ílisis de riesgo, planes de tratamiento y auditor├¡as t├®cnicas y de cumplimiento. Orquestar procesos de detecci├│n, respuesta y recuperaci├│n ante incidentes. Desarrollar prototipos de IoT seguro y realizar hardening de dispositivos embebidos. Comunicar resultados t├®cnicos mediante informes ejecutivos y presentaciones efectivas. Actitudes y valores├ëtica, responsabilidad social y legalidad en el manejo de informaci├│n y en pruebas de seguridad. Aprendizaje aut├│nomo y actualizaci├│n permanente. Trabajo colaborativo, liderazgo y orientaci├│n a resultados. Respeto a la diversidad, perspectiva de g├®nero e inclusi├│n.", "diseno_curricular": "Flexible", "perfil_de_ingreso": " ConocimientosMatem├íticas de bachillerato: ├ílgebra, funciones y trigonometr├¡a. Ofim├ítica e inform├ítica b├ísica; navegaci├│n segura en Internet. Ingl├®s t├®cnico b├ísico (lectura de manuales). HabilidadesPensamiento l├│gico-matem├ítico y resoluci├│n de problemas. Comunicaci├│n escrita y oral. Gesti├│n del tiempo y aprendizaje aut├│nomo. ActitudesInter├®s por la tecnolog├¡a, la seguridad digital y la innovaci├│n. ├ëtica, responsabilidad y respeto a la legalidad. Trabajo colaborativo y apertura al aprendizaje continuo.", "curso_propedeutico": "Aplicar├í cuando el diagn├│stico de ingreso identifique brechas en matem├íticas y programaci├│n. Poblaci├│n: aspirantes provenientes de bachilleratos no afines. Duraci├│n: 40 horas (4 semanas). Contenidos: Aritm├®tica y ├ílgebra para ingenier├¡a; pensamiento l├│gico; introducci├│n a programaci├│n (Python); fundamentos de redes; ciudadan├¡a digital y nociones de ciberseguridad. Evaluaci├│n: examen criterio-referido (70% m├¡nimo) y evidencias pr├ícticas. Vinculaci├│n: articulado con Programaci├│n I, Matem├íticas I y Fundamentos de Redes.", "modalidad_educativa": "Mixta", "antecedente_academico": "Bachillerato general o tecnol├│gico concluido, o T├®cnico Superior Universitario equivalente, preferentemente en ├íreas f├¡sico-matem├íticas, inform├ítica, electr├│nica o afines.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2025", "duracion_del_ciclo_escolar": "18 semanas efectivas por ciclo semestral", "fines_de_aprendizaje_o_formacion": "El plan de estudios se orienta al desarrollo de competencias profesionales para dise├▒ar, implementar y gestionar sistemas ciberf├¡sicos y de ciberseguridad en organizaciones p├║blicas y privadas, con enfoque de resultados y apego normativo. Al concluir, el egresado ser├í capaz de: Analizar arquitecturas de sistemas ciberf├¡sicos, redes y servicios para identificar riesgos, amenazas y vulnerabilidades. Dise├▒ar estrategias de ciberseguridad basadas en est├índares (ISO/IEC 27001, NIST, MITRE ATT&CK) y en principios de ingenier├¡a segura. Implementar controles t├®cnicos y administrativos, incluyendo criptograf├¡a aplicada, segmentaci├│n de redes, endurecimiento de sistemas y gesti├│n de identidades. Programar y modelar sistemas embebidos y de IoT con pr├ícticas de seguridad por dise├▒o. Administrar infraestructuras de TI/OT y plataformas de monitoreo (SIEM, IDS/IPS) para la detecci├│n y respuesta a incidentes. Evaluar la conformidad normativa y el riesgo tecnol├│gico mediante auditor├¡as t├®cnicas y de cumplimiento. Integrar metodolog├¡as de ciencia de datos e inteligencia artificial para la detecci├│n de anomal├¡as y ciberamenazas. Simular, probar y validar el desempe├▒o y la resiliencia de sistemas cibern├®ticos en entornos controlados (cyber range/laboratorios). Gestionar proyectos tecnol├│gicos aplicando enfoques ├ígiles y de calidad, con perspectiva ├®tica y de sostenibilidad. Comunicar hallazgos t├®cnicos y recomendaciones a audiencias t├®cnicas y directivas, sustentando decisiones con evidencia.", "total_de_ciclos_del_plan_de_estudios": "8 a 10 ciclos (semestres)", "sustento_teorico_del_modelo_curricular": "Se adopta un modelo por competencias y resultados de aprendizaje, con base en: Constructivismo y aprendizaje situado para problemas reales. Taxonom├¡a de Bloom para progresi├│n cognitiva. OBE/ABET para trazabilidad de resultados de programa-asignatura. CDIO (Concebir-Dise├▒ar-Implementar-Operar) en proyectos integradores. Evaluaci├│n aut├®ntica mediante r├║bricas y desempe├▒o en laboratorios f├¡sicos y virtuales.", "justificacion_de_la_propuesta_curricular": "La modalidad mixta combina sesiones presenciales/laboratorio y trabajo en l├¡nea para garantizar pertinencia, flexibilidad espacio-temporal y autogesti├│n del aprendizaje. Plataformas tecnol├│gicas: LMS institucional (p. ej., Moodle 4.x) con repositorio de contenidos, foros, cuestionarios, r├║bricas y anal├¡tica; videoconferencia para sesiones sincr├│nicas; repositorios de c├│digo (Git) y laboratorios virtuales (simuladores de redes y ciberseguridad, sandboxes y m├íquinas virtuales) articulados con las asignaturas. Distribuci├│n horaria: 40-60% de horas bajo conducci├│n (presencial o s├¡ncrona) y 60-40% de horas independientes (as├¡ncronas) seg├║n la naturaleza de cada asignatura. Funcionalidad con instalaciones: laboratorios de redes, ciberseguridad e IoT; cyber range institucional; aulas de c├│mputo; todos con pol├¡ticas de seguridad, bit├ícoras y control de acceso. Estrategias de aprendizaje: aula invertida, aprendizaje basado en problemas/proyectos, retos de blue/red team, estudios de caso y simulaciones. Evaluaci├│n: tareas pr├ícticas en plataforma, laboratorios verificados, ex├ímenes en l├¡nea con supervisi├│n, presentaciones y defensa t├®cnica. Perfil docente: ingenier├¡as afines con experiencia en TI/OT, certificaciones deseables (CCNA/Network Security, ISO 27001 LA/LI, CEH o equivalentes) y dominio de herramientas LMS.", "administracion_y_operatividad_del_plan_de_estudios": "El plan es de dise├▒o flexible con seriaci├│n acad├®mica por competencias y cr├®ditos. Se cursa en 8 a 10 semestres con un total referencial de 320 cr├®ditos (ÔëÑ300 conforme al Art. 10). La operaci├│n acad├®mica considera: Carga por ciclo: de 5 a 7 asignaturas por semestre. Promedio semanal: 18-22 horas bajo conducci├│n y 18-22 horas independientes (carga m├íxima 40 h/sem). Modalidad mixta: al menos el 40% de las horas del programa son bajo conducci├│n de un acad├®mico (ÔëÑ960 h totales); el resto en actividades independientes mediadas por plataforma. Seriaci├│n t├¡pica: Programaci├│n I ÔåÆ Programaci├│n II ÔåÆ Estructuras de Datos ÔåÆ Sistemas Operativos; Matem├íticas I ÔåÆ Matem├íticas II ÔåÆ Probabilidad y Estad├¡stica; Redes I ÔåÆ Redes II ÔåÆ Seguridad en Redes; Control I ÔåÆ Sistemas Embebidos ÔåÆ IoT Seguro. Componentes de formaci├│n: b├ísica (matem├íticas, ciencias y programaci├│n), profesional (redes, sistemas, control, seguridad), terminal optativa (ciberdefensa, forense, nube, OT/SCADA), Proyecto Integrador y Estancia/Residencia. Tutor├¡a y asesor├¡a: obligatoria el primer a├▒o y bajo demanda en cursos superiores. Servicio social: 480 horas conforme a normativa aplicable. Acreditaci├│n y titulaci├│n: por cr├®ditos y opci├│n de titulaci├│n por examen general, proyecto aplicado, portafolio de evidencias o tesis.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "La evaluaci├│n del plan se realizar├í con una periodicidad bienal y cortes anuales, mediante: M├®todo: ciclo PDCA con evidencias OBE: mapeo resultados de programa-asignatura, r├║bricas, portafolios y KPIs institucionales. Instrumentos: encuestas a estudiantes y egresados, panel de empleadores, an├ílisis de EGEL/EXANI (cuando aplique), anal├¡tica del LMS, informes de pr├ícticas/residencias y auditor├¡as acad├®micas internas. Indicadores: eficiencia terminal, tiempo de titulaci├│n, empleabilidad, resultados de aprendizaje, certificaciones profesionales obtenidas, producci├│n de proyectos y patentes/prototipos. Vinculaci├│n sectorial: Consejo Consultivo con industria (TI/OT, energ├¡a, manufactura, finanzas) para actualizaci├│n de contenidos al menos cada 2 a├▒os. Uso de resultados: actualizaci├│n de programas, seriaci├│n y recursos did├ícticos; capacitaci├│n docente; adecuaciones a laboratorios y plataforma."}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'IA', '{"response_id": "lsadjf"}', NULL, NULL, '2026-01-09 21:48:48.404283+00', '2026-01-23 22:18:37.320091+00', NULL),
+ ('ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', '089cdeda-d557-4a57-b49f-eb44921dfa3a', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a Mecatr├│nica (2026)', 'Licenciatura', 'Semestre', 9, '{"nombre_autorizado_de_la_institucion": "Agregando nuevos datos con persistencia"}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'IA', '{"iaConfig": {"usarMCP": false, "notasAdicionales": "", "descripcionEnfoque": "Dame un plan de estudios realista y enfocado en f├¡sica m├®dica"}, "referencias": {"repositoriosIds": [], "archivosReferenciaIds": []}, "generado_por": "ai_generate_plan", "ai_structured": {"model": "gpt-5-nano-2025-08-07", "usage": {"input_tokens": 202327, "total_tokens": 209102, "output_tokens": 6775, "input_tokens_details": {"cached_tokens": 0}, "output_tokens_details": {"reasoning_tokens": 5696}}, "responseId": "resp_08633e9c3f0021c000697299eb9c2881a2a3bdc31d43c4bf0d", "conversationId": null}}', NULL, NULL, '2026-01-22 21:44:28.093643+00', '2026-01-29 21:58:12.447523+00', NULL),
+ ('f6280a08-226d-480b-ab67-561e4657bfc4', 'b56eb209-245d-4258-a6a7-9dcb1d231cb4', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingeniería Económica y Financiera', 'Licenciatura', 'Semestre', 9, '{}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'MANUAL', '{}', NULL, NULL, '2026-01-30 14:33:50.818+00', '2026-01-30 14:33:50.818+00', NULL),
+ ('79fba458-aea4-4ca8-ab76-943ede479f15', 'b56eb209-245d-4258-a6a7-9dcb1d231cb4', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'prueba', 'Licenciatura', 'Semestre', 9, '{}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'MANUAL', '{}', NULL, NULL, '2026-01-30 14:44:48.312+00', '2026-01-30 14:44:48.312+00', NULL),
+ ('0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '8208da08-d549-4359-8865-9d806bc54f19', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Ingenier├¡a en Cibern├®tica y Ciberseguridad (2025)', 'Maestr├¡a', 'Semestre', 8, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica", "area_de_estudio": "Tecnolog├¡as de la Informaci├│n y la Comunicaci├│n (CMPE 2016)", "perfil_de_egreso": "Conocimientos: redes, sistemas, criptograf├¡a. Habilidades: pentesting, hardening, respuesta a incidentes. Actitudes: ├®tica, responsabilidad.", "diseno_curricular": "R├¡gido", "perfil_de_ingreso": "Pensamiento l├│gico, bases de ├ílgebra, nociones de programaci├│n y comunicaci├│n escrita.", "curso_propedeutico": null, "modalidad_educativa": "Probando guardado", "antecedente_academico": "Bachillerato concluido; afinidad con matem├íticas y computaci├│n.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2026-CIB-ING", "duracion_del_ciclo_escolar": "16", "fines_de_aprendizaje_o_formacion": "Formar profesionales capaces de dise├▒ar, implementar y asegurar sistemas ciberf├¡sicos y plataformas digitales.", "nombre_autorizado_de_la_institucion": "Agregando informacion persistente", "total_de_ciclos_del_plan_de_estudios": "8", "sustento_teorico_del_modelo_curricular": "Enfoque por competencias, aprendizaje basado en problemas y laboratorios.", "justificacion_de_la_propuesta_curricular": null, "administracion_y_operatividad_del_plan_de_estudios": "Plan r├¡gido con cargas sugeridas por semestre; asignaturas seriadas por ├íreas.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Revisi├│n anual por comit├® acad├®mico; actualizaci├│n por tendencias y retroalimentaci├│n de egresados."}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'MANUAL', '{"seed": true, "version": "2026-01-08"}', '11111111-1111-1111-1111-111111111111', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', '2026-01-30 20:18:43.823019+00', '123'),
+ ('c5d80b6d-5d3d-4730-a4d5-8eaec3287910', '20593041-d605-4174-8404-4b152041eece', '69fb2b77-5a95-47e0-bf1f-389d384200e4', 'Derecho', 'Licenciatura', 'Semestre', 10, '{}', '18f49b67-8077-4371-be6e-2019a3be3562', true, 'MANUAL', '{}', NULL, NULL, '2026-01-30 21:03:52.036+00', '2026-01-30 21:03:52.035+00', NULL);
--
@@ -1983,8 +2088,8 @@ INSERT INTO "public"."lineas_plan" ("id", "plan_estudio_id", "nombre", "orden",
-- Data for Name: asignaturas; Type: TABLE DATA; Schema: public; Owner: postgres
--
-INSERT INTO "public"."asignaturas" ("id", "plan_estudio_id", "estructura_id", "facultad_propietaria_id", "codigo", "nombre", "tipo", "creditos", "horas_semana", "numero_ciclo", "linea_plan_id", "orden_celda", "datos", "contenido_tematico", "tipo_origen", "meta_origen", "creado_por", "actualizado_por", "creado_en", "actualizado_en") VALUES
- ('9d4dda6a-488f-428a-8a07-38081592a641', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '7856e9cc-9ac1-4a31-b93a-0624d4c5e1de', '155b5fe7-9e09-420f-8d9d-ddd8219f193d', 'CIB-CS-401', 'OffSec (Seguridad Ofensiva)', 'OBLIGATORIA', 8, 6, 4, 'c261fbce-893a-4900-b03c-2f3ad3ce4987', 1, '{"nombre": "Inteligencia Artificial Aplicada y ├ëtica Profesional", "descripcion": "Esta asignatura ofrece una visi├│n integral sobre el funcionamiento de los sistemas de IA, su implementaci├│n en entornos productivos y el an├ílisis cr├¡tico de las implicaciones ├®ticas y sociales de su uso.", "perfil_de_egreso": "Al concluir la materia, el egresado habr├í desarrollado los siguientes atributos: \n\nCONOCIMIENTOS: Comprende los fundamentos de Machine Learning, procesamiento de lenguaje natural y los marcos legales actuales sobre privacidad de datos. \nHABILIDADES: Capacidad para integrar herramientas de IA generativa en flujos de trabajo profesionales y evaluar sesgos en modelos algor├¡tmicos. \nACTITUDES: Act├║a con responsabilidad social, promoviendo la transparencia y la equidad en el desarrollo tecnol├│gico.", "fines_de_aprendizaje_o_formacion": "Al finalizar el curso, el estudiante ser├í capaz de dise├▒ar e implementar soluciones b├ísicas basadas en inteligencia artificial que optimicen procesos organizacionales, asegurando en todo momento el cumplimiento de marcos normativos y principios ├®ticos internacionales para el manejo responsable de datos y algoritmos."}', '[{"temas": ["├ëtica y legalidad", "PTES/OSSTMM (visi├│n general)", "Alcance y reglas"], "titulo": "Fundamentos y metodolog├¡a", "unidad": 1}, {"temas": ["OSINT", "Descubrimiento de servicios", "Enumeraci├│n"], "titulo": "Reconocimiento y enumeraci├│n", "unidad": 2}, {"temas": ["Vulnerabilidades comunes", "Explotaci├│n controlada", "Post-explotaci├│n b├ísica"], "titulo": "Explotaci├│n en laboratorio", "unidad": 3}, {"temas": ["Evidencias", "Severidad", "Recomendaciones"], "titulo": "Reporte y remediaci├│n", "unidad": 4}]', 'MANUAL', '{"seed": true}', '11111111-1111-1111-1111-111111111111', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', '2026-01-13 20:41:33.238058+00');
+INSERT INTO "public"."asignaturas" ("id", "plan_estudio_id", "estructura_id", "codigo", "nombre", "tipo", "creditos", "horas_semana", "numero_ciclo", "linea_plan_id", "orden_celda", "datos", "contenido_tematico", "tipo_origen", "meta_origen", "creado_por", "actualizado_por", "creado_en", "actualizado_en") VALUES
+ ('9d4dda6a-488f-428a-8a07-38081592a641', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '7856e9cc-9ac1-4a31-b93a-0624d4c5e1de', 'CIB-CS-401', 'OffSec (Seguridad Ofensiva)', 'OBLIGATORIA', 10, 6, 5, 'c261fbce-893a-4900-b03c-2f3ad3ce4987', 1, '{"ciclo": "Hola 123", "contenido_tematico": "Enunciar, en idioma español, los temas y subtemas que se abordarán en la asignatura o unidad de aprendizaje; estructurados de manera lógica y secuencial y numerados en orden jerárquico. Éstos deberán ser acordes con la carga horaria asignada, sustentar la denominación de la asignatura y contribuir al logro de los fines de aprendizaje.", "clave_de_la_asignatura": "Anotar la clave que identifica a la asignatura o unidad de aprendizaje; la cual debe coincidir con la señalada en el mapa curricular.", "criterios_de_evaluacion": "Enlistar las actividades o productos que considerarán para valorar los aprendizajes logrados por los estudiantes, señalar el porcentaje para cada uno, de tal manera que sumen el 100%. Éstos deberán ser acordes con las actividades de aprendizaje.", "fines_de_aprendizaje_o_formacion": "Describir los aprendizajes y fines que alcanzará el estudiante al concluir la asignatura. Deberá sustentar la denominación de la asignatura, vincularse con los contenidos temáticos y coadyuvar al logro del fin de aprendizaje y perfil de egreso del plan de estudios.", "modalidades_tecnologicas_e_informaticas": "Describir los recursos tecnológicos y de comunicación que se emplearán para el desarrollo del proceso de enseñanza-aprendizaje de la asignatura. Para las modalidades no escolarizada y mixta, este elemento es obligatorio.", "actividades_de_aprendizaje_independientes": "Señalar las actividades de aprendizaje que desarrollará el estudiante de manera independiente. Éstas deberán ser acordes con la naturaleza de la asignatura y la modalidad educativa.", "denominacion_de_la_asignatura_o_unidad_de_aprendizaje": "Señalar el nombre de la asignatura o unidad de aprendizaje de igual manera que en el mapa curricular.", "actividades_de_aprendizaje_bajo_conduccion_de_un_academico": "Señalar las actividades de aprendizaje que desarrollará el estudiante en las horas-clase. Éstas deberán ser acordes con la naturaleza de la asignatura, modalidad educativa e instalaciones empleadas, además de contribuir al logro de los fines de aprendizaje."}', '[{"temas": ["Ética y legalidad", "PTES/OSSTMM (visión general)", "Alcance y reglas"], "titulo": "Fundamentos y metodología", "unidad": 1}, {"temas": ["OSINT", "Descubrimiento de servicios", "Enumeración"], "titulo": "Reconocimiento y enumeración", "unidad": 2}, {"temas": ["Vulnerabilidades comunes", "Explotación controlada", "Post-explotación básica"], "titulo": "Explotación en laboratorio", "unidad": 3}, {"temas": ["Evidencias", "Severidad", "Recomendaciones"], "titulo": "Reporte y remediación", "unidad": 4}]', 'MANUAL', '{"seed": true}', '11111111-1111-1111-1111-111111111111', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', '2026-01-30 21:38:02.89992+00');
--
@@ -2008,8 +2113,54 @@ INSERT INTO "public"."cambios_asignatura" ("id", "asignatura_id", "cambiado_por"
-- Data for Name: cambios_plan; Type: TABLE DATA; Schema: public; Owner: postgres
--
-INSERT INTO "public"."cambios_plan" ("id", "plan_estudio_id", "cambiado_por", "cambiado_en", "tipo", "campo", "valor_anterior", "valor_nuevo", "interaccion_ia_id") VALUES
- ('9750ab31-f898-4e2e-971d-07e21bea6d50', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', 'CREACION', 'datos', NULL, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica", "area_de_estudio": "Tecnolog├¡as de la Informaci├│n y la Comunicaci├│n (CMPE 2016)", "perfil_de_egreso": "Conocimientos: redes, sistemas, criptograf├¡a. Habilidades: pentesting, hardening, respuesta a incidentes. Actitudes: ├®tica, responsabilidad.", "diseno_curricular": "R├¡gido", "perfil_de_ingreso": "Pensamiento l├│gico, bases de ├ílgebra, nociones de programaci├│n y comunicaci├│n escrita.", "curso_propedeutico": null, "modalidad_educativa": "Escolar", "antecedente_academico": "Bachillerato concluido; afinidad con matem├íticas y computaci├│n.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2026-CIB-ING", "duracion_del_ciclo_escolar": "16", "fines_de_aprendizaje_o_formacion": "Formar profesionales capaces de dise├▒ar, implementar y asegurar sistemas ciberf├¡sicos y plataformas digitales.", "total_de_ciclos_del_plan_de_estudios": "8", "sustento_teorico_del_modelo_curricular": "Enfoque por competencias, aprendizaje basado en problemas y laboratorios.", "justificacion_de_la_propuesta_curricular": null, "administracion_y_operatividad_del_plan_de_estudios": "Plan r├¡gido con cargas sugeridas por semestre; asignaturas seriadas por ├íreas.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Revisi├│n anual por comit├® acad├®mico; actualizaci├│n por tendencias y retroalimentaci├│n de egresados."}', NULL);
+INSERT INTO "public"."cambios_plan" ("id", "plan_estudio_id", "cambiado_por", "cambiado_en", "tipo", "campo", "valor_anterior", "valor_nuevo", "response_id") VALUES
+ ('9750ab31-f898-4e2e-971d-07e21bea6d50', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-09 13:45:37.784586+00', 'CREACION', 'datos', NULL, '{"nivel": "Licenciatura", "nombre": "Ingenier├¡a Cibern├®tica", "area_de_estudio": "Tecnolog├¡as de la Informaci├│n y la Comunicaci├│n (CMPE 2016)", "perfil_de_egreso": "Conocimientos: redes, sistemas, criptograf├¡a. Habilidades: pentesting, hardening, respuesta a incidentes. Actitudes: ├®tica, responsabilidad.", "diseno_curricular": "R├¡gido", "perfil_de_ingreso": "Pensamiento l├│gico, bases de ├ílgebra, nociones de programaci├│n y comunicaci├│n escrita.", "curso_propedeutico": null, "modalidad_educativa": "Escolar", "antecedente_academico": "Bachillerato concluido; afinidad con matem├íticas y computaci├│n.", "carga_horaria_a_la_semana": 40, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "2026-CIB-ING", "duracion_del_ciclo_escolar": "16", "fines_de_aprendizaje_o_formacion": "Formar profesionales capaces de dise├▒ar, implementar y asegurar sistemas ciberf├¡sicos y plataformas digitales.", "total_de_ciclos_del_plan_de_estudios": "8", "sustento_teorico_del_modelo_curricular": "Enfoque por competencias, aprendizaje basado en problemas y laboratorios.", "justificacion_de_la_propuesta_curricular": null, "administracion_y_operatividad_del_plan_de_estudios": "Plan r├¡gido con cargas sugeridas por semestre; asignaturas seriadas por ├íreas.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Revisi├│n anual por comit├® acad├®mico; actualizaci├│n por tendencias y retroalimentaci├│n de egresados."}', NULL),
+ ('565ef79e-4a20-42cd-9aa9-41fa22fd476d', '4660b774-a6e2-44f4-a340-747b41235c7c', NULL, '2026-01-23 22:00:33.119999+00', 'ACTUALIZACION', 'nombre', '"Ingeniería en Sistemas Domóticos (2026)"', '"Ingeniería en Sistemas Domóticos (2027)"', NULL),
+ ('e37fb4cc-1280-4d71-8d97-23e8d5c3162c', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-23 22:37:05.875968+00', 'ACTUALIZACION', 'nivel', '"Licenciatura"', '"Maestría"', NULL),
+ ('4e1edec0-8723-403f-a856-6aa22505fc1f', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-23 22:39:07.266896+00', 'ACTUALIZACION', 'conversation_id', NULL, '"123"', NULL),
+ ('c9a74e54-653d-4e21-a961-98acd3efcd0c', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'perfil_de_ingreso', '"Ingreso esperado para la Licenciatura en F├¡sica M├®dica: antecedentes acad├®micos en bachillerato con fuerte formaci├│n en matem├íticas y f├¡sica (├ílgebra lineal, c├ílculo diferencial e integral, f├¡sica general); habilidades de razonamiento l├│gico y resoluci├│n de problemas; aptitudes para trabajo colaborativo y cumplimiento de normas de seguridad y ├®tica; inter├®s en aplicaciones biom├®dicas y manejo b├ísico de herramientas de laboratorio."', NULL, NULL),
+ ('82be7c12-5b7b-465e-9018-cea7f11f4213', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'programa_de_investigacion', 'null', NULL, NULL),
+ ('36a747b7-1105-4f8c-b9f5-0e59c73b1173', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'justificacion_de_la_propuesta_curricular', '"La necesidad de profesionales especializados en f├¡sica m├®dica que aporten diagn├│sticos precisos y tratamientos seguros justifica una formaci├│n que combine fundamentos te├│ricos s├│lidos con pr├ícticas cl├¡nicas y laboratoriales. La modalidad mixta facilita la integraci├│n de laboratorios, simulaciones y aprendizaje autogestionado, manteniendo flexibilidad espacial y temporal para estudiantes trabajadores. Se incorporan plataformas tecnol├│gicas, simuladores y experiencias cl├¡nicas supervisadas para asegurar la calidad educativa y la empleabilidad, aline├índose con las metas y lineamientos del Acuerdo 17/11/17 y el marco de la SEP."', NULL, NULL),
+ ('ea313ce3-898f-40d5-9e6c-288d7f711009', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'perfil_de_egreso', '"Al finalizar el plan, el egresado estar├í equipado para: 1) Conocer y comprender fundamentos te├│ricos y pr├ícticos de la f├¡sica m├®dica aplicados a diagn├│stico y tratamiento; 2) Desarrollar habilidades de evaluaci├│n y dise├▒o de protocolos cl├¡nicos en radiolog├¡a, medicina nuclear y radioterapia; 3) Aplicar t├®cnicas de dosimetr├¡a, calibraci├│n de equipos y control de calidad en contextos m├®dicos; 4) Interpretar resultados de im├ígenes y de pruebas de diagn├│stico por imagen con rigor cient├¡fico; 5) Actuar con ├®tica profesional, seguridad de pacientes y manejo responsable de informaci├│n cl├¡nica; 6) Trabajar de forma colaborativa en equipos interdisciplinarios para la mejora continua de procesos en medios de salud."', NULL, NULL),
+ ('76a0e4dc-d93d-409b-8ce5-97400efcc51d', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'nivel', '"Licenciatura"', NULL, NULL),
+ ('6542239b-1d70-447c-a15f-569a9d7178b2', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'propuesta_de_evaluacion_periodica_del_plan_de_estudios', '"La evaluaci├│n peri├│dica del Plan de Estudio se realizar├í de manera anual y cada tres a├▒os se revisar├í en conjunto con comit├®s de docentes, estudiantes y empleadores. Se emplear├ín r├║bricas de competencias, evaluaciones pr├ícticas, portafolios, indicadores de empleabilidad y calidad de servicios, con mecanismos de retroalimentaci├│n y acciones correctivas para actualizar contenidos, m├®todos pedag├│gicos y recursos tecnol├│gicos. Los resultados guiar├ín ajustes curriculares y la mejora institucional."', NULL, NULL),
+ ('e4f4992f-149b-44a3-860d-eccbaf7cbb65', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'carga_horaria_a_la_semana', '16', NULL, NULL),
+ ('56ae5448-0842-4b4f-97fe-5c29ca8fbd3f', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'area_de_estudio', '"Ciencias F├¡sicas ÔÇô F├¡sica M├®dica (CMPE 2016: F├¡sica)"', NULL, NULL),
+ ('90154137-ae23-4017-813f-d30c7b90443b', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'curso_propedeutico', '"Curso proped├®utico de 4 semanas dirigido a reforzar fundamentos de c├ílculo, f├¡sica general y conceptos b├ísicos de biomedicina. Este curso se ofrece a la poblaci├│n con deficientes antecedentes en ├íreas de ciencias; su implementaci├│n se vincula como preparaci├│n para los cursos introductorios de la poblaci├│n cl├¡nica y t├®cnica."', NULL, NULL),
+ ('9deff71b-4eaf-463e-be1b-9a8c6a127046', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'administracion_y_operatividad_del_plan_de_estudios', '"La administraci├│n del plan estar├í a cargo de la Direcci├│n Acad├®mica y un Comit├® de Planes y Programas. Existir├í un Responsable de Carrera, coordinadores de laboratorio y tutores. Se establecer├í un mapa curricular con asignaturas y unidades de aprendizaje, criterios de evaluaci├│n y un ciclo de revisi├│n anual para ajustes conforme a necesidades regionales y nacionales. Se dispondr├í de un Comit├® de Acreditaci├│n interna para garantizar la congruencia entre plan, laboratorio y cl├¡nica."', NULL, NULL),
+ ('0a6bd6f5-e376-42c2-a72f-e86d7f24701e', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'sustento_teorico_del_modelo_curricular', '"El sustento te├│rico del plan se apoya en modelos de dise├▒o curricular por competencias, aprendizaje basado en problemas y blended learning, con ├®nfasis en la seguridad, la ├®tica y la calidad en servicios de salud. Se integran marcos de referencia de educaci├│n superior y est├índares SEP para garantizar pertinencia y rigor cient├¡fico, as├¡ como la interoperabilidad con normativas de dispositivos m├®dicos y protecci├│n radiol├│gica."', NULL, NULL),
+ ('da561ec9-1156-46db-88cf-5d5a9e2f3fe7', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'duracion_del_ciclo_escolar', '"16 semanas por ciclo"', NULL, NULL),
+ ('f1d9cfc3-12bb-4a9d-8b78-affc1ff793b6', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'total_de_ciclos_del_plan_de_estudios', '"8"', NULL, NULL),
+ ('13779695-78e1-4f10-8ca2-16ee34b572c1', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'fines_de_aprendizaje_o_formacion', '":[\"Analizar fundamentos de f├¡sica m├®dica, radiaci├│n, dosimetr├¡a y protecci├│n radiol├│gica para su implementaci├│n cl├¡nica.\",\"Dise├▒ar protocolos de adquisici├│n de im├ígenes y dosimetr├¡a en entornos cl├¡nicos con criterios de calidad.\",\"Aplicar t├®cnicas de imagen m├®dica y radioterapia cumpliendo normativas de protecci├│n y seguridad.\",\"Evaluar equipos y procesos de calibraci├│n, mantenimiento y control de calidad en laboratorios y unidades cl├¡nicas.\",\"Comunicar resultados, hallazgos y recomendaciones t├®cnicas a equipos m├®dicos y pacientes con claridad y ├®tica.\",\"Integrar enfoques de investigaci├│n y mejora continua para optimizar resultados en radiolog├¡a y medicina f├¡sica.\"]"', NULL, NULL),
+ ('8b8fb619-54b7-4fa1-bf85-b604bee00472', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'nombre', '"F├¡sica M├®dica"', NULL, NULL),
+ ('58d5d433-3fdc-455b-ac8b-41dcb94ff52e', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'clave_del_plan_de_estudios', '"2026-FM-01"', NULL, NULL),
+ ('aebfca6d-f418-4bca-86cd-c15398fb6f6c', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'diseno_curricular', '"Flexible"', NULL, NULL),
+ ('8409cf58-4551-4282-8f50-e68466bc329e', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'antecedente_academico', '"Bachillerato en Ciencias con ├®nfasis en f├¡sica y matem├íticas; cursos de f├¡sica general, qu├¡mica, c├ílculo diferencial e integral; promedio m├¡nimo recomendado de ingreso 7.0; acreditar fundamentos de laboratorio y pr├ícticas b├ísicas cuando aplique."', NULL, NULL),
+ ('bcd7e8b2-87e8-4f73-a834-9a15cfea62b1', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-27 15:34:16.6225+00', 'ACTUALIZACION_CAMPO', 'modalidad_educativa', '"Mixta"', NULL, NULL),
+ ('5fd1577f-c430-4744-b541-dfa35b39bc6e', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:17:13.395925+00', 'ACTUALIZACION_CAMPO', 'ciclo', NULL, '{"description": "agregando campo nuevo con hook"}', NULL),
+ ('76e826fd-ac58-44f6-a28a-3cd5e2223ce0', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:19:10.511118+00', 'ACTUALIZACION_CAMPO', 'ciclo', '{"description": "agregando campo nuevo con hook"}', '{"description": "agregando nuevo campo a datos"}', NULL),
+ ('574ec330-0c3d-4b68-a078-369b6353e583', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:26:48.623104+00', 'ACTUALIZACION_CAMPO', 'ciclo', '{"description": "agregando nuevo campo a datos"}', '{"title": "Ciclo", "description": "agregando nuevo campo a datos"}', NULL),
+ ('e1fc6e45-a37f-45c1-9e37-12fc82d4960a', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:31:03.219219+00', 'ACTUALIZACION_CAMPO', 'ciclo', '{"title": "Ciclo", "description": "agregando nuevo campo a datos"}', '{"title": "Ciclo", "description": "hola"}', NULL),
+ ('bd739972-6d4e-44b6-a15a-9409adb87a14', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:40:29.585195+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', NULL, '{"description": "guardar desde hook"}', NULL),
+ ('507284a0-9789-4058-98f3-d9f0176ca793', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:55:58.683479+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '{"description": "guardar desde hook"}', '{"description": "hola a todos"}', NULL),
+ ('c4262294-c67d-4c0c-816a-4d06d0b118be', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-29 21:57:05.346704+00', 'ACTUALIZACION_CAMPO', 'modalidad_educativa', '"Escolar"', '"Escolar2"', NULL),
+ ('4f6e8013-1626-414d-85b0-066587f09366', 'ddf2203b-2f55-4a32-9ee6-a99a6ff5947e', NULL, '2026-01-29 21:58:12.447523+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', NULL, '"Agregando nuevos datos con persistencia"', NULL),
+ ('54c2e912-6845-4aa2-a052-9839c78f44a7', 'f6280a08-226d-480b-ab67-561e4657bfc4', NULL, '2026-01-30 14:33:51.01724+00', 'CREACION', NULL, NULL, '{"id": "f6280a08-226d-480b-ab67-561e4657bfc4", "datos": {}, "nivel": "Licenciatura", "activo": true, "nombre": "Ingeniería Económica y Financiera", "creado_en": "2026-01-30T14:33:50.818+00:00", "plan_hash": "ad41e1fcbf8ed0ba4c898086", "carrera_id": "b56eb209-245d-4258-a6a7-9dcb1d231cb4", "creado_por": null, "tipo_ciclo": "Semestre", "meta_origen": {}, "tipo_origen": "MANUAL", "estructura_id": "69fb2b77-5a95-47e0-bf1f-389d384200e4", "nombre_search": "ingenieria economica y financiera", "numero_ciclos": 9, "actualizado_en": "2026-01-30T14:33:50.818+00:00", "actualizado_por": null, "conversation_id": null, "estado_actual_id": "18f49b67-8077-4371-be6e-2019a3be3562"}', NULL),
+ ('a037db36-acbf-4243-a297-e819700a61c1', '79fba458-aea4-4ca8-ab76-943ede479f15', NULL, '2026-01-30 14:44:47.489255+00', 'CREACION', NULL, NULL, '{"id": "79fba458-aea4-4ca8-ab76-943ede479f15", "datos": {}, "nivel": "Licenciatura", "activo": true, "nombre": "prueba", "creado_en": "2026-01-30T14:44:48.312+00:00", "plan_hash": "a288feae19ba5ab74aca5fc0", "carrera_id": "b56eb209-245d-4258-a6a7-9dcb1d231cb4", "creado_por": null, "tipo_ciclo": "Semestre", "meta_origen": {}, "tipo_origen": "MANUAL", "estructura_id": "69fb2b77-5a95-47e0-bf1f-389d384200e4", "nombre_search": "prueba", "numero_ciclos": 9, "actualizado_en": "2026-01-30T14:44:48.312+00:00", "actualizado_por": null, "conversation_id": null, "estado_actual_id": "18f49b67-8077-4371-be6e-2019a3be3562"}', NULL),
+ ('15a2ee61-96fc-42e0-96f3-ab343dcb6538', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 16:59:49.3536+00', 'ACTUALIZACION_CAMPO', 'modalidad_educativa', '"Escolar2"', '"Escolar2222"', NULL),
+ ('7d4962c5-1ffa-4faf-928d-e96648ecba81', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:03:04.061333+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '{"description": "hola a todos"}', '{"description": "hola"}', NULL),
+ ('685bd46c-7302-411f-97dc-601e0d609641', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:09:00.477359+00', 'ACTUALIZACION_CAMPO', 'modalidad_educativa', '"Escolar2222"', '"Probando guardado"', NULL),
+ ('9030308b-fb15-409b-a969-1fc4d9b4b592', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:09:46.207083+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '{"description": "hola"}', '{"description": "lkdslk├▒dsksd├▒l"}', NULL),
+ ('18a1a5de-3395-4e9f-aaf3-d2fdb290f207', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:25:23.336995+00', 'ACTUALIZACION_CAMPO', 'ciclo', '{"title": "Ciclo", "description": "hola"}', NULL, NULL),
+ ('22fc0807-b98c-4664-a49c-f8224b3a6cc3', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:25:23.336995+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '{"description": "lkdslk├▒dsksd├▒l"}', NULL, NULL),
+ ('b98eb094-7ff5-41a5-98eb-ac85633a0045', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:25:23.336995+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_inst', NULL, '"holis"', NULL),
+ ('5c423e8d-f3e0-42e9-94a1-71dea398e151', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:26:22.769183+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', NULL, '"holis"', NULL),
+ ('3096ae88-1522-47d8-bc0e-61a255f37af0', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:26:22.769183+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_inst', '"holis"', NULL, NULL),
+ ('297687c4-64a3-42fe-8eac-70ae555061e2', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 17:47:00.432194+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '"holis"', '"Probando persistencia\n"', NULL),
+ ('761bc69b-0a28-4840-8ac8-ed6b77621454', '6756a45c-e6b7-477b-918d-821ad7efbc58', NULL, '2026-01-30 18:31:10.882192+00', 'CREACION', NULL, NULL, '{"id": "6756a45c-e6b7-477b-918d-821ad7efbc58", "datos": {"vigencia": "2026-2031", "area_de_estudio": "Ingenier├¡a y Tecnolog├¡a", "perfil_de_egreso": "Conocimientos: fundamentos de mec├ínica, electr├│nica, control, rob├│tica, sensores y actuadores; Habilidades: dise├▒o y simulaci├│n de sistemas mecatr├│nicos, integraci├│n de hardware y software, gesti├│n de proyectos y comunicaci├│n t├®cnica; Actitudes: ├®tica profesional, seguridad, trabajo en equipo, aprendizaje continuo y enfoque a la mejora continua.", "diseno_curricular": "Flexible", "perfil_de_ingreso": "Bachillerato en ciencias, tecnolog├¡a o equivalente, con base s├│lida en matem├íticas (├ílgebra, c├ílculo), f├¡sica general y qu├¡mica; habilidades b├ísicas de lectura t├®cnica, razonamiento l├│gico y manejo de herramientas inform├íticas (al menos conceptos de programaci├│n y modelado).", "curso_propedeutico": null, "modalidad_educativa": "Mixta", "antecedente_academico": "Bachillerato en Ciencias y/o Tecnolog├¡as con promedio m├¡nimo de 7.0; acceso preferente a carreras de ingenier├¡a y tecnolog├¡a; cumplimiento de requisitos de ingreso institucional.", "carga_horaria_a_la_semana": 28, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "IM-2026-LIC-MEC", "duracion_del_ciclo_escolar": "16 semanas", "fines_de_aprendizaje_o_formacion": "Analizar problemas de ingenier├¡a desde una visi├│n integral de mec├ínica, electr├│nica y control; Dise├▒ar sistemas mecatr├│nicos que integren hardware y software; Implementar modelos y simulaciones para validaci├│n de desempe├▒o; Evaluar alternativas de dise├▒o considerando seguridad, costo y sostenibilidad; Aplicar metodolog├¡as de gesti├│n de proyectos para desarrollo de prototipos; Integrar tecnolog├¡as de manufactura avanzada y rob├│tica en entornos industriales; Desarrollar habilidades de comunicaci├│n t├®cnica y trabajo en equipo en contextos multidisciplinarios.", "nivel_y_nombre_del_plan_de_estudios": "Licenciatura en Ingenier├¡a Mecatr├│nica", "nombre_autorizado_de_la_institucion": "Universidad La Salle M├®xico", "total_de_ciclos_del_plan_de_estudios": "9", "sustento_teorico_del_modelo_curricular": "El modelo curricular se fundamenta en un enfoque de ingenier├¡a multidisciplinaria que integra principios de mec├ínica, electr├│nica, control, rob├│tica y manufactura. Se sustenta en un continuum de aprendizaje basado en proyectos, ciencias de la ingenier├¡a y pr├ícticas de laboratorio, con ├®nfasis en competencias profesionales y capacidad de adaptaci├│n tecnol├│gica. Se alinea con el registro de planes de estudio vigente y con el marco de la CMPE 2016 para planes de estudio por campos de formaci├│n acad├®mica.", "justificacion_de_la_propuesta_curricular": "La modalidad Mixta exige flexibilidad para autogesti├│n y aprendizaje aut├│nomo, soportada por plataformas tecnol├│gicas y recursos digitales. La propuesta aprovecha Moodle u otras LMS, laboratorios virtuales y contenidos asincr├│nicos para complementar la ense├▒anza presencial, permitiendo continuidad educativa ante variaciones geogr├íficas o laborales de los estudiantes.", "administracion_y_operatividad_del_plan_de_estudios": "La administraci├│n del plan est├í a cargo de la Direcci├│n de Ingenier├¡a y la Coordinaci├│n de Planes de Estudio. Se asigna un Coordinador Acad├®mico por ciclo y se mantiene un registro central en el sistema de gesti├│n institucional. Se establecen reglas para la aprobaci├│n de cambios curriculares, distribuci├│n de asignaturas por ciclo y seguimiento de requisitos de egreso. Se definen criterios de admisi├│n, permanencia y titulaci├│n, con responsable de cumplimiento institucional.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Evaluaci├│n anual del plan mediante an├ílisis de resultados de aprendizaje, desempe├▒o de proyectos y pr├ícticas; Instrumentos: r├║bricas de cursos, gu├¡as de laboratorio, evaluaciones de conocimiento y competencias, y cuestionarios de satisfacci├│n. Periodicidad: revisi├│n anual con reporte a la instancia institucional y a SEP cuando corresponda; indicadores de calidad: tasa de retenci├│n, satisfacci├│n estudiantil, empleabilidad y ajuste curricular por ├íreas de conocimiento.", "nombre_y_cargo_de_la_persona_facultada_para_autorizar_el_plan_de_estudios": "Lic. Mar├¡a Gonz├ílez P├®rez, Directora Acad├®mica"}, "nivel": "Licenciatura", "activo": true, "nombre": "Ingenier├¡a Mecatr├│nica (2026)", "creado_en": "2026-01-30T18:31:10.882192+00:00", "plan_hash": "49aaec4fef4d574887fc6a60", "carrera_id": "089cdeda-d557-4a57-b49f-eb44921dfa3a", "creado_por": null, "tipo_ciclo": "Semestre", "meta_origen": {"iaConfig": {"usarMCP": false, "instruccionesAdicionalesIA": "", "descripcionEnfoqueAcademico": "Genera un plan de estudios sin rodeos."}, "referencias": {"repositoriosIds": [], "archivosReferenciaIds": []}, "generado_por": "ai_generate_plan", "ai_structured": {"model": "gpt-5-nano-2025-08-07", "usage": {"input_tokens": 3565, "total_tokens": 10864, "output_tokens": 7299, "input_tokens_details": {"cached_tokens": 0}, "output_tokens_details": {"reasoning_tokens": 6400}}, "responseId": "resp_07eb32291fa2232900697cf8a8e7f4819dbaab7110202db4bf", "conversationId": null}}, "tipo_origen": "IA", "estructura_id": "69fb2b77-5a95-47e0-bf1f-389d384200e4", "nombre_search": "ingenieria mecatronica (2026)", "numero_ciclos": 9, "actualizado_en": "2026-01-30T18:31:10.882192+00:00", "actualizado_por": null, "conversation_id": null, "estado_actual_id": "18f49b67-8077-4371-be6e-2019a3be3562"}', NULL),
+ ('41b1fb1c-7a8e-441a-b53c-d6f712bc97a5', '6756a45c-e6b7-477b-918d-821ad7efbc58', NULL, '2026-01-30 18:38:32.633716+00', 'OTRO', 'DELETE', '{"id": "6756a45c-e6b7-477b-918d-821ad7efbc58", "datos": {"vigencia": "2026-2031", "area_de_estudio": "Ingenier├¡a y Tecnolog├¡a", "perfil_de_egreso": "Conocimientos: fundamentos de mec├ínica, electr├│nica, control, rob├│tica, sensores y actuadores; Habilidades: dise├▒o y simulaci├│n de sistemas mecatr├│nicos, integraci├│n de hardware y software, gesti├│n de proyectos y comunicaci├│n t├®cnica; Actitudes: ├®tica profesional, seguridad, trabajo en equipo, aprendizaje continuo y enfoque a la mejora continua.", "diseno_curricular": "Flexible", "perfil_de_ingreso": "Bachillerato en ciencias, tecnolog├¡a o equivalente, con base s├│lida en matem├íticas (├ílgebra, c├ílculo), f├¡sica general y qu├¡mica; habilidades b├ísicas de lectura t├®cnica, razonamiento l├│gico y manejo de herramientas inform├íticas (al menos conceptos de programaci├│n y modelado).", "curso_propedeutico": null, "modalidad_educativa": "Mixta", "antecedente_academico": "Bachillerato en Ciencias y/o Tecnolog├¡as con promedio m├¡nimo de 7.0; acceso preferente a carreras de ingenier├¡a y tecnolog├¡a; cumplimiento de requisitos de ingreso institucional.", "carga_horaria_a_la_semana": 28, "programa_de_investigacion": null, "clave_del_plan_de_estudios": "IM-2026-LIC-MEC", "duracion_del_ciclo_escolar": "16 semanas", "fines_de_aprendizaje_o_formacion": "Analizar problemas de ingenier├¡a desde una visi├│n integral de mec├ínica, electr├│nica y control; Dise├▒ar sistemas mecatr├│nicos que integren hardware y software; Implementar modelos y simulaciones para validaci├│n de desempe├▒o; Evaluar alternativas de dise├▒o considerando seguridad, costo y sostenibilidad; Aplicar metodolog├¡as de gesti├│n de proyectos para desarrollo de prototipos; Integrar tecnolog├¡as de manufactura avanzada y rob├│tica en entornos industriales; Desarrollar habilidades de comunicaci├│n t├®cnica y trabajo en equipo en contextos multidisciplinarios.", "nivel_y_nombre_del_plan_de_estudios": "Licenciatura en Ingenier├¡a Mecatr├│nica", "nombre_autorizado_de_la_institucion": "Universidad La Salle M├®xico", "total_de_ciclos_del_plan_de_estudios": "9", "sustento_teorico_del_modelo_curricular": "El modelo curricular se fundamenta en un enfoque de ingenier├¡a multidisciplinaria que integra principios de mec├ínica, electr├│nica, control, rob├│tica y manufactura. Se sustenta en un continuum de aprendizaje basado en proyectos, ciencias de la ingenier├¡a y pr├ícticas de laboratorio, con ├®nfasis en competencias profesionales y capacidad de adaptaci├│n tecnol├│gica. Se alinea con el registro de planes de estudio vigente y con el marco de la CMPE 2016 para planes de estudio por campos de formaci├│n acad├®mica.", "justificacion_de_la_propuesta_curricular": "La modalidad Mixta exige flexibilidad para autogesti├│n y aprendizaje aut├│nomo, soportada por plataformas tecnol├│gicas y recursos digitales. La propuesta aprovecha Moodle u otras LMS, laboratorios virtuales y contenidos asincr├│nicos para complementar la ense├▒anza presencial, permitiendo continuidad educativa ante variaciones geogr├íficas o laborales de los estudiantes.", "administracion_y_operatividad_del_plan_de_estudios": "La administraci├│n del plan est├í a cargo de la Direcci├│n de Ingenier├¡a y la Coordinaci├│n de Planes de Estudio. Se asigna un Coordinador Acad├®mico por ciclo y se mantiene un registro central en el sistema de gesti├│n institucional. Se establecen reglas para la aprobaci├│n de cambios curriculares, distribuci├│n de asignaturas por ciclo y seguimiento de requisitos de egreso. Se definen criterios de admisi├│n, permanencia y titulaci├│n, con responsable de cumplimiento institucional.", "propuesta_de_evaluacion_periodica_del_plan_de_estudios": "Evaluaci├│n anual del plan mediante an├ílisis de resultados de aprendizaje, desempe├▒o de proyectos y pr├ícticas; Instrumentos: r├║bricas de cursos, gu├¡as de laboratorio, evaluaciones de conocimiento y competencias, y cuestionarios de satisfacci├│n. Periodicidad: revisi├│n anual con reporte a la instancia institucional y a SEP cuando corresponda; indicadores de calidad: tasa de retenci├│n, satisfacci├│n estudiantil, empleabilidad y ajuste curricular por ├íreas de conocimiento.", "nombre_y_cargo_de_la_persona_facultada_para_autorizar_el_plan_de_estudios": "Lic. Mar├¡a Gonz├ílez P├®rez, Directora Acad├®mica"}, "nivel": "Licenciatura", "activo": true, "nombre": "Ingenier├¡a Mecatr├│nica (2026)", "creado_en": "2026-01-30T18:31:10.882192+00:00", "plan_hash": "49aaec4fef4d574887fc6a60", "carrera_id": "089cdeda-d557-4a57-b49f-eb44921dfa3a", "creado_por": null, "tipo_ciclo": "Semestre", "meta_origen": {"iaConfig": {"usarMCP": false, "instruccionesAdicionalesIA": "", "descripcionEnfoqueAcademico": "Genera un plan de estudios sin rodeos."}, "referencias": {"repositoriosIds": [], "archivosReferenciaIds": []}, "generado_por": "ai_generate_plan", "ai_structured": {"model": "gpt-5-nano-2025-08-07", "usage": {"input_tokens": 3565, "total_tokens": 10864, "output_tokens": 7299, "input_tokens_details": {"cached_tokens": 0}, "output_tokens_details": {"reasoning_tokens": 6400}}, "responseId": "resp_07eb32291fa2232900697cf8a8e7f4819dbaab7110202db4bf", "conversationId": null}}, "tipo_origen": "IA", "estructura_id": "69fb2b77-5a95-47e0-bf1f-389d384200e4", "nombre_search": "ingenieria mecatronica (2026)", "numero_ciclos": 9, "actualizado_en": "2026-01-30T18:31:10.882192+00:00", "actualizado_por": null, "conversation_id": null, "estado_actual_id": "18f49b67-8077-4371-be6e-2019a3be3562"}', NULL, NULL),
+ ('39f3fc54-e2bf-4c8e-a886-82f186eda0bd', '0e0aea4d-b8b4-4e75-8279-6224c3ac769f', '11111111-1111-1111-1111-111111111111', '2026-01-30 20:18:43.823019+00', 'ACTUALIZACION_CAMPO', 'nombre_autorizado_de_la_institucion', '"Probando persistencia\n"', '"Agregando informacion persistente"', NULL),
+ ('84ff1732-b6ca-4fef-be82-ff7f0e0a4ce4', 'c5d80b6d-5d3d-4730-a4d5-8eaec3287910', NULL, '2026-01-30 21:03:51.728513+00', 'CREACION', NULL, NULL, '{"id": "c5d80b6d-5d3d-4730-a4d5-8eaec3287910", "datos": {}, "nivel": "Licenciatura", "activo": true, "nombre": "Derecho", "creado_en": "2026-01-30T21:03:52.036+00:00", "plan_hash": "697b32c2a0a186d1c66c9f6d", "carrera_id": "20593041-d605-4174-8404-4b152041eece", "creado_por": null, "tipo_ciclo": "Semestre", "meta_origen": {}, "tipo_origen": "MANUAL", "estructura_id": "69fb2b77-5a95-47e0-bf1f-389d384200e4", "nombre_search": "derecho", "numero_ciclos": 10, "actualizado_en": "2026-01-30T21:03:52.035+00:00", "actualizado_por": null, "conversation_id": null, "estado_actual_id": "18f49b67-8077-4371-be6e-2019a3be3562"}', NULL);
--
@@ -2107,7 +2258,11 @@ INSERT INTO "storage"."buckets" ("id", "name", "owner", "created_at", "updated_a
INSERT INTO "storage"."objects" ("id", "bucket_id", "name", "owner", "created_at", "updated_at", "last_accessed_at", "metadata", "version", "owner_id", "user_metadata", "level") VALUES
('c0813220-b62e-4503-be27-2f07cbc09914', 'plantillas', '.emptyFolderPlaceholder', NULL, '2026-01-08 20:03:05.299192+00', '2026-01-08 20:03:05.299192+00', '2026-01-08 20:03:05.299192+00', '{"eTag": "\"d41d8cd98f00b204e9800998ecf8427e\"", "size": 0, "mimetype": "application/octet-stream", "cacheControl": "max-age=3600", "lastModified": "2026-01-08T20:03:05.301Z", "contentLength": 0, "httpStatusCode": 200}', '29cb57d7-e0e2-4ee7-9637-a175084b694a', NULL, '{}', 1),
('923eeeab-dbdb-4de2-82af-2ee31fe5a985', 'ai-storage', 'tmp/95d1f381-7023-4f33-bc54-08ccd08abf41/701a1fdc-9dd6-4654-8c67-0aadcb8eadc2-carta.pdf', NULL, '2026-01-14 21:36:54.932547+00', '2026-01-14 21:36:54.932547+00', '2026-01-14 21:36:54.932547+00', '{"eTag": "\"f99de4473b8a614c53508a981284b605\"", "size": 38600, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-14T21:36:55.000Z", "contentLength": 38600, "httpStatusCode": 200}', '5bd1f251-6615-4520-a772-db3f993376a4', NULL, '{}', 3),
- ('145dd597-a7d1-4c6c-b446-0aa6b1c2e9d3', 'ai-storage', 'tmp/95d1f381-7023-4f33-bc54-08ccd08abf41/61d07fea-43fc-40d8-a43b-7852ea57d612-carta.pdf', NULL, '2026-01-15 20:15:47.957006+00', '2026-01-15 20:15:47.957006+00', '2026-01-15 20:15:47.957006+00', '{"eTag": "\"f99de4473b8a614c53508a981284b605\"", "size": 38600, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-15T20:15:48.000Z", "contentLength": 38600, "httpStatusCode": 200}', '4809478e-7c7f-4dd3-9f1c-a007ca7b5f90', NULL, '{}', 3);
+ ('145dd597-a7d1-4c6c-b446-0aa6b1c2e9d3', 'ai-storage', 'tmp/95d1f381-7023-4f33-bc54-08ccd08abf41/61d07fea-43fc-40d8-a43b-7852ea57d612-carta.pdf', NULL, '2026-01-15 20:15:47.957006+00', '2026-01-15 20:15:47.957006+00', '2026-01-15 20:15:47.957006+00', '{"eTag": "\"f99de4473b8a614c53508a981284b605\"", "size": 38600, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-15T20:15:48.000Z", "contentLength": 38600, "httpStatusCode": 200}', '4809478e-7c7f-4dd3-9f1c-a007ca7b5f90', NULL, '{}', 3),
+ ('192a4460-8334-4523-b232-f0e6c533d552', 'ai-storage', 'd932ce8a-b58f-4367-899c-22ca0f6974e0-Guia_para_el_sustentante_EGEL_Plus_IMECATRO_octubre_de_2025.pdf', NULL, '2026-01-22 21:43:02.023451+00', '2026-01-22 21:43:02.023451+00', '2026-01-22 21:43:02.023451+00', '{"eTag": "\"4d18550ebc9cd37c35c5bb92d8f29208\"", "size": 2426430, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-22T21:43:02.000Z", "contentLength": 2426430, "httpStatusCode": 200}', '31bfa884-2b06-437b-87e5-80c0cd90b804', NULL, '{}', 1),
+ ('4949d3bb-5063-473e-85d6-aa5fbee74026', 'ai-storage', 'cf64d8d5-ba79-4300-b346-5b566c894c79-Acuerdo_171117.pdf', NULL, '2026-01-22 21:43:02.525822+00', '2026-01-22 21:43:02.525822+00', '2026-01-22 21:43:02.525822+00', '{"eTag": "\"7efd81f7f78678b134ff2bcc4f44bce0\"", "size": 3852210, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-22T21:43:03.000Z", "contentLength": 3852210, "httpStatusCode": 200}', 'a714a24a-8cd5-4e04-9920-2598629b6d9f', NULL, '{}', 1),
+ ('22f2e7ce-cdf8-4325-8c51-91f494cdf01f', 'ai-storage', 'd36b3616-d686-4125-8719-d2160d2b37d0-file-sample_150kB.pdf', NULL, '2026-01-23 17:48:53.729633+00', '2026-01-23 17:48:53.729633+00', '2026-01-23 17:48:53.729633+00', '{"eTag": "\"5afaf79789a776d81ec91ccbdc9fdaba\"", "size": 142786, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-23T17:48:54.000Z", "contentLength": 142786, "httpStatusCode": 200}', '4badfeaa-422a-4905-9547-b46b700e8aa8', NULL, '{}', 1),
+ ('7cd652b2-8e19-4925-959e-785fb0ce29a3', 'ai-storage', 'a9cbe04d-b5ab-4917-846d-4f1e8745c95c-Plan_Genera_un_plan_de_estudios_claro_y_realista__De_fisica_cuantica_relacionada_con_blucles_Institucional.pdf', NULL, '2026-01-23 17:48:53.865584+00', '2026-01-23 17:48:53.865584+00', '2026-01-23 17:48:53.865584+00', '{"eTag": "\"2f33192d3446c4924424de3276b46c1f\"", "size": 40523, "mimetype": "application/pdf", "cacheControl": "max-age=3600", "lastModified": "2026-01-23T17:48:54.000Z", "contentLength": 40523, "httpStatusCode": 200}', '37e5691d-16c4-4392-b316-8aeecfda77e2', NULL, '{}', 1);
--
diff --git a/supabase/diffs/sql_para_remoto_como_local.sql b/supabase/diffs/sql_para_remoto_como_local.sql
deleted file mode 100644
index f17c71e..0000000
--- a/supabase/diffs/sql_para_remoto_como_local.sql
+++ /dev/null
@@ -1,56 +0,0 @@
-set check_function_bodies = off;
-
-CREATE OR REPLACE FUNCTION public.set_actualizado_en()
- RETURNS trigger
- LANGUAGE plpgsql
-AS $function$
-begin
- new.actualizado_en = now();
- return new;
-end;
-$function$
-;
-
-CREATE OR REPLACE FUNCTION public.unaccent_immutable(text)
- RETURNS text
- LANGUAGE sql
- IMMUTABLE PARALLEL SAFE STRICT
-AS $function$
- SELECT public.unaccent('public.unaccent', $1);
-$function$
-;
-
-CREATE OR REPLACE FUNCTION public.validar_numero_ciclo_asignatura()
- RETURNS trigger
- LANGUAGE plpgsql
-AS $function$
-declare
- v_numero_ciclos int;
-begin
- if new.numero_ciclo is null then
- return new;
- end if;
-
- select pe.numero_ciclos into v_numero_ciclos
- from planes_estudio pe
- where pe.id = new.plan_estudio_id;
-
- if v_numero_ciclos is null then
- raise exception 'plan_estudio_id inválido %, plan no encontrado', new.plan_estudio_id;
- end if;
-
- if new.numero_ciclo < 1 then
- raise exception 'numero_ciclo debe ser >= 1 (recibido %)', new.numero_ciclo;
- end if;
-
- if new.numero_ciclo > v_numero_ciclos then
- raise exception 'numero_ciclo % excede planes_estudio.numero_ciclos % para plan_estudio_id %',
- new.numero_ciclo, v_numero_ciclos, new.plan_estudio_id;
- end if;
-
- return new;
-end;
-$function$
-;
-
-
diff --git a/supabase/scheme_backup.sql b/supabase/scheme_backup.sql
index a056869..4006508 100644
--- a/supabase/scheme_backup.sql
+++ b/supabase/scheme_backup.sql
@@ -30,6 +30,13 @@ COMMENT ON SCHEMA "public" IS 'standard public schema';
+CREATE EXTENSION IF NOT EXISTS "http" WITH SCHEMA "extensions";
+
+
+
+
+
+
CREATE EXTENSION IF NOT EXISTS "pg_graphql" WITH SCHEMA "graphql";
@@ -159,7 +166,8 @@ CREATE TYPE "public"."tipo_cambio" AS ENUM (
'ACTUALIZACION_MAPA',
'TRANSICION_ESTADO',
'OTRO',
- 'CREACION'
+ 'CREACION',
+ 'ACTUALIZACION'
);
@@ -230,6 +238,172 @@ CREATE TYPE "public"."tipo_origen" AS ENUM (
ALTER TYPE "public"."tipo_origen" OWNER TO "postgres";
+CREATE OR REPLACE FUNCTION "public"."fn_log_cambios_planes_estudio"() RETURNS "trigger"
+ LANGUAGE "plpgsql"
+ AS $$declare
+ k text;
+ old_val jsonb;
+ new_val jsonb;
+
+ v_response_id text;
+begin
+ v_response_id := nullif(new.meta_origen->>'response_id','');
+
+ -- INSERT -> CREACION
+ if tg_op = 'INSERT' then
+ insert into public.cambios_plan (
+ plan_estudio_id,
+ cambiado_por,
+ tipo,
+ campo,
+ valor_anterior,
+ valor_nuevo,
+ response_id
+ )
+ values (
+ new.id,
+ new.creado_por,
+ 'CREACION'::public.tipo_cambio,
+ null,
+ null,
+ to_jsonb(new),
+ null
+ );
+
+ return new;
+ end if;
+
+ -- DELETE (opcional): si no lo quieres, b├│rralo
+ if tg_op = 'DELETE' then
+ insert into public.cambios_plan (
+ plan_estudio_id,
+ cambiado_por,
+ tipo,
+ campo,
+ valor_anterior,
+ valor_nuevo,
+ response_id
+ )
+ values (
+ old.id,
+ old.actualizado_por,
+ 'OTRO'::public.tipo_cambio,
+ 'DELETE',
+ to_jsonb(old),
+ null,
+ null
+ );
+
+ return old;
+ end if;
+
+ -- UPDATE ----------------------------------------------------------
+ -- 1) Transici├│n de estado
+ if (new.estado_actual_id is distinct from old.estado_actual_id) then
+ insert into public.cambios_plan (
+ plan_estudio_id, cambiado_por, tipo, campo, valor_anterior, valor_nuevo, response_id
+ )
+ values (
+ new.id,
+ new.actualizado_por,
+ 'TRANSICION_ESTADO'::public.tipo_cambio,
+ 'estado_actual_id',
+ to_jsonb(old.estado_actual_id),
+ to_jsonb(new.estado_actual_id),
+ null
+ );
+ end if;
+
+ -- 2) Cambios en JSONB "datos" (diff top-level por llave)
+ if (new.datos is distinct from old.datos) then
+ for k in
+ select distinct key
+ from (
+ select jsonb_object_keys(coalesce(old.datos, '{}'::jsonb)) as key
+ union all
+ select jsonb_object_keys(coalesce(new.datos, '{}'::jsonb)) as key
+ ) t
+ loop
+ old_val := coalesce(old.datos, '{}'::jsonb) -> k;
+ new_val := coalesce(new.datos, '{}'::jsonb) -> k;
+
+ if (old_val is distinct from new_val) then
+ insert into public.cambios_plan (
+ plan_estudio_id, cambiado_por, tipo, campo, valor_anterior, valor_nuevo, response_id
+ )
+ values (
+ new.id,
+ new.actualizado_por,
+ 'ACTUALIZACION_CAMPO'::public.tipo_cambio,
+ k,
+ old_val,
+ new_val,
+ v_response_id
+ );
+ end if;
+ end loop;
+
+ end if;
+
+ -- 3) Cambios en columnas "normales" (uno por columna)
+ if (new.nombre is distinct from old.nombre) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'nombre', to_jsonb(old.nombre), to_jsonb(new.nombre), null);
+ end if;
+
+ if (new.nivel is distinct from old.nivel) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'nivel', to_jsonb(old.nivel), to_jsonb(new.nivel), null);
+ end if;
+
+ if (new.tipo_ciclo is distinct from old.tipo_ciclo) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'tipo_ciclo', to_jsonb(old.tipo_ciclo), to_jsonb(new.tipo_ciclo), null);
+ end if;
+
+ if (new.numero_ciclos is distinct from old.numero_ciclos) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'numero_ciclos', to_jsonb(old.numero_ciclos), to_jsonb(new.numero_ciclos), null);
+ end if;
+
+ if (new.activo is distinct from old.activo) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'activo', to_jsonb(old.activo), to_jsonb(new.activo), null);
+ end if;
+
+ if (new.carrera_id is distinct from old.carrera_id) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'carrera_id', to_jsonb(old.carrera_id), to_jsonb(new.carrera_id), null);
+ end if;
+
+ if (new.estructura_id is distinct from old.estructura_id) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'estructura_id', to_jsonb(old.estructura_id), to_jsonb(new.estructura_id), null);
+ end if;
+
+ if (new.tipo_origen is distinct from old.tipo_origen) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'tipo_origen', to_jsonb(old.tipo_origen), to_jsonb(new.tipo_origen), null);
+ end if;
+
+
+ if (new.conversation_id is distinct from old.conversation_id) then
+ insert into public.cambios_plan values (gen_random_uuid(), new.id, new.actualizado_por, now(),
+ 'ACTUALIZACION'::public.tipo_cambio, 'conversation_id', to_jsonb(old.conversation_id), to_jsonb(new.conversation_id), null);
+ end if;
+
+ -- ƒöÑ consumirlo para que NO se guarde en planes_estudio
+ if v_response_id is not null then
+ new.meta_origen := new.meta_origen - 'response_id';
+ end if;
+
+ return new;
+end;$$;
+
+
+ALTER FUNCTION "public"."fn_log_cambios_planes_estudio"() OWNER TO "postgres";
+
+
CREATE OR REPLACE FUNCTION "public"."set_actualizado_en"() RETURNS "trigger"
LANGUAGE "plpgsql"
AS $$
@@ -246,7 +420,7 @@ ALTER FUNCTION "public"."set_actualizado_en"() OWNER TO "postgres";
CREATE OR REPLACE FUNCTION "public"."unaccent_immutable"("text") RETURNS "text"
LANGUAGE "sql" IMMUTABLE STRICT PARALLEL SAFE
AS $_$
- SELECT unaccent('unaccent', $1);
+ SELECT public.unaccent('public.unaccent', $1);
$_$;
@@ -313,7 +487,6 @@ CREATE TABLE IF NOT EXISTS "public"."asignaturas" (
"id" "uuid" DEFAULT "gen_random_uuid"() NOT NULL,
"plan_estudio_id" "uuid" NOT NULL,
"estructura_id" "uuid",
- "facultad_propietaria_id" "uuid",
"codigo" "text",
"nombre" "text" NOT NULL,
"tipo" "public"."tipo_asignatura" DEFAULT 'OBLIGATORIA'::"public"."tipo_asignatura" NOT NULL,
@@ -330,6 +503,7 @@ CREATE TABLE IF NOT EXISTS "public"."asignaturas" (
"actualizado_por" "uuid",
"creado_en" timestamp with time zone DEFAULT "now"() NOT NULL,
"actualizado_en" timestamp with time zone DEFAULT "now"() NOT NULL,
+ "asignatura_hash" "text" GENERATED ALWAYS AS ("encode"(SUBSTRING("extensions"."digest"(("id")::"text", 'sha512'::"text") FROM 1 FOR 12), 'hex'::"text")) STORED,
CONSTRAINT "asignaturas_ciclo_chk" CHECK ((("numero_ciclo" IS NULL) OR ("numero_ciclo" > 0))),
CONSTRAINT "asignaturas_creditos_check" CHECK (("creditos" >= (0)::numeric)),
CONSTRAINT "asignaturas_horas_semana_check" CHECK ((("horas_semana" IS NULL) OR ("horas_semana" >= 0))),
@@ -382,13 +556,17 @@ CREATE TABLE IF NOT EXISTS "public"."cambios_plan" (
"campo" "text",
"valor_anterior" "jsonb",
"valor_nuevo" "jsonb",
- "interaccion_ia_id" "uuid"
+ "response_id" "text"
);
ALTER TABLE "public"."cambios_plan" OWNER TO "postgres";
+COMMENT ON COLUMN "public"."cambios_plan"."response_id" IS 'El ID de respuesta de OpenAI';
+
+
+
CREATE TABLE IF NOT EXISTS "public"."carreras" (
"id" "uuid" DEFAULT "gen_random_uuid"() NOT NULL,
"facultad_id" "uuid" NOT NULL,
@@ -525,6 +703,8 @@ CREATE TABLE IF NOT EXISTS "public"."planes_estudio" (
"creado_en" timestamp with time zone DEFAULT "now"() NOT NULL,
"actualizado_en" timestamp with time zone DEFAULT "now"() NOT NULL,
"nombre_search" "text" GENERATED ALWAYS AS ("lower"("public"."unaccent_immutable"("nombre"))) STORED,
+ "plan_hash" "text" GENERATED ALWAYS AS ("encode"(SUBSTRING("extensions"."digest"(("id")::"text", 'sha512'::"text") FROM 1 FOR 12), 'hex'::"text")) STORED,
+ "conversation_id" "text",
CONSTRAINT "planes_estudio_numero_ciclos_check" CHECK (("numero_ciclos" > 0))
);
@@ -532,6 +712,10 @@ CREATE TABLE IF NOT EXISTS "public"."planes_estudio" (
ALTER TABLE "public"."planes_estudio" OWNER TO "postgres";
+COMMENT ON COLUMN "public"."planes_estudio"."conversation_id" IS 'ID de conversaci├│n de OpenAI';
+
+
+
CREATE OR REPLACE VIEW "public"."plantilla_plan" AS
SELECT "plan"."id" AS "plan_estudio_id",
"struct"."id" AS "estructura_id",
@@ -714,6 +898,11 @@ ALTER TABLE ONLY "public"."notificaciones"
+ALTER TABLE ONLY "public"."planes_estudio"
+ ADD CONSTRAINT "planes_estudio_conversation_id_key" UNIQUE ("conversation_id");
+
+
+
ALTER TABLE ONLY "public"."planes_estudio"
ADD CONSTRAINT "planes_estudio_pkey" PRIMARY KEY ("id");
@@ -826,6 +1015,10 @@ CREATE OR REPLACE TRIGGER "trg_planes_estudio_actualizado_en" BEFORE UPDATE ON "
+CREATE OR REPLACE TRIGGER "trg_planes_estudio_log_cambios" AFTER INSERT OR DELETE OR UPDATE ON "public"."planes_estudio" FOR EACH ROW EXECUTE FUNCTION "public"."fn_log_cambios_planes_estudio"();
+
+
+
CREATE OR REPLACE TRIGGER "trg_usuarios_app_actualizado_en" BEFORE UPDATE ON "public"."usuarios_app" FOR EACH ROW EXECUTE FUNCTION "public"."set_actualizado_en"();
@@ -854,11 +1047,6 @@ ALTER TABLE ONLY "public"."asignaturas"
-ALTER TABLE ONLY "public"."asignaturas"
- ADD CONSTRAINT "asignaturas_facultad_propietaria_id_fkey" FOREIGN KEY ("facultad_propietaria_id") REFERENCES "public"."facultades"("id") ON DELETE SET NULL;
-
-
-
ALTER TABLE ONLY "public"."asignaturas"
ADD CONSTRAINT "asignaturas_linea_plan_fk_compuesta" FOREIGN KEY ("linea_plan_id", "plan_estudio_id") REFERENCES "public"."lineas_plan"("id", "plan_estudio_id") ON DELETE SET NULL;
@@ -894,11 +1082,6 @@ ALTER TABLE ONLY "public"."cambios_plan"
-ALTER TABLE ONLY "public"."cambios_plan"
- ADD CONSTRAINT "cambios_plan_plan_estudio_id_fkey" FOREIGN KEY ("plan_estudio_id") REFERENCES "public"."planes_estudio"("id") ON DELETE CASCADE;
-
-
-
ALTER TABLE ONLY "public"."carreras"
ADD CONSTRAINT "carreras_facultad_id_fkey" FOREIGN KEY ("facultad_id") REFERENCES "public"."facultades"("id") ON DELETE RESTRICT;
@@ -1220,6 +1403,69 @@ GRANT USAGE ON SCHEMA "public" TO "service_role";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+GRANT ALL ON FUNCTION "public"."fn_log_cambios_planes_estudio"() TO "anon";
+GRANT ALL ON FUNCTION "public"."fn_log_cambios_planes_estudio"() TO "authenticated";
+GRANT ALL ON FUNCTION "public"."fn_log_cambios_planes_estudio"() TO "service_role";
+
+
+
GRANT ALL ON FUNCTION "public"."set_actualizado_en"() TO "anon";
GRANT ALL ON FUNCTION "public"."set_actualizado_en"() TO "authenticated";
GRANT ALL ON FUNCTION "public"."set_actualizado_en"() TO "service_role";