Spaces:
Running
Running
File size: 8,885 Bytes
99a46ce | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | -- 0002_compliance.sql: migracion SQL de lo que APCompliance.migrate creaba en JS.
-- Idempotente (CREATE TABLE IF NOT EXISTS / INSERT OR IGNORE): se puede aplicar sobre cualquier base.
-- Generado de index.html: DDL de migrate(), datos de APCompliance.agents/levels/colombia y de los literales de migrate().
CREATE TABLE IF NOT EXISTS compliance_norms (id TEXT PRIMARY KEY, level INTEGER NOT NULL, name TEXT NOT NULL, source_url TEXT, scope TEXT, rule_key TEXT, rule_value TEXT, demo INTEGER NOT NULL DEFAULT 1);
CREATE TABLE IF NOT EXISTS compliance_checks (proposal_id TEXT PRIMARY KEY REFERENCES purchase_proposals(id), status TEXT NOT NULL CHECK(status IN ('pass','review','block')), norm_id TEXT, reason TEXT NOT NULL, checked_at TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS legal_subagents (id TEXT PRIMARY KEY,name TEXT NOT NULL,subject TEXT NOT NULL,routing TEXT NOT NULL,hierarchy TEXT NOT NULL,configuration_note TEXT NOT NULL,status TEXT NOT NULL CHECK(status IN ('unconfigured','demo')));
CREATE TABLE IF NOT EXISTS legal_jurisdictions (country TEXT PRIMARY KEY,name TEXT NOT NULL,tax_label TEXT NOT NULL,status TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS labor_cost_entries (id TEXT PRIMARY KEY,country TEXT NOT NULL,period TEXT NOT NULL,structure TEXT NOT NULL CHECK(structure IN ('Fabricación','Comercialización','Servicios')),area TEXT NOT NULL CHECK(area IN ('Operativa','Soporte')),amount_cents INTEGER NOT NULL CHECK(amount_cents>=0),currency TEXT NOT NULL,created_at TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS recruitment_pipeline (id TEXT PRIMARY KEY,kind TEXT NOT NULL CHECK(kind IN ('Colaboradores internos','Aliados','Productos','Clientes','Mercados')),title TEXT NOT NULL,stage TEXT NOT NULL CHECK(stage IN ('Detectado','Exploración','Evaluación','Incorporación')),note TEXT NOT NULL DEFAULT '',signal TEXT NOT NULL DEFAULT '',demo INTEGER NOT NULL DEFAULT 0,created_at TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS candidate_screenings (id TEXT PRIMARY KEY,alias TEXT NOT NULL,role TEXT NOT NULL,evidence TEXT NOT NULL,score INTEGER NOT NULL,explanation TEXT NOT NULL,status TEXT NOT NULL CHECK(status IN ('review','approved','needs_evidence')),demo INTEGER NOT NULL DEFAULT 0,created_at TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS payroll_rules (id TEXT PRIMARY KEY,norm_id TEXT NOT NULL,concept TEXT NOT NULL,formula_note TEXT NOT NULL,value_text TEXT,verified_on TEXT,status TEXT NOT NULL);
INSERT OR IGNORE INTO legal_subagents VALUES ('mercantil','Mercantil','Compras, proveedores, operaciones comerciales y sociedades','Propuestas de compra y contratos comerciales','Constitución → legislación mercantil → reglamentos aplicables → actos y decisiones → política interna','Sin fuentes ni reglas de jurisdicción cargadas','unconfigured'),
('laboral','Laboral','Vínculos de trabajo, jornada, remuneración y seguridad social','Alta y cambios de personal, nómina, jornada','Constitución → leyes y código laboral → reglamentos → jurisprudencia aplicable → política interna','Caso Colombia disponible solo como demo de fuentes; Venezuela sin fuentes laborales cargadas','demo'),
('civil','Civil · contratación','Formación, ejecución, garantías y terminación de contratos civiles','Borradores de contrato, renovaciones y cláusulas','Constitución → legislación civil → reglamentos aplicables → jurisprudencia → cláusulas y política interna','Sin análisis de cláusulas implementado','unconfigured'),
('tributario-nacional','Tributario · nacional','IVA, ISLR, aportes parafiscales patronales y tributos sectoriales, según país','Operaciones gravadas, facturación, nómina patronal y declaraciones','Constitución → leyes tributarias → reglamentos → actos administrativos y jurisprudencia → control interno','País y régimen por definir; no se calcula ni declara','unconfigured'),
('tributario-regional','Tributario · regional','Tributos de región, estado o departamento según territorio aplicable','Operaciones, establecimientos e inmuebles con nexo regional','Constitución → ley nacional habilitante → norma regional → decisiones aplicables → control interno','Región y competencia por definir','unconfigured'),
('tributario-local','Tributario · local','Tributos municipales o distritales según domicilio y actividad','Establecimientos, actividades, inmuebles y permisos locales','Constitución → ley habilitante → ordenanza o acuerdo local → decisiones aplicables → control interno','Municipio y competencia por definir','unconfigured'),
('administrativo','Administrativo','Interacciones con entidades públicas y posibles faltas en la actuación de funcionarios, con revisión de hechos y competencia','Quejas o reclamos, peticiones, recursos frente a actos administrativos y eventual responsabilidad estatal','Constitución → procedimiento administrativo y leyes aplicables → reglamentos → acto y expediente → precedentes pertinentes','País, entidad, hechos, plazos y vía competente por verificar; no presenta escritos ni acusa a personas','unconfigured');
INSERT OR IGNORE INTO legal_jurisdictions VALUES ('CO','Colombia','Renta','Fuentes laborales demo; impuestos sin parametrizar'),
('VE','Venezuela','ISLR','Por configurar: sin normas tributarias cargadas');
INSERT OR IGNORE INTO candidate_screenings VALUES ('DEMO-PERFIL-A','Perfil A','Operaciones','Coordinó un equipo en un proyecto y explicó una mejora entregada.','60','Colaboración y aprendizaje con ejemplo de proyecto; verificar responsabilidades mediante entrevista.','review','1','2026-09-26T00:00:00.000Z'),
('DEMO-PERFIL-B','Perfil B','Relaciones','Profesional proactivo y excelente, sin ejemplos concretos.','0','No hay ejemplos laborales verificables; pedir evidencia y revisar en persona.','needs_evidence','1','2026-09-26T00:00:00.000Z');
INSERT OR IGNORE INTO payroll_rules VALUES ('minimum','CO-DECRETO-159-2026','Salario mínimo 2026','Valor indicativo publicado; estado judicial posterior por validar','1.750.905 COP','2026-09-26','requires_review'),
('transport','CO-DECRETO-1470-2025','Auxilio transporte 2026','249.095 COP; hasta dos salarios mínimos con condiciones de desplazamiento','249.095 COP','2026-09-26','requires_review'),
('overtime','CO-CST','Horas extra y recargos','Dependen de jornada, fecha, tipo de recargo y reforma 2025',NULL,'2026-09-26','unconfigured'),
('benefits','CO-CST','Prestaciones y vacaciones','Cesantías, intereses, prima y vacaciones: base y periodo requieren revisión',NULL,'2026-09-26','unconfigured'),
('social','CO-CST','Seguridad social','Aportes, base IBC, topes y condiciones requieren fuentes actualizadas',NULL,'2026-09-26','unconfigured');
INSERT OR IGNORE INTO compliance_norms(id,level,name,source_url,scope,demo) VALUES ('CO-CONST-25-53',1,'Constitución Política, arts. 25 y 53','https://www.suin-juriscol.gov.co/viewDocument.asp?ruta=Constitucion%2F1687988','Trabajo digno y remuneración mínima vital y móvil',0),
('CO-CST',2,'Código Sustantivo del Trabajo','https://www.funcionpublica.gov.co/eva/gestornormativo/norma.php?i=199983','Salario, jornada, descansos y prestaciones; revisar artículos y reformas',0),
('CO-LEY-2466-2025',2,'Ley 2466 de 2025','https://www.funcionpublica.gov.co/eva/gestornormativo/norma.php?i=260676','Reforma laboral; vigencia escalonada por disposición',0),
('CO-DECRETO-159-2026',3,'Decreto 159 de 2026','https://www.cancilleria.gov.co/normograma/compilacion/docs/decreto_0159_2026.htm','Salario mínimo transitorio 2026; estado judicial requiere revisión',0),
('CO-DECRETO-1470-2025',3,'Decreto 1470 de 2025','https://cancilleria.gov.co/normograma/compilacion/docs/decreto_1470_2025.htm','Auxilio de transporte 2026 y condiciones',0),
('CO-CE-AUTO-2026',4,'Consejo de Estado: auto cautelar 2026','https://www.alcaldiabogota.gov.co/sisjur/normas/Norma1.jsp?dt=S&i=192123','Suspensión provisional de Decreto 1469 y orden de acto sustituto; revisar providencias posteriores',0),
('CO-CC-C815-1999',4,'Corte Constitucional, C-815/99','https://www.corteconstitucional.gov.co/relatoria/1999/C-815-99.htm','Criterios constitucionales para fijar salario mínimo',0);
INSERT OR IGNORE INTO compliance_norms(id,level,name,scope,rule_key,rule_value,demo) VALUES ('DEMO-constitucion',1,'Constitución','Norma superior (ejemplo de jerarquía)',NULL,NULL,1),
('DEMO-ley',2,'Leyes','Mandatos legales (sin texto jurídico cargado)',NULL,NULL,1),
('DEMO-reglamento',3,'Reglamentos','Desarrollo reglamentario (sin fuente cargada)',NULL,NULL,1),
('DEMO-sector',4,'Normas sectoriales','Dependen de jurisdicción y sector',NULL,NULL,1),
('DEMO-interna',5,'Políticas internas','Reglas de operación de esta demo',NULL,NULL,1),
('DEMO-interna-propuesta','5','Revisión humana antes de validar','Política de ejemplo para propuestas locales','human_review','required','1');
|