{"tablas":{"almacenes":{"create":"CREATE TABLE `almacenes` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `codigo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `tipo` enum('picking','fisico') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'picking',\n  `activo` tinyint(4) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `codigo` (`codigo`),\n  KEY `idx_nombre` (`nombre`),\n  KEY `idx_codigo` (`codigo`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  KEY `idx_almacenes_tipo` (`tipo`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"codigo","definicion":"`codigo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"tipo","definicion":"`tipo` enum('picking','fisico') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'picking'","tipo":"enum('picking','fisico')","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"codigo","tipo":"unique","definicion":"UNIQUE KEY `codigo` (`codigo`)"},{"nombre":"idx_nombre","tipo":"index","definicion":"KEY `idx_nombre` (`nombre`)"},{"nombre":"idx_codigo","tipo":"index","definicion":"KEY `idx_codigo` (`codigo`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"idx_almacenes_tipo","tipo":"index","definicion":"KEY `idx_almacenes_tipo` (`tipo`)"}]},"cajas":{"create":"CREATE TABLE `cajas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `identificador` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `identificador` (`identificador`),\n  UNIQUE KEY `idx_nombre_pc` (`nombre_pc`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"identificador","definicion":"`identificador` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"ip","definicion":"`ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(45)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"identificador","tipo":"unique","definicion":"UNIQUE KEY `identificador` (`identificador`)"},{"nombre":"idx_nombre_pc","tipo":"unique","definicion":"UNIQUE KEY `idx_nombre_pc` (`nombre_pc`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"categorias":{"create":"CREATE TABLE `categorias` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_categoria_nombre` (`nombre`),\n  KEY `idx_categorias_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_categoria_nombre","tipo":"unique","definicion":"UNIQUE KEY `uk_categoria_nombre` (`nombre`)"},{"nombre":"idx_categorias_activo","tipo":"index","definicion":"KEY `idx_categorias_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"categorias2":{"create":"CREATE TABLE `categorias2` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(150) NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `idx_activo` (`activo`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(150) NOT NULL","tipo":"varchar(150)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"}]},"cat_forma_pago":{"create":"CREATE TABLE `cat_forma_pago` (\n  `clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`clave`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"clave","definicion":"`clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`clave`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"cat_metodo_pago":{"create":"CREATE TABLE `cat_metodo_pago` (\n  `clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`clave`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"clave","definicion":"`clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`clave`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"cat_regimen_fiscal":{"create":"CREATE TABLE `cat_regimen_fiscal` (\n  `clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `persona_fisica` tinyint(1) DEFAULT 0,\n  `persona_moral` tinyint(1) DEFAULT 0,\n  `activo` tinyint(1) DEFAULT 1,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`clave`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"clave","definicion":"`clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"persona_fisica","definicion":"`persona_fisica` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"persona_moral","definicion":"`persona_moral` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`clave`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"cat_uso_cfdi":{"create":"CREATE TABLE `cat_uso_cfdi` (\n  `clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `persona_fisica` tinyint(1) DEFAULT 0,\n  `persona_moral` tinyint(1) DEFAULT 0,\n  `activo` tinyint(1) DEFAULT 1,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`clave`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"clave","definicion":"`clave` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"persona_fisica","definicion":"`persona_fisica` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"persona_moral","definicion":"`persona_moral` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`clave`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"clasificaciones_cliente":{"create":"CREATE TABLE `clasificaciones_cliente` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_nombre` (`nombre`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_nombre","tipo":"unique","definicion":"UNIQUE KEY `uk_nombre` (`nombre`)"}]},"clientes":{"create":"CREATE TABLE `clientes` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `nombre_comercial` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `precio_venta` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista',\n  `porcentaje_envio` decimal(5,2) NOT NULL DEFAULT 0.00,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `tiene_credito` tinyint(1) DEFAULT 0 COMMENT 'Indica si el cliente tiene cr\u251c\u00aedito habilitado',\n  `monto_credito_maximo` decimal(10,2) DEFAULT 0.00 COMMENT 'Monto m\u251c\u00edximo de cr\u251c\u00aedito autorizado',\n  `dias_credito` int(11) DEFAULT 0 COMMENT 'D\u251c\u00a1as de cr\u251c\u00aedito (15, 30 o 45)',\n  `saldo_credito_usado` decimal(10,2) DEFAULT 0.00 COMMENT 'Saldo actual de cr\u251c\u00aedito utilizado',\n  `razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Raz\u251c\u2502n social para facturaci\u251c\u2502n',\n  `regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave r\u251c\u00aegimen fiscal SAT',\n  `uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave uso CFDI SAT',\n  `codigo_postal_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'CP del domicilio fiscal',\n  `email_facturacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Email para env\u251c\u00a1o de CFDI',\n  `requiere_factura` tinyint(1) DEFAULT 0 COMMENT 'Si generalmente requiere factura',\n  `rfc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'RFC del cliente',\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `usuario` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `contrasena` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `clasificacion_id` int(11) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `usuario` (`usuario`),\n  KEY `idx_nombre` (`nombre`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_clientes_credito` (`tiene_credito`),\n  KEY `idx_rfc` (`rfc`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"nombre_comercial","definicion":"`nombre_comercial` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"precio_venta","definicion":"`precio_venta` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista'","tipo":"varchar(15)","nulo":true},{"nombre":"porcentaje_envio","definicion":"`porcentaje_envio` decimal(5,2) NOT NULL DEFAULT 0.00","tipo":"decimal(5,2)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"tiene_credito","definicion":"`tiene_credito` tinyint(1) DEFAULT 0 COMMENT 'Indica si el cliente tiene cr\u251c\u00aedito habilitado'","tipo":"tinyint(1)","nulo":true},{"nombre":"monto_credito_maximo","definicion":"`monto_credito_maximo` decimal(10,2) DEFAULT 0.00 COMMENT 'Monto m\u251c\u00edximo de cr\u251c\u00aedito autorizado'","tipo":"decimal(10,2)","nulo":true},{"nombre":"dias_credito","definicion":"`dias_credito` int(11) DEFAULT 0 COMMENT 'D\u251c\u00a1as de cr\u251c\u00aedito (15, 30 o 45)'","tipo":"int(11)","nulo":true},{"nombre":"saldo_credito_usado","definicion":"`saldo_credito_usado` decimal(10,2) DEFAULT 0.00 COMMENT 'Saldo actual de cr\u251c\u00aedito utilizado'","tipo":"decimal(10,2)","nulo":true},{"nombre":"razon_social","definicion":"`razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Raz\u251c\u2502n social para facturaci\u251c\u2502n'","tipo":"varchar(255)","nulo":true},{"nombre":"regimen_fiscal","definicion":"`regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave r\u251c\u00aegimen fiscal SAT'","tipo":"varchar(10)","nulo":true},{"nombre":"uso_cfdi","definicion":"`uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave uso CFDI SAT'","tipo":"varchar(10)","nulo":true},{"nombre":"codigo_postal_fiscal","definicion":"`codigo_postal_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'CP del domicilio fiscal'","tipo":"varchar(10)","nulo":true},{"nombre":"email_facturacion","definicion":"`email_facturacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Email para env\u251c\u00a1o de CFDI'","tipo":"varchar(255)","nulo":true},{"nombre":"requiere_factura","definicion":"`requiere_factura` tinyint(1) DEFAULT 0 COMMENT 'Si generalmente requiere factura'","tipo":"tinyint(1)","nulo":true},{"nombre":"rfc","definicion":"`rfc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'RFC del cliente'","tipo":"varchar(20)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"usuario","definicion":"`usuario` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"contrasena","definicion":"`contrasena` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"clasificacion_id","definicion":"`clasificacion_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"usuario","tipo":"unique","definicion":"UNIQUE KEY `usuario` (`usuario`)"},{"nombre":"idx_nombre","tipo":"index","definicion":"KEY `idx_nombre` (`nombre`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_clientes_credito","tipo":"index","definicion":"KEY `idx_clientes_credito` (`tiene_credito`)"},{"nombre":"idx_rfc","tipo":"index","definicion":"KEY `idx_rfc` (`rfc`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"cliente_datos_fiscales":{"create":"CREATE TABLE `cliente_datos_fiscales` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `cliente_id` int(11) NOT NULL,\n  `rfc` varchar(13) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `codigo_postal_fiscal` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `direccion_fiscal` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `email_facturacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `es_principal` tinyint(1) DEFAULT 0,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_cliente_datos_fiscales_cliente` (`cliente_id`),\n  KEY `idx_cliente_datos_fiscales_rfc` (`rfc`),\n  KEY `idx_cliente_datos_fiscales_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `cliente_datos_fiscales_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"rfc","definicion":"`rfc` varchar(13) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(13)","nulo":false},{"nombre":"razon_social","definicion":"`razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"regimen_fiscal","definicion":"`regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"uso_cfdi","definicion":"`uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"codigo_postal_fiscal","definicion":"`codigo_postal_fiscal` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(5)","nulo":true},{"nombre":"direccion_fiscal","definicion":"`direccion_fiscal` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"email_facturacion","definicion":"`email_facturacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"es_principal","definicion":"`es_principal` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cliente_datos_fiscales_cliente","tipo":"index","definicion":"KEY `idx_cliente_datos_fiscales_cliente` (`cliente_id`)"},{"nombre":"idx_cliente_datos_fiscales_rfc","tipo":"index","definicion":"KEY `idx_cliente_datos_fiscales_rfc` (`rfc`)"},{"nombre":"idx_cliente_datos_fiscales_activo","tipo":"index","definicion":"KEY `idx_cliente_datos_fiscales_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"cliente_datos_fiscales_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `cliente_datos_fiscales_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE"}]},"cliente_direcciones":{"create":"CREATE TABLE `cliente_direcciones` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `cliente_id` int(11) NOT NULL,\n  `direccion` text COLLATE utf8mb4_unicode_ci NOT NULL,\n  `tipo` enum('principal','entrega','facturacion','otro') COLLATE utf8mb4_unicode_ci DEFAULT 'principal',\n  `activo` tinyint(4) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `latitud` decimal(10,8) DEFAULT NULL COMMENT 'Latitud de la direcci\u00ben para Google Maps',\n  `longitud` decimal(11,8) DEFAULT NULL COMMENT 'Longitud de la direcci\u00ben para Google Maps',\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_cliente_direccion` (`cliente_id`,`activo`),\n  KEY `idx_coordenadas` (`latitud`,`longitud`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `cliente_direcciones_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"direccion","definicion":"`direccion` text COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"text","nulo":false},{"nombre":"tipo","definicion":"`tipo` enum('principal','entrega','facturacion','otro') COLLATE utf8mb4_unicode_ci DEFAULT 'principal'","tipo":"enum('principal','entrega','facturacion','otro')","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"latitud","definicion":"`latitud` decimal(10,8) DEFAULT NULL COMMENT 'Latitud de la direcci\u00ben para Google Maps'","tipo":"decimal(10,8)","nulo":true},{"nombre":"longitud","definicion":"`longitud` decimal(11,8) DEFAULT NULL COMMENT 'Longitud de la direcci\u00ben para Google Maps'","tipo":"decimal(11,8)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cliente_direccion","tipo":"index","definicion":"KEY `idx_cliente_direccion` (`cliente_id`,`activo`)"},{"nombre":"idx_coordenadas","tipo":"index","definicion":"KEY `idx_coordenadas` (`latitud`,`longitud`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"cliente_direcciones_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `cliente_direcciones_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE"}]},"cliente_horarios_entrega":{"create":"CREATE TABLE `cliente_horarios_entrega` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `cliente_id` int(11) NOT NULL,\n  `direccion_id` int(11) DEFAULT NULL,\n  `dia` enum('lunes','martes','miercoles','jueves','viernes','sabado','domingo') COLLATE utf8mb4_unicode_ci NOT NULL,\n  `hora_inicio` time NOT NULL,\n  `hora_fin` time NOT NULL,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_horarios_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"direccion_id","definicion":"`direccion_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"dia","definicion":"`dia` enum('lunes','martes','miercoles','jueves','viernes','sabado','domingo') COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"enum('lunes','martes','miercoles','jueves','viernes','sabado','domingo')","nulo":false},{"nombre":"hora_inicio","definicion":"`hora_inicio` time NOT NULL","tipo":"time","nulo":false},{"nombre":"hora_fin","definicion":"`hora_fin` time NOT NULL","tipo":"time","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_horarios_cliente","tipo":"foreign","definicion":"CONSTRAINT `fk_horarios_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE"}]},"cliente_telefonos":{"create":"CREATE TABLE `cliente_telefonos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `cliente_id` int(11) NOT NULL,\n  `telefono` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `tipo` enum('principal','casa','trabajo','otro') COLLATE utf8mb4_unicode_ci DEFAULT 'principal',\n  `whatsapp` tinyint(1) DEFAULT 0,\n  `activo` tinyint(4) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_cliente_telefono` (`cliente_id`,`telefono`),\n  KEY `idx_cliente_telefono` (`cliente_id`,`activo`),\n  KEY `idx_telefono` (`telefono`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `cliente_telefonos_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"telefono","definicion":"`telefono` varchar(15) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(15)","nulo":false},{"nombre":"tipo","definicion":"`tipo` enum('principal','casa','trabajo','otro') COLLATE utf8mb4_unicode_ci DEFAULT 'principal'","tipo":"enum('principal','casa','trabajo','otro')","nulo":true},{"nombre":"whatsapp","definicion":"`whatsapp` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_cliente_telefono","tipo":"unique","definicion":"UNIQUE KEY `unique_cliente_telefono` (`cliente_id`,`telefono`)"},{"nombre":"idx_cliente_telefono","tipo":"index","definicion":"KEY `idx_cliente_telefono` (`cliente_id`,`activo`)"},{"nombre":"idx_telefono","tipo":"index","definicion":"KEY `idx_telefono` (`telefono`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"cliente_telefonos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `cliente_telefonos_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE CASCADE"}]},"complementos_pago":{"create":"CREATE TABLE `complementos_pago` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `uuid` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'UUID del timbrado (Folio Fiscal)',\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Folio interno del REP',\n  `referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `serie` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'P' COMMENT 'Serie del REP',\n  `cliente_id` int(11) NOT NULL,\n  `usuario_id` int(11) NOT NULL COMMENT 'Usuario que gener\u00f3 el complemento',\n  `emisor_id` int(11) DEFAULT NULL,\n  `receptor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `emisor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `forma_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Clave SAT forma de pago del pago recibido',\n  `fecha_pago` datetime NOT NULL,\n  `monto_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT 'Suma de los montos pagados a todas las facturas relacionadas',\n  `moneda` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT 'MXN',\n  `ruta_xml` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ruta_pdf` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estado` enum('pendiente_timbrado','timbrada','cancelada','pendiente_cancelacion') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente_timbrado',\n  `fecha_emision` datetime NOT NULL,\n  `fecha_timbrado` datetime DEFAULT NULL,\n  `fecha_cancelacion` datetime DEFAULT NULL,\n  `fecha_solicitud_cancelacion` datetime DEFAULT NULL,\n  `motivo_cancelacion` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `folio_sustitucion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `acuse_cancelacion` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `es_cancelable` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `usuario_id` (`usuario_id`),\n  KEY `idx_uuid` (`uuid`),\n  KEY `idx_estado` (`estado`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_fecha_pago` (`fecha_pago`),\n  CONSTRAINT `complementos_pago_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`),\n  CONSTRAINT `complementos_pago_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"uuid","definicion":"`uuid` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'UUID del timbrado (Folio Fiscal)'","tipo":"varchar(36)","nulo":true},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Folio interno del REP'","tipo":"varchar(50)","nulo":false},{"nombre":"referencia","definicion":"`referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"serie","definicion":"`serie` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'P' COMMENT 'Serie del REP'","tipo":"varchar(10)","nulo":true},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL COMMENT 'Usuario que gener\u00f3 el complemento'","tipo":"int(11)","nulo":false},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"receptor_rfc","definicion":"`receptor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"receptor_razon_social","definicion":"`receptor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"receptor_regimen_fiscal","definicion":"`receptor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"receptor_codigo_postal","definicion":"`receptor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"receptor_email","definicion":"`receptor_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"emisor_rfc","definicion":"`emisor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"emisor_razon_social","definicion":"`emisor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"emisor_regimen_fiscal","definicion":"`emisor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"emisor_codigo_postal","definicion":"`emisor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"forma_pago","definicion":"`forma_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Clave SAT forma de pago del pago recibido'","tipo":"varchar(10)","nulo":false},{"nombre":"fecha_pago","definicion":"`fecha_pago` datetime NOT NULL","tipo":"datetime","nulo":false},{"nombre":"monto_total","definicion":"`monto_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT 'Suma de los montos pagados a todas las facturas relacionadas'","tipo":"decimal(12,2)","nulo":false},{"nombre":"moneda","definicion":"`moneda` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT 'MXN'","tipo":"varchar(5)","nulo":true},{"nombre":"ruta_xml","definicion":"`ruta_xml` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"ruta_pdf","definicion":"`ruta_pdf` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"estado","definicion":"`estado` enum('pendiente_timbrado','timbrada','cancelada','pendiente_cancelacion') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente_timbrado'","tipo":"enum('pendiente_timbrado','timbrada','cancelada','pendiente_cancelacion')","nulo":true},{"nombre":"fecha_emision","definicion":"`fecha_emision` datetime NOT NULL","tipo":"datetime","nulo":false},{"nombre":"fecha_timbrado","definicion":"`fecha_timbrado` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_cancelacion","definicion":"`fecha_cancelacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_solicitud_cancelacion","definicion":"`fecha_solicitud_cancelacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"motivo_cancelacion","definicion":"`motivo_cancelacion` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(5)","nulo":true},{"nombre":"folio_sustitucion","definicion":"`folio_sustitucion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"acuse_cancelacion","definicion":"`acuse_cancelacion` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"es_cancelable","definicion":"`es_cancelable` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"usuario_id","tipo":"index","definicion":"KEY `usuario_id` (`usuario_id`)"},{"nombre":"idx_uuid","tipo":"index","definicion":"KEY `idx_uuid` (`uuid`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_fecha_pago","tipo":"index","definicion":"KEY `idx_fecha_pago` (`fecha_pago`)"},{"nombre":"complementos_pago_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `complementos_pago_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`)"},{"nombre":"complementos_pago_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `complementos_pago_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"complemento_pago_documentos":{"create":"CREATE TABLE `complemento_pago_documentos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `complemento_pago_id` int(11) NOT NULL,\n  `factura_id` int(11) NOT NULL COMMENT 'Factura PPD relacionada (DoctoRelacionado)',\n  `num_parcialidad` int(11) NOT NULL,\n  `imp_saldo_ant` decimal(12,2) NOT NULL,\n  `imp_pagado` decimal(12,2) NOT NULL,\n  `imp_saldo_insoluto` decimal(12,2) NOT NULL,\n  `objeto_imp_dr` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02' COMMENT '01=No objeto, 02=S\u00ed objeto de impuesto',\n  `base_iva16` decimal(12,2) DEFAULT 0.00,\n  `importe_iva16` decimal(12,2) DEFAULT 0.00,\n  `base_iva8` decimal(12,2) DEFAULT 0.00,\n  `importe_iva8` decimal(12,2) DEFAULT 0.00,\n  `base_iva0` decimal(12,2) DEFAULT 0.00,\n  `base_exenta` decimal(12,2) DEFAULT 0.00,\n  PRIMARY KEY (`id`),\n  KEY `idx_complemento` (`complemento_pago_id`),\n  KEY `idx_factura` (`factura_id`),\n  CONSTRAINT `complemento_pago_documentos_ibfk_1` FOREIGN KEY (`complemento_pago_id`) REFERENCES `complementos_pago` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `complemento_pago_documentos_ibfk_2` FOREIGN KEY (`factura_id`) REFERENCES `facturas` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"complemento_pago_id","definicion":"`complemento_pago_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"factura_id","definicion":"`factura_id` int(11) NOT NULL COMMENT 'Factura PPD relacionada (DoctoRelacionado)'","tipo":"int(11)","nulo":false},{"nombre":"num_parcialidad","definicion":"`num_parcialidad` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"imp_saldo_ant","definicion":"`imp_saldo_ant` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"imp_pagado","definicion":"`imp_pagado` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"imp_saldo_insoluto","definicion":"`imp_saldo_insoluto` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"objeto_imp_dr","definicion":"`objeto_imp_dr` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02' COMMENT '01=No objeto, 02=S\u00ed objeto de impuesto'","tipo":"varchar(5)","nulo":true},{"nombre":"base_iva16","definicion":"`base_iva16` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"importe_iva16","definicion":"`importe_iva16` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"base_iva8","definicion":"`base_iva8` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"importe_iva8","definicion":"`importe_iva8` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"base_iva0","definicion":"`base_iva0` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"base_exenta","definicion":"`base_exenta` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_complemento","tipo":"index","definicion":"KEY `idx_complemento` (`complemento_pago_id`)"},{"nombre":"idx_factura","tipo":"index","definicion":"KEY `idx_factura` (`factura_id`)"},{"nombre":"complemento_pago_documentos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `complemento_pago_documentos_ibfk_1` FOREIGN KEY (`complemento_pago_id`) REFERENCES `complementos_pago` (`id`) ON DELETE CASCADE"},{"nombre":"complemento_pago_documentos_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `complemento_pago_documentos_ibfk_2` FOREIGN KEY (`factura_id`) REFERENCES `facturas` (`id`)"}]},"configuraciones":{"create":"CREATE TABLE `configuraciones` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `clave` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `valor` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `tipo` enum('string','number','boolean','json') COLLATE utf8mb4_unicode_ci DEFAULT 'string',\n  `categoria` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT 'general',\n  `caja_id` int(11) DEFAULT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_clave_caja_id` (`clave`,`caja_id`),\n  KEY `idx_configuraciones_categoria` (`categoria`),\n  KEY `idx_caja` (`caja_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_configuraciones_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"clave","definicion":"`clave` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"valor","definicion":"`valor` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"tipo","definicion":"`tipo` enum('string','number','boolean','json') COLLATE utf8mb4_unicode_ci DEFAULT 'string'","tipo":"enum('string','number','boolean','json')","nulo":true},{"nombre":"categoria","definicion":"`categoria` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT 'general'","tipo":"varchar(50)","nulo":true},{"nombre":"caja_id","definicion":"`caja_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_clave_caja_id","tipo":"unique","definicion":"UNIQUE KEY `unique_clave_caja_id` (`clave`,`caja_id`)"},{"nombre":"idx_configuraciones_categoria","tipo":"index","definicion":"KEY `idx_configuraciones_categoria` (`categoria`)"},{"nombre":"idx_caja","tipo":"index","definicion":"KEY `idx_caja` (`caja_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_configuraciones_caja","tipo":"foreign","definicion":"CONSTRAINT `fk_configuraciones_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE CASCADE"}]},"configuracion_rangos":{"create":"CREATE TABLE `configuracion_rangos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `precio_tipo` enum('precio1','precio2','precio3','precio4') COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cantidad_minima` decimal(10,2) NOT NULL,\n  `cantidad_maxima` decimal(10,2) DEFAULT NULL,\n  `porcentaje_descuento` decimal(5,2) DEFAULT 0.00,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_precio_tipo` (`precio_tipo`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"precio_tipo","definicion":"`precio_tipo` enum('precio1','precio2','precio3','precio4') COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"enum('precio1','precio2','precio3','precio4')","nulo":false},{"nombre":"cantidad_minima","definicion":"`cantidad_minima` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"cantidad_maxima","definicion":"`cantidad_maxima` decimal(10,2) DEFAULT NULL","tipo":"decimal(10,2)","nulo":true},{"nombre":"porcentaje_descuento","definicion":"`porcentaje_descuento` decimal(5,2) DEFAULT 0.00","tipo":"decimal(5,2)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_precio_tipo","tipo":"index","definicion":"KEY `idx_precio_tipo` (`precio_tipo`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"cortes_caja":{"create":"CREATE TABLE `cortes_caja` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `caja_id` int(11) NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fondo_inicial` decimal(12,2) DEFAULT 0.00,\n  `total_efectivo` decimal(12,2) DEFAULT 0.00,\n  `total_tarjeta` decimal(12,2) DEFAULT 0.00,\n  `tarjeta_contado` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total_tarjeta_credito` decimal(12,2) DEFAULT 0.00,\n  `total_tarjeta_debito` decimal(12,2) DEFAULT 0.00,\n  `total_transferencia` decimal(12,2) DEFAULT 0.00,\n  `transferencia_contado` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total_ventas` decimal(12,2) DEFAULT 0.00,\n  `cantidad_ventas` int(11) DEFAULT 0,\n  `efectivo_contado` decimal(12,2) DEFAULT 0.00,\n  `efectivo_esperado` decimal(12,2) DEFAULT 0.00,\n  `diferencia` decimal(12,2) DEFAULT 0.00,\n  `observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `total_ingresos` decimal(12,2) DEFAULT 0.00,\n  `total_retiros` decimal(12,2) DEFAULT 0.00,\n  `total_devoluciones` decimal(12,2) DEFAULT 0.00,\n  `cantidad_devoluciones` int(11) DEFAULT 0,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `diferencia_tarjeta` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `diferencia_transferencia` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `arqueo_detalle` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n  `total_ingresos_cxc_efectivo` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total_ingresos_cxc_tarjeta_credito` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total_ingresos_cxc_tarjeta_debito` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total_ingresos_cxc_transferencia` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `cantidad_ingresos_cxc` int(11) NOT NULL DEFAULT 0,\n  PRIMARY KEY (`id`),\n  KEY `idx_caja` (`caja_id`),\n  KEY `idx_fecha` (`fecha_creacion`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `cortes_caja_ibfk_1` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fondo_inicial","definicion":"`fondo_inicial` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_efectivo","definicion":"`total_efectivo` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_tarjeta","definicion":"`total_tarjeta` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"tarjeta_contado","definicion":"`tarjeta_contado` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total_tarjeta_credito","definicion":"`total_tarjeta_credito` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_tarjeta_debito","definicion":"`total_tarjeta_debito` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_transferencia","definicion":"`total_transferencia` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"transferencia_contado","definicion":"`transferencia_contado` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total_ventas","definicion":"`total_ventas` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"cantidad_ventas","definicion":"`cantidad_ventas` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"efectivo_contado","definicion":"`efectivo_contado` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"efectivo_esperado","definicion":"`efectivo_esperado` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"diferencia","definicion":"`diferencia` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"total_ingresos","definicion":"`total_ingresos` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_retiros","definicion":"`total_retiros` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_devoluciones","definicion":"`total_devoluciones` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"cantidad_devoluciones","definicion":"`cantidad_devoluciones` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"diferencia_tarjeta","definicion":"`diferencia_tarjeta` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"diferencia_transferencia","definicion":"`diferencia_transferencia` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"arqueo_detalle","definicion":"`arqueo_detalle` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"total_ingresos_cxc_efectivo","definicion":"`total_ingresos_cxc_efectivo` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total_ingresos_cxc_tarjeta_credito","definicion":"`total_ingresos_cxc_tarjeta_credito` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total_ingresos_cxc_tarjeta_debito","definicion":"`total_ingresos_cxc_tarjeta_debito` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total_ingresos_cxc_transferencia","definicion":"`total_ingresos_cxc_transferencia` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"cantidad_ingresos_cxc","definicion":"`cantidad_ingresos_cxc` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_caja","tipo":"index","definicion":"KEY `idx_caja` (`caja_id`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_creacion`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"cortes_caja_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `cortes_caja_ibfk_1` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`)"}]},"cotizaciones":{"create":"CREATE TABLE `cotizaciones` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `caja_id` int(11) DEFAULT NULL,\n  `cliente_id` int(11) DEFAULT NULL,\n  `emisor_id` int(11) DEFAULT NULL,\n  `subtotal` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `impuesto` decimal(10,2) DEFAULT 0.00,\n  `descuento` decimal(10,2) DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_vigencia` date DEFAULT NULL COMMENT 'Hasta cuando es valida la cotizacion',\n  `estatus` enum('pendiente','aceptada','rechazada','expirada') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente',\n  `condiciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Condiciones comerciales',\n  `observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `venta_mostrador_id` int(11) DEFAULT NULL COMMENT 'Venta creada al convertir',\n  `fecha_conversion` datetime DEFAULT NULL,\n  `usuario_id_conversion` int(11) DEFAULT NULL,\n  `nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',\n  `id_origen` int(11) NOT NULL DEFAULT 0,\n  `editado_nube` tinyint(1) NOT NULL DEFAULT 0,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uniq_folio` (`folio`),\n  KEY `idx_cliente_id` (`cliente_id`),\n  KEY `idx_usuario_id` (`usuario_id`),\n  KEY `idx_estatus` (`estatus`),\n  KEY `idx_fecha_creacion` (`fecha_creacion`),\n  KEY `idx_venta_mostrador_id` (`venta_mostrador_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_vigencia","definicion":"`fecha_vigencia` date DEFAULT NULL COMMENT 'Hasta cuando es valida la cotizacion'","tipo":"date","nulo":true},{"nombre":"estatus","definicion":"`estatus` enum('pendiente','aceptada','rechazada','expirada') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente'","tipo":"enum('pendiente','aceptada','rechazada','expirada')","nulo":false},{"nombre":"condiciones","definicion":"`condiciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Condiciones comerciales'","tipo":"text","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"venta_mostrador_id","definicion":"`venta_mostrador_id` int(11) DEFAULT NULL COMMENT 'Venta creada al convertir'","tipo":"int(11)","nulo":true},{"nombre":"fecha_conversion","definicion":"`fecha_conversion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"usuario_id_conversion","definicion":"`usuario_id_conversion` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"sucursal","definicion":"`sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''","tipo":"varchar(100)","nulo":false},{"nombre":"id_origen","definicion":"`id_origen` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"editado_nube","definicion":"`editado_nube` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uniq_folio","tipo":"unique","definicion":"UNIQUE KEY `uniq_folio` (`folio`)"},{"nombre":"idx_cliente_id","tipo":"index","definicion":"KEY `idx_cliente_id` (`cliente_id`)"},{"nombre":"idx_usuario_id","tipo":"index","definicion":"KEY `idx_usuario_id` (`usuario_id`)"},{"nombre":"idx_estatus","tipo":"index","definicion":"KEY `idx_estatus` (`estatus`)"},{"nombre":"idx_fecha_creacion","tipo":"index","definicion":"KEY `idx_fecha_creacion` (`fecha_creacion`)"},{"nombre":"idx_venta_mostrador_id","tipo":"index","definicion":"KEY `idx_venta_mostrador_id` (`venta_mostrador_id`)"}]},"cotizaciones_detalles":{"create":"CREATE TABLE `cotizaciones_detalles` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `cotizacion_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cantidad` decimal(10,2) NOT NULL,\n  `precio_unitario` decimal(12,4) NOT NULL,\n  `subtotal` decimal(10,2) NOT NULL,\n  `impuesto` decimal(10,2) DEFAULT 0.00,\n  `descuento` decimal(10,2) DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL,\n  `precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista',\n  `costo` decimal(12,4) DEFAULT 0.0000,\n  `costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `impresora` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',\n  `id_origen` int(11) NOT NULL DEFAULT 0,\n  `editado_nube` tinyint(1) NOT NULL DEFAULT 0,\n  PRIMARY KEY (`id`),\n  KEY `idx_cotizacion_id` (`cotizacion_id`),\n  KEY `idx_producto_id` (`producto_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"cotizacion_id","definicion":"`cotizacion_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_nombre","definicion":"`producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,4) NOT NULL","tipo":"decimal(12,4)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"precio_tipo","definicion":"`precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista'","tipo":"varchar(20)","nulo":true},{"nombre":"costo","definicion":"`costo` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"costo_tipo","definicion":"`costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"impresora","definicion":"`impresora` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"sucursal","definicion":"`sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''","tipo":"varchar(100)","nulo":false},{"nombre":"id_origen","definicion":"`id_origen` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"editado_nube","definicion":"`editado_nube` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cotizacion_id","tipo":"index","definicion":"KEY `idx_cotizacion_id` (`cotizacion_id`)"},{"nombre":"idx_producto_id","tipo":"index","definicion":"KEY `idx_producto_id` (`producto_id`)"}]},"descuentos_volumen":{"create":"CREATE TABLE `descuentos_volumen` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `producto_id` int(11) NOT NULL,\n  `cantidad_minima` decimal(10,2) NOT NULL COMMENT 'Cantidad m\u00ddnima para aplicar descuento',\n  `descuento_porcentaje` decimal(9,6) NOT NULL COMMENT 'Porcentaje de descuento a aplicar',\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_producto_cantidad` (`producto_id`,`cantidad_minima`),\n  KEY `idx_producto_activo` (`producto_id`,`activo`),\n  KEY `idx_cantidad` (`cantidad_minima`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `descuentos_volumen_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"cantidad_minima","definicion":"`cantidad_minima` decimal(10,2) NOT NULL COMMENT 'Cantidad m\u00ddnima para aplicar descuento'","tipo":"decimal(10,2)","nulo":false},{"nombre":"descuento_porcentaje","definicion":"`descuento_porcentaje` decimal(9,6) NOT NULL COMMENT 'Porcentaje de descuento a aplicar'","tipo":"decimal(9,6)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_producto_cantidad","tipo":"unique","definicion":"UNIQUE KEY `uk_producto_cantidad` (`producto_id`,`cantidad_minima`)"},{"nombre":"idx_producto_activo","tipo":"index","definicion":"KEY `idx_producto_activo` (`producto_id`,`activo`)"},{"nombre":"idx_cantidad","tipo":"index","definicion":"KEY `idx_cantidad` (`cantidad_minima`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"descuentos_volumen_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `descuentos_volumen_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE"}]},"devoluciones":{"create":"CREATE TABLE `devoluciones` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `venta_id` int(11) NOT NULL,\n  `tipo_comprobante` enum('ticket_factura','solo_ticket') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'solo_ticket',\n  `metodo_pago` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo',\n  `alcance` enum('total','parcial') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'parcial',\n  `tipo_nota_credito` enum('fiscal','interna') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'interna',\n  `codigo_escenario` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `total_devolucion` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_autorizador_id` int(11) DEFAULT NULL,\n  `nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `tipo_venta` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'mostrador',\n  `estatus_pago` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pagado',\n  `requiere_reembolso` tinyint(1) DEFAULT 1,\n  `observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `uuid` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `serie_nc` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `folio_nc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ruta_xml` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ruta_pdf` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `emisor_id` int(11) DEFAULT NULL,\n  `factura_original_id` int(11) DEFAULT NULL,\n  `factura_original_uuid` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estado_cfdi` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_timbrado` datetime DEFAULT NULL,\n  `canal_reembolso` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `idx_venta_id` (`venta_id`),\n  KEY `idx_folio` (`folio`),\n  KEY `idx_fecha` (`fecha_creacion`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"tipo_comprobante","definicion":"`tipo_comprobante` enum('ticket_factura','solo_ticket') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'solo_ticket'","tipo":"enum('ticket_factura','solo_ticket')","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo'","tipo":"varchar(50)","nulo":false},{"nombre":"alcance","definicion":"`alcance` enum('total','parcial') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'parcial'","tipo":"enum('total','parcial')","nulo":false},{"nombre":"tipo_nota_credito","definicion":"`tipo_nota_credito` enum('fiscal','interna') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'interna'","tipo":"enum('fiscal','interna')","nulo":false},{"nombre":"codigo_escenario","definicion":"`codigo_escenario` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"total_devolucion","definicion":"`total_devolucion` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_autorizador_id","definicion":"`usuario_autorizador_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"tipo_venta","definicion":"`tipo_venta` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'mostrador'","tipo":"varchar(20)","nulo":true},{"nombre":"estatus_pago","definicion":"`estatus_pago` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pagado'","tipo":"varchar(20)","nulo":true},{"nombre":"requiere_reembolso","definicion":"`requiere_reembolso` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"uuid","definicion":"`uuid` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"serie_nc","definicion":"`serie_nc` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"folio_nc","definicion":"`folio_nc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"referencia","definicion":"`referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"ruta_xml","definicion":"`ruta_xml` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"ruta_pdf","definicion":"`ruta_pdf` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"factura_original_id","definicion":"`factura_original_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"factura_original_uuid","definicion":"`factura_original_uuid` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"estado_cfdi","definicion":"`estado_cfdi` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(30)","nulo":true},{"nombre":"fecha_timbrado","definicion":"`fecha_timbrado` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"canal_reembolso","definicion":"`canal_reembolso` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(30)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta_id","tipo":"index","definicion":"KEY `idx_venta_id` (`venta_id`)"},{"nombre":"idx_folio","tipo":"index","definicion":"KEY `idx_folio` (`folio`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_creacion`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"devoluciones_detalle":{"create":"CREATE TABLE `devoluciones_detalle` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `devolucion_id` int(11) NOT NULL,\n  `detalle_venta_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `cantidad` decimal(12,3) NOT NULL,\n  `precio_unitario` decimal(12,2) NOT NULL,\n  `precio_reembolso` decimal(12,2) NOT NULL,\n  `subtotal` decimal(12,2) NOT NULL,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_devolucion_id` (`devolucion_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"devolucion_id","definicion":"`devolucion_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"detalle_venta_id","definicion":"`detalle_venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(12,3) NOT NULL","tipo":"decimal(12,3)","nulo":false},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"precio_reembolso","definicion":"`precio_reembolso` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_devolucion_id","tipo":"index","definicion":"KEY `idx_devolucion_id` (`devolucion_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"diferencia_costos":{"create":"CREATE TABLE `diferencia_costos` (\n  `producto_id` varchar(50) NOT NULL,\n  `descripcion` varchar(255) NOT NULL,\n  `costo_para_calculo` decimal(10,3) DEFAULT 0.000 COMMENT 'costo_precios del producto',\n  `costo_pacific_soft` decimal(10,3) DEFAULT 0.000 COMMENT 'precio_compra del producto',\n  `costo_mayor` decimal(10,3) DEFAULT 0.000 COMMENT 'El mayor de ambos costos',\n  `importe_diferencia` decimal(10,3) DEFAULT 0.000 COMMENT 'costo_para_calculo - costo_pacific_soft',\n  `fecha_registro` datetime DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`producto_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"producto_id","definicion":"`producto_id` varchar(50) NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"costo_para_calculo","definicion":"`costo_para_calculo` decimal(10,3) DEFAULT 0.000 COMMENT 'costo_precios del producto'","tipo":"decimal(10,3)","nulo":true},{"nombre":"costo_pacific_soft","definicion":"`costo_pacific_soft` decimal(10,3) DEFAULT 0.000 COMMENT 'precio_compra del producto'","tipo":"decimal(10,3)","nulo":true},{"nombre":"costo_mayor","definicion":"`costo_mayor` decimal(10,3) DEFAULT 0.000 COMMENT 'El mayor de ambos costos'","tipo":"decimal(10,3)","nulo":true},{"nombre":"importe_diferencia","definicion":"`importe_diferencia` decimal(10,3) DEFAULT 0.000 COMMENT 'costo_para_calculo - costo_pacific_soft'","tipo":"decimal(10,3)","nulo":true},{"nombre":"fecha_registro","definicion":"`fecha_registro` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`producto_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"emisores_cfdi":{"create":"CREATE TABLE `emisores_cfdi` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `llave` varchar(500) NOT NULL,\n  `rfc` varchar(13) NOT NULL,\n  `razon_social` varchar(300) NOT NULL,\n  `lugar_expedicion` varchar(10) DEFAULT '',\n  `direccion_fisica` varchar(300) DEFAULT '',\n  `poblacion` varchar(150) DEFAULT '',\n  `activo` tinyint(1) DEFAULT 1,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"llave","definicion":"`llave` varchar(500) NOT NULL","tipo":"varchar(500)","nulo":false},{"nombre":"rfc","definicion":"`rfc` varchar(13) NOT NULL","tipo":"varchar(13)","nulo":false},{"nombre":"razon_social","definicion":"`razon_social` varchar(300) NOT NULL","tipo":"varchar(300)","nulo":false},{"nombre":"lugar_expedicion","definicion":"`lugar_expedicion` varchar(10) DEFAULT ''","tipo":"varchar(10)","nulo":true},{"nombre":"direccion_fisica","definicion":"`direccion_fisica` varchar(300) DEFAULT ''","tipo":"varchar(300)","nulo":true},{"nombre":"poblacion","definicion":"`poblacion` varchar(150) DEFAULT ''","tipo":"varchar(150)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"}]},"facturas":{"create":"CREATE TABLE `facturas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `uuid` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `serie` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'A',\n  `cliente_id` int(11) NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `receptor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `emisor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `emisor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `subtotal` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `descuento` decimal(12,2) DEFAULT 0.00,\n  `total_impuestos` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `total` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `forma_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `metodo_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `moneda` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT 'MXN',\n  `tipo_cambio` decimal(10,4) DEFAULT 1.0000,\n  `ruta_xml` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ruta_pdf` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estado` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente_timbrado',\n  `fecha_emision` datetime NOT NULL,\n  `fecha_timbrado` datetime DEFAULT NULL,\n  `fecha_cancelacion` datetime DEFAULT NULL,\n  `motivo_cancelacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `xml_timbrado` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `emisor_id` int(11) DEFAULT NULL,\n  `folio_sustitucion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `acuse_cancelacion` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `es_cancelable` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_solicitud_cancelacion` datetime DEFAULT NULL,\n  `tipo_factura` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `es_web` tinyint(1) NOT NULL DEFAULT 0,\n  `observaciones` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `receptor_direccion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `error_timbrado` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cfdi_json_pendiente` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `idx_uuid` (`uuid`),\n  KEY `idx_folio` (`folio`),\n  KEY `idx_serie_folio` (`serie`,`folio`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_fecha_emision` (`fecha_emision`),\n  KEY `idx_receptor_rfc` (`receptor_rfc`),\n  KEY `idx_updated_at` (`updated_at`),\n  KEY `idx_estado` (`estado`(191))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"uuid","definicion":"`uuid` varchar(36) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(36)","nulo":true},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"referencia","definicion":"`referencia` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"serie","definicion":"`serie` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'A'","tipo":"varchar(10)","nulo":true},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"receptor_rfc","definicion":"`receptor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"receptor_razon_social","definicion":"`receptor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"receptor_regimen_fiscal","definicion":"`receptor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"receptor_uso_cfdi","definicion":"`receptor_uso_cfdi` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"receptor_codigo_postal","definicion":"`receptor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"receptor_email","definicion":"`receptor_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"emisor_rfc","definicion":"`emisor_rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"emisor_razon_social","definicion":"`emisor_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"emisor_regimen_fiscal","definicion":"`emisor_regimen_fiscal` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"emisor_codigo_postal","definicion":"`emisor_codigo_postal` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"subtotal","definicion":"`subtotal` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total_impuestos","definicion":"`total_impuestos` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"total","definicion":"`total` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"forma_pago","definicion":"`forma_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false},{"nombre":"moneda","definicion":"`moneda` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT 'MXN'","tipo":"varchar(5)","nulo":true},{"nombre":"tipo_cambio","definicion":"`tipo_cambio` decimal(10,4) DEFAULT 1.0000","tipo":"decimal(10,4)","nulo":true},{"nombre":"ruta_xml","definicion":"`ruta_xml` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"ruta_pdf","definicion":"`ruta_pdf` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"estado","definicion":"`estado` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente_timbrado'","tipo":"varchar(250)","nulo":true},{"nombre":"fecha_emision","definicion":"`fecha_emision` datetime NOT NULL","tipo":"datetime","nulo":false},{"nombre":"fecha_timbrado","definicion":"`fecha_timbrado` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_cancelacion","definicion":"`fecha_cancelacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"motivo_cancelacion","definicion":"`motivo_cancelacion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"xml_timbrado","definicion":"`xml_timbrado` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"folio_sustitucion","definicion":"`folio_sustitucion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"acuse_cancelacion","definicion":"`acuse_cancelacion` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"es_cancelable","definicion":"`es_cancelable` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_solicitud_cancelacion","definicion":"`fecha_solicitud_cancelacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"tipo_factura","definicion":"`tipo_factura` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"es_web","definicion":"`es_web` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"observaciones","definicion":"`observaciones` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(250)","nulo":false},{"nombre":"receptor_direccion","definicion":"`receptor_direccion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"error_timbrado","definicion":"`error_timbrado` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"cfdi_json_pendiente","definicion":"`cfdi_json_pendiente` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_uuid","tipo":"index","definicion":"KEY `idx_uuid` (`uuid`)"},{"nombre":"idx_folio","tipo":"index","definicion":"KEY `idx_folio` (`folio`)"},{"nombre":"idx_serie_folio","tipo":"index","definicion":"KEY `idx_serie_folio` (`serie`,`folio`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_fecha_emision","tipo":"index","definicion":"KEY `idx_fecha_emision` (`fecha_emision`)"},{"nombre":"idx_receptor_rfc","tipo":"index","definicion":"KEY `idx_receptor_rfc` (`receptor_rfc`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`(191))"}]},"factura_conceptos":{"create":"CREATE TABLE `factura_conceptos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `factura_id` int(11) NOT NULL,\n  `clave_prod_serv` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '01010101',\n  `clave_unidad` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'H87',\n  `descripcion` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `producto_id` int(11) DEFAULT NULL,\n  `no_identificacion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cantidad` decimal(12,3) NOT NULL,\n  `unidad` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `valor_unitario` decimal(12,4) NOT NULL,\n  `importe` decimal(12,2) NOT NULL,\n  `descuento` decimal(12,2) DEFAULT 0.00,\n  `objeto_imp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02',\n  `base_iva` decimal(12,2) DEFAULT 0.00,\n  `tasa_iva` decimal(10,6) DEFAULT 0.160000,\n  `importe_iva` decimal(12,2) DEFAULT 0.00,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `tipo_factor_iva` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Tasa' COMMENT 'Tasa | Exento | IEPS',\n  `clave_impuesto` varchar(3) COLLATE utf8mb4_unicode_ci DEFAULT '002' COMMENT '002 IVA | 003 IEPS',\n  PRIMARY KEY (`id`),\n  KEY `idx_factura` (`factura_id`),\n  KEY `idx_producto` (`producto_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"factura_id","definicion":"`factura_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"clave_prod_serv","definicion":"`clave_prod_serv` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '01010101'","tipo":"varchar(10)","nulo":true},{"nombre":"clave_unidad","definicion":"`clave_unidad` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'H87'","tipo":"varchar(10)","nulo":true},{"nombre":"descripcion","definicion":"`descripcion` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(1000)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"no_identificacion","definicion":"`no_identificacion` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"cantidad","definicion":"`cantidad` decimal(12,3) NOT NULL","tipo":"decimal(12,3)","nulo":false},{"nombre":"unidad","definicion":"`unidad` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"valor_unitario","definicion":"`valor_unitario` decimal(12,4) NOT NULL","tipo":"decimal(12,4)","nulo":false},{"nombre":"importe","definicion":"`importe` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"objeto_imp","definicion":"`objeto_imp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02'","tipo":"varchar(5)","nulo":true},{"nombre":"base_iva","definicion":"`base_iva` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"tasa_iva","definicion":"`tasa_iva` decimal(10,6) DEFAULT 0.160000","tipo":"decimal(10,6)","nulo":true},{"nombre":"importe_iva","definicion":"`importe_iva` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"tipo_factor_iva","definicion":"`tipo_factor_iva` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Tasa' COMMENT 'Tasa | Exento | IEPS'","tipo":"varchar(10)","nulo":true},{"nombre":"clave_impuesto","definicion":"`clave_impuesto` varchar(3) COLLATE utf8mb4_unicode_ci DEFAULT '002' COMMENT '002 IVA | 003 IEPS'","tipo":"varchar(3)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_factura","tipo":"index","definicion":"KEY `idx_factura` (`factura_id`)"},{"nombre":"idx_producto","tipo":"index","definicion":"KEY `idx_producto` (`producto_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"factura_ventas":{"create":"CREATE TABLE `factura_ventas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `factura_id` int(11) NOT NULL,\n  `venta_id` int(11) NOT NULL,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_factura_venta` (`factura_id`,`venta_id`),\n  KEY `idx_factura` (`factura_id`),\n  KEY `idx_venta` (`venta_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"factura_id","definicion":"`factura_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_factura_venta","tipo":"unique","definicion":"UNIQUE KEY `unique_factura_venta` (`factura_id`,`venta_id`)"},{"nombre":"idx_factura","tipo":"index","definicion":"KEY `idx_factura` (`factura_id`)"},{"nombre":"idx_venta","tipo":"index","definicion":"KEY `idx_venta` (`venta_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"factura_ventas_mostrador":{"create":"CREATE TABLE `factura_ventas_mostrador` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `factura_id` int(11) NOT NULL,\n  `venta_mostrador_id` int(11) NOT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_factura_venta_mostrador` (`factura_id`,`venta_mostrador_id`),\n  KEY `idx_venta_mostrador` (`venta_mostrador_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"factura_id","definicion":"`factura_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"venta_mostrador_id","definicion":"`venta_mostrador_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_factura_venta_mostrador","tipo":"unique","definicion":"UNIQUE KEY `uk_factura_venta_mostrador` (`factura_id`,`venta_mostrador_id`)"},{"nombre":"idx_venta_mostrador","tipo":"index","definicion":"KEY `idx_venta_mostrador` (`venta_mostrador_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"ingresos_efectivo":{"create":"CREATE TABLE `ingresos_efectivo` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `caja_id` int(11) NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `monto` decimal(12,2) NOT NULL,\n  `metodo_pago` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT 'efectivo',\n  `concepto` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_ingreso` datetime DEFAULT current_timestamp(),\n  `created_at` datetime DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_caja_fecha` (`caja_id`,`fecha_ingreso`),\n  KEY `idx_usuario` (`usuario_id`),\n  KEY `idx_nombre_pc` (`nombre_pc`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"monto","definicion":"`monto` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT 'efectivo'","tipo":"varchar(30)","nulo":true},{"nombre":"concepto","definicion":"`concepto` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_ingreso","definicion":"`fecha_ingreso` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"created_at","definicion":"`created_at` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_caja_fecha","tipo":"index","definicion":"KEY `idx_caja_fecha` (`caja_id`,`fecha_ingreso`)"},{"nombre":"idx_usuario","tipo":"index","definicion":"KEY `idx_usuario` (`usuario_id`)"},{"nombre":"idx_nombre_pc","tipo":"index","definicion":"KEY `idx_nombre_pc` (`nombre_pc`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"inventario_almacen":{"create":"CREATE TABLE `inventario_almacen` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `producto_id` int(11) NOT NULL,\n  `almacen_id` int(11) NOT NULL,\n  `stock` decimal(10,3) NOT NULL DEFAULT 0.000,\n  `stock_minimo` decimal(10,3) NOT NULL DEFAULT 0.000,\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uq_producto_almacen` (`producto_id`,`almacen_id`),\n  KEY `almacen_id` (`almacen_id`),\n  CONSTRAINT `inventario_almacen_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`),\n  CONSTRAINT `inventario_almacen_ibfk_2` FOREIGN KEY (`almacen_id`) REFERENCES `almacenes` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"almacen_id","definicion":"`almacen_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"stock","definicion":"`stock` decimal(10,3) NOT NULL DEFAULT 0.000","tipo":"decimal(10,3)","nulo":false},{"nombre":"stock_minimo","definicion":"`stock_minimo` decimal(10,3) NOT NULL DEFAULT 0.000","tipo":"decimal(10,3)","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uq_producto_almacen","tipo":"unique","definicion":"UNIQUE KEY `uq_producto_almacen` (`producto_id`,`almacen_id`)"},{"nombre":"almacen_id","tipo":"index","definicion":"KEY `almacen_id` (`almacen_id`)"},{"nombre":"inventario_almacen_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `inventario_almacen_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)"},{"nombre":"inventario_almacen_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `inventario_almacen_ibfk_2` FOREIGN KEY (`almacen_id`) REFERENCES `almacenes` (`id`)"}]},"log_actividad":{"create":"CREATE TABLE `log_actividad` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) DEFAULT NULL,\n  `accion` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `modulo` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `detalles` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_log_actividad_usuario` (`usuario_id`),\n  KEY `idx_log_actividad_fecha` (`fecha`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `log_actividad_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"accion","definicion":"`accion` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"modulo","definicion":"`modulo` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"detalles","definicion":"`detalles` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"ip_address","definicion":"`ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(45)","nulo":true},{"nombre":"user_agent","definicion":"`user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha","definicion":"`fecha` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_log_actividad_usuario","tipo":"index","definicion":"KEY `idx_log_actividad_usuario` (`usuario_id`)"},{"nombre":"idx_log_actividad_fecha","tipo":"index","definicion":"KEY `idx_log_actividad_fecha` (`fecha`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"log_actividad_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `log_actividad_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"log_seguridad":{"create":"CREATE TABLE `log_seguridad` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `evento` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `usuario_id` int(11) DEFAULT NULL,\n  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `detalles` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `usuario_id` (`usuario_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `log_seguridad_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"evento","definicion":"`evento` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"ip_address","definicion":"`ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(45)","nulo":true},{"nombre":"user_agent","definicion":"`user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"detalles","definicion":"`detalles` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha","definicion":"`fecha` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"usuario_id","tipo":"index","definicion":"KEY `usuario_id` (`usuario_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"log_seguridad_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `log_seguridad_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"movimientos_inventario":{"create":"CREATE TABLE `movimientos_inventario` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `producto_id` int(11) NOT NULL,\n  `almacen_origen_id` int(11) DEFAULT NULL,\n  `almacen_destino_id` int(11) DEFAULT NULL,\n  `tipo` enum('entrada','salida','transferencia','ajuste','inventario_inicial') NOT NULL,\n  `cantidad` decimal(10,3) NOT NULL,\n  `stock_resultante` decimal(10,3) DEFAULT NULL,\n  `referencia_tipo` varchar(50) DEFAULT NULL,\n  `referencia_id` int(11) DEFAULT NULL,\n  `notas` text DEFAULT NULL,\n  `usuario_id` int(11) DEFAULT NULL,\n  `usuario_nombre` varchar(100) DEFAULT NULL,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `producto_id` (`producto_id`),\n  KEY `almacen_origen_id` (`almacen_origen_id`),\n  KEY `almacen_destino_id` (`almacen_destino_id`),\n  CONSTRAINT `movimientos_inventario_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`),\n  CONSTRAINT `movimientos_inventario_ibfk_2` FOREIGN KEY (`almacen_origen_id`) REFERENCES `almacenes` (`id`),\n  CONSTRAINT `movimientos_inventario_ibfk_3` FOREIGN KEY (`almacen_destino_id`) REFERENCES `almacenes` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"almacen_origen_id","definicion":"`almacen_origen_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"almacen_destino_id","definicion":"`almacen_destino_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"tipo","definicion":"`tipo` enum('entrada','salida','transferencia','ajuste','inventario_inicial') NOT NULL","tipo":"enum('entrada','salida','transferencia','ajuste','inventario_inicial')","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(10,3) NOT NULL","tipo":"decimal(10,3)","nulo":false},{"nombre":"stock_resultante","definicion":"`stock_resultante` decimal(10,3) DEFAULT NULL","tipo":"decimal(10,3)","nulo":true},{"nombre":"referencia_tipo","definicion":"`referencia_tipo` varchar(50) DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"referencia_id","definicion":"`referencia_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"notas","definicion":"`notas` text DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"producto_id","tipo":"index","definicion":"KEY `producto_id` (`producto_id`)"},{"nombre":"almacen_origen_id","tipo":"index","definicion":"KEY `almacen_origen_id` (`almacen_origen_id`)"},{"nombre":"almacen_destino_id","tipo":"index","definicion":"KEY `almacen_destino_id` (`almacen_destino_id`)"},{"nombre":"movimientos_inventario_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `movimientos_inventario_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)"},{"nombre":"movimientos_inventario_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `movimientos_inventario_ibfk_2` FOREIGN KEY (`almacen_origen_id`) REFERENCES `almacenes` (`id`)"},{"nombre":"movimientos_inventario_ibfk_3","tipo":"foreign","definicion":"CONSTRAINT `movimientos_inventario_ibfk_3` FOREIGN KEY (`almacen_destino_id`) REFERENCES `almacenes` (`id`)"}]},"ordenes_compra":{"create":"CREATE TABLE `ordenes_compra` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `proveedor_id` int(11) NOT NULL,\n  `usuario_id` int(11) DEFAULT NULL,\n  `subtotal` decimal(12,2) DEFAULT 0.00,\n  `impuesto` decimal(12,2) DEFAULT 0.00,\n  `total` decimal(12,2) DEFAULT 0.00,\n  `estado` enum('borrador','pendiente','aprobada','recibida_parcial','recibida','cancelada') COLLATE utf8mb4_unicode_ci DEFAULT 'borrador',\n  `estado_pago` enum('pendiente','pagada') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente',\n  `notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `aprobado_por` int(11) DEFAULT NULL,\n  `recibido_por` int(11) DEFAULT NULL,\n  `fecha_aprobacion` datetime DEFAULT NULL,\n  `fecha_recepcion` datetime DEFAULT NULL,\n  `fecha_pago` datetime DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `almacen_destino_id` int(11) DEFAULT NULL,\n  `es_compra_directa` tinyint(1) NOT NULL DEFAULT 0,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `folio` (`folio`),\n  KEY `usuario_id` (`usuario_id`),\n  KEY `aprobado_por` (`aprobado_por`),\n  KEY `idx_folio` (`folio`),\n  KEY `idx_proveedor` (`proveedor_id`),\n  KEY `idx_estado` (`estado`),\n  KEY `idx_fecha` (`fecha_creacion`),\n  KEY `idx_estado_pago` (`estado_pago`),\n  KEY `recibido_por` (`recibido_por`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `ordenes_compra_ibfk_1` FOREIGN KEY (`proveedor_id`) REFERENCES `proveedores` (`id`),\n  CONSTRAINT `ordenes_compra_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`),\n  CONSTRAINT `ordenes_compra_ibfk_3` FOREIGN KEY (`aprobado_por`) REFERENCES `usuarios` (`id`),\n  CONSTRAINT `ordenes_compra_ibfk_4` FOREIGN KEY (`recibido_por`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"proveedor_id","definicion":"`proveedor_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"subtotal","definicion":"`subtotal` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"impuesto","definicion":"`impuesto` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"total","definicion":"`total` decimal(12,2) DEFAULT 0.00","tipo":"decimal(12,2)","nulo":true},{"nombre":"estado","definicion":"`estado` enum('borrador','pendiente','aprobada','recibida_parcial','recibida','cancelada') COLLATE utf8mb4_unicode_ci DEFAULT 'borrador'","tipo":"enum('borrador','pendiente','aprobada','recibida_parcial','recibida','cancelada')","nulo":true},{"nombre":"estado_pago","definicion":"`estado_pago` enum('pendiente','pagada') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente'","tipo":"enum('pendiente','pagada')","nulo":true},{"nombre":"notas","definicion":"`notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"aprobado_por","definicion":"`aprobado_por` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"recibido_por","definicion":"`recibido_por` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_aprobacion","definicion":"`fecha_aprobacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_recepcion","definicion":"`fecha_recepcion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_pago","definicion":"`fecha_pago` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"almacen_destino_id","definicion":"`almacen_destino_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"es_compra_directa","definicion":"`es_compra_directa` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"folio","tipo":"unique","definicion":"UNIQUE KEY `folio` (`folio`)"},{"nombre":"usuario_id","tipo":"index","definicion":"KEY `usuario_id` (`usuario_id`)"},{"nombre":"aprobado_por","tipo":"index","definicion":"KEY `aprobado_por` (`aprobado_por`)"},{"nombre":"idx_folio","tipo":"index","definicion":"KEY `idx_folio` (`folio`)"},{"nombre":"idx_proveedor","tipo":"index","definicion":"KEY `idx_proveedor` (`proveedor_id`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_creacion`)"},{"nombre":"idx_estado_pago","tipo":"index","definicion":"KEY `idx_estado_pago` (`estado_pago`)"},{"nombre":"recibido_por","tipo":"index","definicion":"KEY `recibido_por` (`recibido_por`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"ordenes_compra_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `ordenes_compra_ibfk_1` FOREIGN KEY (`proveedor_id`) REFERENCES `proveedores` (`id`)"},{"nombre":"ordenes_compra_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `ordenes_compra_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"},{"nombre":"ordenes_compra_ibfk_3","tipo":"foreign","definicion":"CONSTRAINT `ordenes_compra_ibfk_3` FOREIGN KEY (`aprobado_por`) REFERENCES `usuarios` (`id`)"},{"nombre":"ordenes_compra_ibfk_4","tipo":"foreign","definicion":"CONSTRAINT `ordenes_compra_ibfk_4` FOREIGN KEY (`recibido_por`) REFERENCES `usuarios` (`id`)"}]},"orden_compra_detalle":{"create":"CREATE TABLE `orden_compra_detalle` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `orden_compra_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `cantidad` decimal(12,3) NOT NULL DEFAULT 0.000,\n  `cantidad_recibida` decimal(12,3) DEFAULT 0.000,\n  `precio_unitario` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `subtotal` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_orden` (`orden_compra_id`),\n  KEY `idx_producto` (`producto_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `orden_compra_detalle_ibfk_1` FOREIGN KEY (`orden_compra_id`) REFERENCES `ordenes_compra` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `orden_compra_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"orden_compra_id","definicion":"`orden_compra_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(12,3) NOT NULL DEFAULT 0.000","tipo":"decimal(12,3)","nulo":false},{"nombre":"cantidad_recibida","definicion":"`cantidad_recibida` decimal(12,3) DEFAULT 0.000","tipo":"decimal(12,3)","nulo":true},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_orden","tipo":"index","definicion":"KEY `idx_orden` (`orden_compra_id`)"},{"nombre":"idx_producto","tipo":"index","definicion":"KEY `idx_producto` (`producto_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"orden_compra_detalle_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `orden_compra_detalle_ibfk_1` FOREIGN KEY (`orden_compra_id`) REFERENCES `ordenes_compra` (`id`) ON DELETE CASCADE"},{"nombre":"orden_compra_detalle_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `orden_compra_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)"}]},"pagares":{"create":"CREATE TABLE `pagares` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_id` int(11) NOT NULL,\n  `origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pedido',\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `html_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL,\n  `fecha_vencimiento` date DEFAULT NULL,\n  `total` decimal(10,2) DEFAULT 0.00,\n  `usuario_id` int(11) DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `venta_folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `pagado_manual` tinyint(1) NOT NULL DEFAULT 0,\n  `fecha_pagado` date DEFAULT NULL,\n  `pagado_usuario_id` int(11) DEFAULT NULL,\n  `pagado_nota` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `idx_pagares_origen_venta` (`origen`,`venta_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"origen","definicion":"`origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pedido'","tipo":"varchar(20)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"html_content","definicion":"`html_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"longtext","nulo":false},{"nombre":"fecha_vencimiento","definicion":"`fecha_vencimiento` date DEFAULT NULL","tipo":"date","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"venta_folio","definicion":"`venta_folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"pagado_manual","definicion":"`pagado_manual` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"fecha_pagado","definicion":"`fecha_pagado` date DEFAULT NULL","tipo":"date","nulo":true},{"nombre":"pagado_usuario_id","definicion":"`pagado_usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"pagado_nota","definicion":"`pagado_nota` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_pagares_origen_venta","tipo":"unique","definicion":"UNIQUE KEY `idx_pagares_origen_venta` (`origen`,`venta_id`)"}]},"pagares_eliminados":{"create":"CREATE TABLE `pagares_eliminados` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `pagare_id` int(11) NOT NULL,\n  `venta_id` int(11) NOT NULL,\n  `origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pedido',\n  `venta_folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `html_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL,\n  `fecha_vencimiento` date DEFAULT NULL,\n  `total` decimal(10,2) DEFAULT 0.00,\n  `usuario_id` int(11) DEFAULT NULL,\n  `fecha_creacion` timestamp NULL DEFAULT NULL,\n  `pagado_manual` tinyint(1) NOT NULL DEFAULT 0,\n  `fecha_pagado` date DEFAULT NULL,\n  `motivo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `eliminado_por` int(11) DEFAULT NULL,\n  `fecha_eliminado` timestamp NOT NULL DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `idx_pagares_elim_venta` (`origen`,`venta_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"pagare_id","definicion":"`pagare_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"origen","definicion":"`origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pedido'","tipo":"varchar(20)","nulo":false},{"nombre":"venta_folio","definicion":"`venta_folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"html_content","definicion":"`html_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"longtext","nulo":false},{"nombre":"fecha_vencimiento","definicion":"`fecha_vencimiento` date DEFAULT NULL","tipo":"date","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NULL DEFAULT NULL","tipo":"timestamp","nulo":true},{"nombre":"pagado_manual","definicion":"`pagado_manual` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"fecha_pagado","definicion":"`fecha_pagado` date DEFAULT NULL","tipo":"date","nulo":true},{"nombre":"motivo","definicion":"`motivo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"eliminado_por","definicion":"`eliminado_por` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_eliminado","definicion":"`fecha_eliminado` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_pagares_elim_venta","tipo":"index","definicion":"KEY `idx_pagares_elim_venta` (`origen`,`venta_id`)"}]},"pagos_clientes":{"create":"CREATE TABLE `pagos_clientes` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cliente_id` int(11) NOT NULL,\n  `monto_recibido` decimal(12,2) NOT NULL,\n  `monto_aplicado` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `monto_sobrante` decimal(12,2) NOT NULL DEFAULT 0.00,\n  `metodo_pago` enum('efectivo','tarjeta','transferencia','cheque') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo',\n  `referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cuentas_afectadas` int(11) NOT NULL DEFAULT 0,\n  `cuentas_liquidadas` int(11) NOT NULL DEFAULT 0,\n  `registrado_por` int(11) NOT NULL,\n  `fecha_pago` datetime NOT NULL DEFAULT current_timestamp(),\n  `facturado` tinyint(1) NOT NULL DEFAULT 0,\n  `factura_id` int(11) DEFAULT NULL,\n  `fecha_facturacion` datetime DEFAULT NULL,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_fecha` (`fecha_pago`),\n  KEY `idx_facturado` (`facturado`),\n  KEY `idx_folio` (`folio`),\n  KEY `fk_pago_usuario` (`registrado_por`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_pago_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`),\n  CONSTRAINT `fk_pago_usuario` FOREIGN KEY (`registrado_por`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"monto_recibido","definicion":"`monto_recibido` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"monto_aplicado","definicion":"`monto_aplicado` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"monto_sobrante","definicion":"`monto_sobrante` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` enum('efectivo','tarjeta','transferencia','cheque') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo'","tipo":"enum('efectivo','tarjeta','transferencia','cheque')","nulo":false},{"nombre":"referencia","definicion":"`referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"notas","definicion":"`notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"cuentas_afectadas","definicion":"`cuentas_afectadas` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"cuentas_liquidadas","definicion":"`cuentas_liquidadas` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"registrado_por","definicion":"`registrado_por` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"fecha_pago","definicion":"`fecha_pago` datetime NOT NULL DEFAULT current_timestamp()","tipo":"datetime","nulo":false},{"nombre":"facturado","definicion":"`facturado` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"factura_id","definicion":"`factura_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_facturacion","definicion":"`fecha_facturacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_pago`)"},{"nombre":"idx_facturado","tipo":"index","definicion":"KEY `idx_facturado` (`facturado`)"},{"nombre":"idx_folio","tipo":"index","definicion":"KEY `idx_folio` (`folio`)"},{"nombre":"fk_pago_usuario","tipo":"index","definicion":"KEY `fk_pago_usuario` (`registrado_por`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_pago_cliente","tipo":"foreign","definicion":"CONSTRAINT `fk_pago_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`)"},{"nombre":"fk_pago_usuario","tipo":"foreign","definicion":"CONSTRAINT `fk_pago_usuario` FOREIGN KEY (`registrado_por`) REFERENCES `usuarios` (`id`)"}]},"permisos":{"create":"CREATE TABLE `permisos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `modulo` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `accion` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `activo` tinyint(4) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `nombre` (`nombre`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"modulo","definicion":"`modulo` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"accion","definicion":"`accion` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"nombre","tipo":"unique","definicion":"UNIQUE KEY `nombre` (`nombre`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"precios_ruta_detalle":{"create":"CREATE TABLE `precios_ruta_detalle` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `lista_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `precio` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_lista_producto` (`lista_id`,`producto_id`),\n  KEY `idx_producto` (`producto_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `precios_ruta_detalle_ibfk_1` FOREIGN KEY (`lista_id`) REFERENCES `precios_ruta_listas` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `precios_ruta_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"lista_id","definicion":"`lista_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"precio","definicion":"`precio` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_lista_producto","tipo":"unique","definicion":"UNIQUE KEY `uk_lista_producto` (`lista_id`,`producto_id`)"},{"nombre":"idx_producto","tipo":"index","definicion":"KEY `idx_producto` (`producto_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"precios_ruta_detalle_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `precios_ruta_detalle_ibfk_1` FOREIGN KEY (`lista_id`) REFERENCES `precios_ruta_listas` (`id`) ON DELETE CASCADE"},{"nombre":"precios_ruta_detalle_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `precios_ruta_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE"}]},"precios_ruta_listas":{"create":"CREATE TABLE `precios_ruta_listas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `orden` int(11) NOT NULL DEFAULT 0,\n  `activo` tinyint(1) NOT NULL DEFAULT 1,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_orden` (`orden`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"orden","definicion":"`orden` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) NOT NULL DEFAULT 1","tipo":"tinyint(1)","nulo":false},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_orden","tipo":"index","definicion":"KEY `idx_orden` (`orden`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"precio_rangos":{"create":"CREATE TABLE `precio_rangos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `producto_id` int(11) NOT NULL,\n  `precio_tipo` enum('precio1','precio2','precio3','precio4') COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cantidad_minima` decimal(10,2) NOT NULL,\n  `cantidad_maxima` decimal(10,2) DEFAULT NULL,\n  `precio` decimal(10,2) NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_producto_tipo` (`producto_id`,`precio_tipo`),\n  KEY `idx_cantidad` (`cantidad_minima`,`cantidad_maxima`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `precio_rangos_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"precio_tipo","definicion":"`precio_tipo` enum('precio1','precio2','precio3','precio4') COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"enum('precio1','precio2','precio3','precio4')","nulo":false},{"nombre":"cantidad_minima","definicion":"`cantidad_minima` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"cantidad_maxima","definicion":"`cantidad_maxima` decimal(10,2) DEFAULT NULL","tipo":"decimal(10,2)","nulo":true},{"nombre":"precio","definicion":"`precio` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_producto_tipo","tipo":"index","definicion":"KEY `idx_producto_tipo` (`producto_id`,`precio_tipo`)"},{"nombre":"idx_cantidad","tipo":"index","definicion":"KEY `idx_cantidad` (`cantidad_minima`,`cantidad_maxima`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"precio_rangos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `precio_rangos_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE"}]},"productos":{"create":"CREATE TABLE `productos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `codigo_corto` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `codigo_barras` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `codigos_barras_adicionales` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cve_cfdi` varchar(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave de producto\/servicio SAT',\n  `categoria_id` int(11) DEFAULT NULL,\n  `almacen_id` int(11) DEFAULT NULL,\n  `precio_compra` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `costo_precios` decimal(10,3) DEFAULT 0.000,\n  `precio_lista` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio de lista base',\n  `precio1` decimal(12,4) DEFAULT 0.0000,\n  `precio2` decimal(12,4) DEFAULT 0.0000,\n  `precio3` decimal(12,4) DEFAULT 0.0000,\n  `precio4` decimal(12,4) DEFAULT 0.0000,\n  `precio5` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio nivel 5',\n  `precio6` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio nivel 6',\n  `margen_precio1` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio1',\n  `margen_precio2` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio2',\n  `margen_precio3` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio3',\n  `margen_precio4` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio4',\n  `margen_precio5` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio5',\n  `margen_precio6` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio6',\n  `porcentaje_publico` decimal(6,2) NOT NULL DEFAULT 0.00,\n  `stock` int(11) DEFAULT 0,\n  `stock_minimo` int(11) DEFAULT 5,\n  `marcado_sin_stock` tinyint(1) NOT NULL DEFAULT 0,\n  `unidad_medida` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pz',\n  `imagen_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `impresora` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Nombre de la impresora asignada al producto',\n  `es_base` tinyint(1) DEFAULT 1,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `objeto_imp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02' COMMENT 'Objeto de impuesto SAT: 01=No objeto, 02=S\u00ed objeto,     \\r\\n     03=S\u00ed y no objeto',\n  `tipo_factor_iva` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Tasa' COMMENT 'Tipo de factor IVA: Tasa o Exento',\n  `tasa_iva` decimal(10,6) DEFAULT 0.160000 COMMENT 'Tasa de IVA: 0.160000=16%, 0.080000=8%, 0.000000=0%',\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `aux` decimal(10,2) NOT NULL,\n  `categoria2_id` int(11) DEFAULT NULL,\n  `subcategoria_id` int(11) DEFAULT NULL,\n  `unidad_sat` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave de unidad SAT (c_ClaveUnidad) para CFDI',\n  `imagen_base64` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `fk_producto_categoria` (`categoria_id`),\n  KEY `idx_productos_activo` (`activo`),\n  KEY `idx_productos_stock` (`stock`),\n  KEY `idx_productos_categoria_activo` (`categoria_id`,`activo`),\n  KEY `idx_almacen_id` (`almacen_id`),\n  KEY `idx_codigo_corto` (`codigo_corto`),\n  KEY `idx_codigo_barras` (`codigo_barras`),\n  KEY `idx_productos_cve_cfdi` (`cve_cfdi`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_producto_categoria` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`) ON DELETE SET NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"codigo_corto","definicion":"`codigo_corto` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"codigo_barras","definicion":"`codigo_barras` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"codigos_barras_adicionales","definicion":"`codigos_barras_adicionales` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"cve_cfdi","definicion":"`cve_cfdi` varchar(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave de producto\/servicio SAT'","tipo":"varchar(8)","nulo":true},{"nombre":"categoria_id","definicion":"`categoria_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"almacen_id","definicion":"`almacen_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"precio_compra","definicion":"`precio_compra` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"costo_precios","definicion":"`costo_precios` decimal(10,3) DEFAULT 0.000","tipo":"decimal(10,3)","nulo":true},{"nombre":"precio_lista","definicion":"`precio_lista` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio de lista base'","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio1","definicion":"`precio1` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio2","definicion":"`precio2` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio3","definicion":"`precio3` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio4","definicion":"`precio4` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio5","definicion":"`precio5` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio nivel 5'","tipo":"decimal(12,4)","nulo":true},{"nombre":"precio6","definicion":"`precio6` decimal(12,4) DEFAULT 0.0000 COMMENT 'Precio nivel 6'","tipo":"decimal(12,4)","nulo":true},{"nombre":"margen_precio1","definicion":"`margen_precio1` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio1'","tipo":"decimal(8,4)","nulo":false},{"nombre":"margen_precio2","definicion":"`margen_precio2` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio2'","tipo":"decimal(8,4)","nulo":false},{"nombre":"margen_precio3","definicion":"`margen_precio3` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio3'","tipo":"decimal(8,4)","nulo":false},{"nombre":"margen_precio4","definicion":"`margen_precio4` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio4'","tipo":"decimal(8,4)","nulo":false},{"nombre":"margen_precio5","definicion":"`margen_precio5` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio5'","tipo":"decimal(8,4)","nulo":false},{"nombre":"margen_precio6","definicion":"`margen_precio6` decimal(8,4) NOT NULL DEFAULT 0.0000 COMMENT '% ganancia costo->precio6'","tipo":"decimal(8,4)","nulo":false},{"nombre":"porcentaje_publico","definicion":"`porcentaje_publico` decimal(6,2) NOT NULL DEFAULT 0.00","tipo":"decimal(6,2)","nulo":false},{"nombre":"stock","definicion":"`stock` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"stock_minimo","definicion":"`stock_minimo` int(11) DEFAULT 5","tipo":"int(11)","nulo":true},{"nombre":"marcado_sin_stock","definicion":"`marcado_sin_stock` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"unidad_medida","definicion":"`unidad_medida` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pz'","tipo":"varchar(20)","nulo":true},{"nombre":"imagen_url","definicion":"`imagen_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(500)","nulo":true},{"nombre":"impresora","definicion":"`impresora` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Nombre de la impresora asignada al producto'","tipo":"varchar(255)","nulo":true},{"nombre":"es_base","definicion":"`es_base` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"objeto_imp","definicion":"`objeto_imp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT '02' COMMENT 'Objeto de impuesto SAT: 01=No objeto, 02=S\u00ed objeto,     \\r\\n     03=S\u00ed y no objeto'","tipo":"varchar(5)","nulo":true},{"nombre":"tipo_factor_iva","definicion":"`tipo_factor_iva` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Tasa' COMMENT 'Tipo de factor IVA: Tasa o Exento'","tipo":"varchar(10)","nulo":true},{"nombre":"tasa_iva","definicion":"`tasa_iva` decimal(10,6) DEFAULT 0.160000 COMMENT 'Tasa de IVA: 0.160000=16%, 0.080000=8%, 0.000000=0%'","tipo":"decimal(10,6)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"aux","definicion":"`aux` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"categoria2_id","definicion":"`categoria2_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"subcategoria_id","definicion":"`subcategoria_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"unidad_sat","definicion":"`unidad_sat` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Clave de unidad SAT (c_ClaveUnidad) para CFDI'","tipo":"varchar(5)","nulo":true},{"nombre":"imagen_base64","definicion":"`imagen_base64` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"fk_producto_categoria","tipo":"index","definicion":"KEY `fk_producto_categoria` (`categoria_id`)"},{"nombre":"idx_productos_activo","tipo":"index","definicion":"KEY `idx_productos_activo` (`activo`)"},{"nombre":"idx_productos_stock","tipo":"index","definicion":"KEY `idx_productos_stock` (`stock`)"},{"nombre":"idx_productos_categoria_activo","tipo":"index","definicion":"KEY `idx_productos_categoria_activo` (`categoria_id`,`activo`)"},{"nombre":"idx_almacen_id","tipo":"index","definicion":"KEY `idx_almacen_id` (`almacen_id`)"},{"nombre":"idx_codigo_corto","tipo":"index","definicion":"KEY `idx_codigo_corto` (`codigo_corto`)"},{"nombre":"idx_codigo_barras","tipo":"index","definicion":"KEY `idx_codigo_barras` (`codigo_barras`)"},{"nombre":"idx_productos_cve_cfdi","tipo":"index","definicion":"KEY `idx_productos_cve_cfdi` (`cve_cfdi`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_producto_categoria","tipo":"foreign","definicion":"CONSTRAINT `fk_producto_categoria` FOREIGN KEY (`categoria_id`) REFERENCES `categorias` (`id`) ON DELETE SET NULL"}]},"producto_equivalencias":{"create":"CREATE TABLE `producto_equivalencias` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `producto_id` int(11) NOT NULL COMMENT 'Producto principal (ej: Caja)',\n  `producto_equivalente_id` int(11) NOT NULL COMMENT 'Producto que lo conforma (ej: Unidad)',\n  `cantidad` decimal(10,3) NOT NULL DEFAULT 1.000 COMMENT 'Cantidad del producto equivalente',\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_equivalencia` (`producto_id`,`producto_equivalente_id`),\n  KEY `idx_producto_id` (`producto_id`),\n  KEY `idx_producto_equivalente_id` (`producto_equivalente_id`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `producto_equivalencias_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `producto_equivalencias_ibfk_2` FOREIGN KEY (`producto_equivalente_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tabla para manejar equivalencias entre productos'","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL COMMENT 'Producto principal (ej: Caja)'","tipo":"int(11)","nulo":false},{"nombre":"producto_equivalente_id","definicion":"`producto_equivalente_id` int(11) NOT NULL COMMENT 'Producto que lo conforma (ej: Unidad)'","tipo":"int(11)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(10,3) NOT NULL DEFAULT 1.000 COMMENT 'Cantidad del producto equivalente'","tipo":"decimal(10,3)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_equivalencia","tipo":"unique","definicion":"UNIQUE KEY `unique_equivalencia` (`producto_id`,`producto_equivalente_id`)"},{"nombre":"idx_producto_id","tipo":"index","definicion":"KEY `idx_producto_id` (`producto_id`)"},{"nombre":"idx_producto_equivalente_id","tipo":"index","definicion":"KEY `idx_producto_equivalente_id` (`producto_equivalente_id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"producto_equivalencias_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `producto_equivalencias_ibfk_1` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE"},{"nombre":"producto_equivalencias_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `producto_equivalencias_ibfk_2` FOREIGN KEY (`producto_equivalente_id`) REFERENCES `productos` (`id`) ON DELETE CASCADE"}]},"proveedores":{"create":"CREATE TABLE `proveedores` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `contacto` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `telefono` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `direccion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `rfc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  KEY `idx_nombre` (`nombre`(191))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"contacto","definicion":"`contacto` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"telefono","definicion":"`telefono` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"email","definicion":"`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"direccion","definicion":"`direccion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"rfc","definicion":"`rfc` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT NULL ON UPDATE current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"idx_nombre","tipo":"index","definicion":"KEY `idx_nombre` (`nombre`(191))"}]},"rangos_flete":{"create":"CREATE TABLE `rangos_flete` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `distancia_desde` decimal(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Distancia m\u251c\u00a1nima en km',\n  `distancia_hasta` decimal(8,2) NOT NULL COMMENT 'Distancia m\u251c\u00edxima en km',\n  `vehiculo_id` int(11) DEFAULT NULL COMMENT 'ID del veh\u251c\u00a1culo asignado',\n  `costo` decimal(10,2) NOT NULL COMMENT 'Costo del flete',\n  `activo` tinyint(4) DEFAULT 1 COMMENT 'Estado: 1=Activo, 0=Inactivo',\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_distancia` (`distancia_desde`,`distancia_hasta`),\n  KEY `idx_vehiculo` (`vehiculo_id`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `rangos_flete_ibfk_1` FOREIGN KEY (`vehiculo_id`) REFERENCES `vehiculos` (`id`) ON DELETE SET NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"distancia_desde","definicion":"`distancia_desde` decimal(8,2) NOT NULL DEFAULT 0.00 COMMENT 'Distancia m\u251c\u00a1nima en km'","tipo":"decimal(8,2)","nulo":false},{"nombre":"distancia_hasta","definicion":"`distancia_hasta` decimal(8,2) NOT NULL COMMENT 'Distancia m\u251c\u00edxima en km'","tipo":"decimal(8,2)","nulo":false},{"nombre":"vehiculo_id","definicion":"`vehiculo_id` int(11) DEFAULT NULL COMMENT 'ID del veh\u251c\u00a1culo asignado'","tipo":"int(11)","nulo":true},{"nombre":"costo","definicion":"`costo` decimal(10,2) NOT NULL COMMENT 'Costo del flete'","tipo":"decimal(10,2)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1 COMMENT 'Estado: 1=Activo, 0=Inactivo'","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_distancia","tipo":"index","definicion":"KEY `idx_distancia` (`distancia_desde`,`distancia_hasta`)"},{"nombre":"idx_vehiculo","tipo":"index","definicion":"KEY `idx_vehiculo` (`vehiculo_id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"rangos_flete_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `rangos_flete_ibfk_1` FOREIGN KEY (`vehiculo_id`) REFERENCES `vehiculos` (`id`) ON DELETE SET NULL"}]},"retiros_efectivo":{"create":"CREATE TABLE `retiros_efectivo` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `caja_id` int(11) NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `monto` decimal(12,2) NOT NULL,\n  `motivo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_retiro` datetime DEFAULT current_timestamp(),\n  `created_at` datetime DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `usuario_autorizador_id` int(11) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `idx_caja_fecha` (`caja_id`,`fecha_retiro`),\n  KEY `idx_usuario` (`usuario_id`),\n  KEY `idx_nombre_pc` (`nombre_pc`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `retiros_efectivo_ibfk_1` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`),\n  CONSTRAINT `retiros_efectivo_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"monto","definicion":"`monto` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"motivo","definicion":"`motivo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_retiro","definicion":"`fecha_retiro` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"created_at","definicion":"`created_at` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"usuario_autorizador_id","definicion":"`usuario_autorizador_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_caja_fecha","tipo":"index","definicion":"KEY `idx_caja_fecha` (`caja_id`,`fecha_retiro`)"},{"nombre":"idx_usuario","tipo":"index","definicion":"KEY `idx_usuario` (`usuario_id`)"},{"nombre":"idx_nombre_pc","tipo":"index","definicion":"KEY `idx_nombre_pc` (`nombre_pc`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"retiros_efectivo_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `retiros_efectivo_ibfk_1` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`)"},{"nombre":"retiros_efectivo_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `retiros_efectivo_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"roles":{"create":"CREATE TABLE `roles` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `nivel` int(11) DEFAULT 1,\n  `activo` tinyint(4) DEFAULT 1,\n  `necesita_almacen` tinyint(1) DEFAULT 0,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `nombre` (`nombre`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"descripcion","definicion":"`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"nivel","definicion":"`nivel` int(11) DEFAULT 1","tipo":"int(11)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"necesita_almacen","definicion":"`necesita_almacen` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"nombre","tipo":"unique","definicion":"UNIQUE KEY `nombre` (`nombre`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"rol_permisos":{"create":"CREATE TABLE `rol_permisos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `rol_id` int(11) NOT NULL,\n  `permiso_id` int(11) NOT NULL,\n  `fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_rol_permiso` (`rol_id`,`permiso_id`),\n  KEY `permiso_id` (`permiso_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `rol_permisos_ibfk_1` FOREIGN KEY (`rol_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `rol_permisos_ibfk_2` FOREIGN KEY (`permiso_id`) REFERENCES `permisos` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"rol_id","definicion":"`rol_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"permiso_id","definicion":"`permiso_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"fecha_asignacion","definicion":"`fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_rol_permiso","tipo":"unique","definicion":"UNIQUE KEY `unique_rol_permiso` (`rol_id`,`permiso_id`)"},{"nombre":"permiso_id","tipo":"index","definicion":"KEY `permiso_id` (`permiso_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"rol_permisos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `rol_permisos_ibfk_1` FOREIGN KEY (`rol_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE"},{"nombre":"rol_permisos_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `rol_permisos_ibfk_2` FOREIGN KEY (`permiso_id`) REFERENCES `permisos` (`id`) ON DELETE CASCADE"}]},"rutas_entrega":{"create":"CREATE TABLE `rutas_entrega` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `vehiculo_id` int(11) DEFAULT NULL,\n  `fecha` date NOT NULL,\n  `estado` enum('pendiente','en_curso','completada') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente',\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_fecha` (`fecha`),\n  KEY `idx_estado` (`estado`),\n  KEY `idx_updated_at` (`updated_at`),\n  KEY `idx_rutas_vehiculo` (`vehiculo_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"vehiculo_id","definicion":"`vehiculo_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha","definicion":"`fecha` date NOT NULL","tipo":"date","nulo":false},{"nombre":"estado","definicion":"`estado` enum('pendiente','en_curso','completada') COLLATE utf8mb4_unicode_ci DEFAULT 'pendiente'","tipo":"enum('pendiente','en_curso','completada')","nulo":true},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"idx_rutas_vehiculo","tipo":"index","definicion":"KEY `idx_rutas_vehiculo` (`vehiculo_id`)"}]},"ruta_pedidos":{"create":"CREATE TABLE `ruta_pedidos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `ruta_id` int(11) NOT NULL,\n  `venta_id` int(11) NOT NULL,\n  `orden` int(11) NOT NULL DEFAULT 0,\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_venta_ruta` (`venta_id`),\n  KEY `idx_ruta_orden` (`ruta_id`,`orden`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `ruta_pedidos_ibfk_1` FOREIGN KEY (`ruta_id`) REFERENCES `rutas_entrega` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `ruta_pedidos_ibfk_2` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"ruta_id","definicion":"`ruta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"orden","definicion":"`orden` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_venta_ruta","tipo":"unique","definicion":"UNIQUE KEY `unique_venta_ruta` (`venta_id`)"},{"nombre":"idx_ruta_orden","tipo":"index","definicion":"KEY `idx_ruta_orden` (`ruta_id`,`orden`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"ruta_pedidos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `ruta_pedidos_ibfk_1` FOREIGN KEY (`ruta_id`) REFERENCES `rutas_entrega` (`id`) ON DELETE CASCADE"},{"nombre":"ruta_pedidos_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `ruta_pedidos_ibfk_2` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON DELETE CASCADE"}]},"sesiones":{"create":"CREATE TABLE `sesiones` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) NOT NULL,\n  `session_token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_inicio` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actividad` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `activa` tinyint(4) DEFAULT 1,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `session_token` (`session_token`(191)),\n  KEY `usuario_id` (`usuario_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `sesiones_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"session_token","definicion":"`session_token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"ip_address","definicion":"`ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(45)","nulo":true},{"nombre":"user_agent","definicion":"`user_agent` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_inicio","definicion":"`fecha_inicio` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actividad","definicion":"`fecha_actividad` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"activa","definicion":"`activa` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"session_token","tipo":"unique","definicion":"UNIQUE KEY `session_token` (`session_token`(191))"},{"nombre":"usuario_id","tipo":"index","definicion":"KEY `usuario_id` (`usuario_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"sesiones_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `sesiones_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"sesiones_app":{"create":"CREATE TABLE `sesiones_app` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) NOT NULL,\n  `token` varchar(128) NOT NULL,\n  `created_at` datetime DEFAULT current_timestamp(),\n  `expires_at` datetime NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `token` (`token`),\n  KEY `idx_token` (`token`),\n  KEY `idx_usuario` (`usuario_id`),\n  CONSTRAINT `sesiones_app_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"token","definicion":"`token` varchar(128) NOT NULL","tipo":"varchar(128)","nulo":false},{"nombre":"created_at","definicion":"`created_at` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"expires_at","definicion":"`expires_at` datetime NOT NULL","tipo":"datetime","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"token","tipo":"unique","definicion":"UNIQUE KEY `token` (`token`)"},{"nombre":"idx_token","tipo":"index","definicion":"KEY `idx_token` (`token`)"},{"nombre":"idx_usuario","tipo":"index","definicion":"KEY `idx_usuario` (`usuario_id`)"},{"nombre":"sesiones_app_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `sesiones_app_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE"}]},"subcategorias":{"create":"CREATE TABLE `subcategorias` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `categoria2_id` int(11) NOT NULL,\n  `nombre` varchar(150) NOT NULL,\n  `activo` tinyint(1) DEFAULT 1,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `idx_categoria2` (`categoria2_id`),\n  KEY `idx_activo` (`activo`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"categoria2_id","definicion":"`categoria2_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(150) NOT NULL","tipo":"varchar(150)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(1) DEFAULT 1","tipo":"tinyint(1)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_categoria2","tipo":"index","definicion":"KEY `idx_categoria2` (`categoria2_id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"}]},"sync_control":{"create":"CREATE TABLE `sync_control` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `last_push_at` datetime(6) DEFAULT NULL,\n  `last_pull_at` datetime(6) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_tabla_sucursal` (`tabla`,`sucursal`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"tabla","definicion":"`tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"sucursal","definicion":"`sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"last_push_at","definicion":"`last_push_at` datetime(6) DEFAULT NULL","tipo":"datetime(6)","nulo":true},{"nombre":"last_pull_at","definicion":"`last_pull_at` datetime(6) DEFAULT NULL","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_tabla_sucursal","tipo":"unique","definicion":"UNIQUE KEY `uk_tabla_sucursal` (`tabla`,`sucursal`)"}]},"sync_id_map":{"create":"CREATE TABLE `sync_id_map` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `sucursal_origen` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `id_remoto` int(11) NOT NULL,\n  `id_local` int(11) NOT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uk_mapping` (`tabla`,`sucursal_origen`,`id_remoto`),\n  KEY `idx_local` (`tabla`,`id_local`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"tabla","definicion":"`tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"sucursal_origen","definicion":"`sucursal_origen` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"id_remoto","definicion":"`id_remoto` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"id_local","definicion":"`id_local` int(11) NOT NULL","tipo":"int(11)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uk_mapping","tipo":"unique","definicion":"UNIQUE KEY `uk_mapping` (`tabla`,`sucursal_origen`,`id_remoto`)"},{"nombre":"idx_local","tipo":"index","definicion":"KEY `idx_local` (`tabla`,`id_local`)"}]},"sync_log":{"create":"CREATE TABLE `sync_log` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `direccion` enum('push','pull') COLLATE utf8mb4_unicode_ci NOT NULL,\n  `registros_enviados` int(11) DEFAULT 0,\n  `registros_recibidos` int(11) DEFAULT 0,\n  `registros_conflictos` int(11) DEFAULT 0,\n  `ultimo_sync_timestamp` datetime(6) DEFAULT NULL,\n  `estado` enum('iniciado','completado','error') COLLATE utf8mb4_unicode_ci DEFAULT 'iniciado',\n  `error_mensaje` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `duracion_ms` int(11) DEFAULT 0,\n  `created_at` datetime(6) DEFAULT current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_tabla` (`tabla`),\n  KEY `idx_sucursal` (`sucursal`),\n  KEY `idx_estado` (`estado`),\n  KEY `idx_created` (`created_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"tabla","definicion":"`tabla` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"sucursal","definicion":"`sucursal` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"direccion","definicion":"`direccion` enum('push','pull') COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"enum('push','pull')","nulo":false},{"nombre":"registros_enviados","definicion":"`registros_enviados` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"registros_recibidos","definicion":"`registros_recibidos` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"registros_conflictos","definicion":"`registros_conflictos` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"ultimo_sync_timestamp","definicion":"`ultimo_sync_timestamp` datetime(6) DEFAULT NULL","tipo":"datetime(6)","nulo":true},{"nombre":"estado","definicion":"`estado` enum('iniciado','completado','error') COLLATE utf8mb4_unicode_ci DEFAULT 'iniciado'","tipo":"enum('iniciado','completado','error')","nulo":true},{"nombre":"error_mensaje","definicion":"`error_mensaje` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"duracion_ms","definicion":"`duracion_ms` int(11) DEFAULT 0","tipo":"int(11)","nulo":true},{"nombre":"created_at","definicion":"`created_at` datetime(6) DEFAULT current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_tabla","tipo":"index","definicion":"KEY `idx_tabla` (`tabla`)"},{"nombre":"idx_sucursal","tipo":"index","definicion":"KEY `idx_sucursal` (`sucursal`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`)"},{"nombre":"idx_created","tipo":"index","definicion":"KEY `idx_created` (`created_at`)"}]},"tmp_regimen_kerigma":{"create":"CREATE TABLE `tmp_regimen_kerigma` (\n  `rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `regimen` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,\n  PRIMARY KEY (`rfc`)\n) ENGINE=MEMORY DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"rfc","definicion":"`rfc` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"regimen","definicion":"`regimen` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(10)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`rfc`)"}]},"transferencias":{"create":"CREATE TABLE `transferencias` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(20) NOT NULL,\n  `almacen_origen_id` int(11) NOT NULL,\n  `almacen_destino_id` int(11) NOT NULL,\n  `estado` enum('borrador','enviada','recibida') NOT NULL DEFAULT 'borrador',\n  `notas` text DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_envio` timestamp NULL DEFAULT NULL,\n  `fecha_recepcion` timestamp NULL DEFAULT NULL,\n  `usuario_creacion` varchar(100) DEFAULT NULL,\n  `usuario_envio` varchar(100) DEFAULT NULL,\n  `usuario_recepcion` varchar(100) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `folio` (`folio`),\n  KEY `almacen_origen_id` (`almacen_origen_id`),\n  KEY `almacen_destino_id` (`almacen_destino_id`),\n  CONSTRAINT `transferencias_ibfk_1` FOREIGN KEY (`almacen_origen_id`) REFERENCES `almacenes` (`id`),\n  CONSTRAINT `transferencias_ibfk_2` FOREIGN KEY (`almacen_destino_id`) REFERENCES `almacenes` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(20) NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"almacen_origen_id","definicion":"`almacen_origen_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"almacen_destino_id","definicion":"`almacen_destino_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"estado","definicion":"`estado` enum('borrador','enviada','recibida') NOT NULL DEFAULT 'borrador'","tipo":"enum('borrador','enviada','recibida')","nulo":false},{"nombre":"notas","definicion":"`notas` text DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_envio","definicion":"`fecha_envio` timestamp NULL DEFAULT NULL","tipo":"timestamp","nulo":true},{"nombre":"fecha_recepcion","definicion":"`fecha_recepcion` timestamp NULL DEFAULT NULL","tipo":"timestamp","nulo":true},{"nombre":"usuario_creacion","definicion":"`usuario_creacion` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"usuario_envio","definicion":"`usuario_envio` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"usuario_recepcion","definicion":"`usuario_recepcion` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"folio","tipo":"unique","definicion":"UNIQUE KEY `folio` (`folio`)"},{"nombre":"almacen_origen_id","tipo":"index","definicion":"KEY `almacen_origen_id` (`almacen_origen_id`)"},{"nombre":"almacen_destino_id","tipo":"index","definicion":"KEY `almacen_destino_id` (`almacen_destino_id`)"},{"nombre":"transferencias_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `transferencias_ibfk_1` FOREIGN KEY (`almacen_origen_id`) REFERENCES `almacenes` (`id`)"},{"nombre":"transferencias_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `transferencias_ibfk_2` FOREIGN KEY (`almacen_destino_id`) REFERENCES `almacenes` (`id`)"}]},"transferencia_detalle":{"create":"CREATE TABLE `transferencia_detalle` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `transferencia_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `cantidad_enviada` decimal(10,3) NOT NULL DEFAULT 0.000,\n  `cantidad_recibida` decimal(10,3) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `transferencia_id` (`transferencia_id`),\n  KEY `producto_id` (`producto_id`),\n  CONSTRAINT `transferencia_detalle_ibfk_1` FOREIGN KEY (`transferencia_id`) REFERENCES `transferencias` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `transferencia_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"transferencia_id","definicion":"`transferencia_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"cantidad_enviada","definicion":"`cantidad_enviada` decimal(10,3) NOT NULL DEFAULT 0.000","tipo":"decimal(10,3)","nulo":false},{"nombre":"cantidad_recibida","definicion":"`cantidad_recibida` decimal(10,3) DEFAULT NULL","tipo":"decimal(10,3)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"transferencia_id","tipo":"index","definicion":"KEY `transferencia_id` (`transferencia_id`)"},{"nombre":"producto_id","tipo":"index","definicion":"KEY `producto_id` (`producto_id`)"},{"nombre":"transferencia_detalle_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `transferencia_detalle_ibfk_1` FOREIGN KEY (`transferencia_id`) REFERENCES `transferencias` (`id`) ON DELETE CASCADE"},{"nombre":"transferencia_detalle_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `transferencia_detalle_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)"}]},"usuarios":{"create":"CREATE TABLE `usuarios` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `telefono` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `rol_id` int(11) NOT NULL,\n  `biometric_id` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `activo` tinyint(4) DEFAULT 1,\n  `ultimo_acceso` timestamp NULL DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `usuario` (`usuario`),\n  UNIQUE KEY `email` (`email`),\n  UNIQUE KEY `biometric_id` (`biometric_id`),\n  KEY `idx_usuarios_rol` (`rol_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `usuarios_ibfk_1` FOREIGN KEY (`rol_id`) REFERENCES `roles` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario","definicion":"`usuario` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"email","definicion":"`email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"password","definicion":"`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"telefono","definicion":"`telefono` varchar(15) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(15)","nulo":true},{"nombre":"rol_id","definicion":"`rol_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"biometric_id","definicion":"`biometric_id` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"ultimo_acceso","definicion":"`ultimo_acceso` timestamp NULL DEFAULT NULL","tipo":"timestamp","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"usuario","tipo":"unique","definicion":"UNIQUE KEY `usuario` (`usuario`)"},{"nombre":"email","tipo":"unique","definicion":"UNIQUE KEY `email` (`email`)"},{"nombre":"biometric_id","tipo":"unique","definicion":"UNIQUE KEY `biometric_id` (`biometric_id`)"},{"nombre":"idx_usuarios_rol","tipo":"index","definicion":"KEY `idx_usuarios_rol` (`rol_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"usuarios_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `usuarios_ibfk_1` FOREIGN KEY (`rol_id`) REFERENCES `roles` (`id`)"}]},"usuario_almacenes":{"create":"CREATE TABLE `usuario_almacenes` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) NOT NULL,\n  `almacen_id` int(11) NOT NULL,\n  `fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_usuario_almacen` (`usuario_id`,`almacen_id`),\n  KEY `idx_usuario_id` (`usuario_id`),\n  KEY `idx_almacen_id` (`almacen_id`),\n  KEY `idx_usuario_almacenes_lookup` (`usuario_id`,`almacen_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_usuario_almacenes_almacen` FOREIGN KEY (`almacen_id`) REFERENCES `almacenes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,\n  CONSTRAINT `fk_usuario_almacenes_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tabla de relaci\u251c\u2502n entre usuarios y almacenes asignados'","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"almacen_id","definicion":"`almacen_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"fecha_asignacion","definicion":"`fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_usuario_almacen","tipo":"unique","definicion":"UNIQUE KEY `unique_usuario_almacen` (`usuario_id`,`almacen_id`)"},{"nombre":"idx_usuario_id","tipo":"index","definicion":"KEY `idx_usuario_id` (`usuario_id`)"},{"nombre":"idx_almacen_id","tipo":"index","definicion":"KEY `idx_almacen_id` (`almacen_id`)"},{"nombre":"idx_usuario_almacenes_lookup","tipo":"index","definicion":"KEY `idx_usuario_almacenes_lookup` (`usuario_id`,`almacen_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_usuario_almacenes_almacen","tipo":"foreign","definicion":"CONSTRAINT `fk_usuario_almacenes_almacen` FOREIGN KEY (`almacen_id`) REFERENCES `almacenes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE"},{"nombre":"fk_usuario_almacenes_usuario","tipo":"foreign","definicion":"CONSTRAINT `fk_usuario_almacenes_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE"}]},"usuario_huellas":{"create":"CREATE TABLE `usuario_huellas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) NOT NULL,\n  `dedo` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fingerprint_base64` longtext COLLATE utf8mb4_unicode_ci NOT NULL,\n  `fecha_registro` timestamp NOT NULL DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `usuario_id` (`usuario_id`),\n  CONSTRAINT `usuario_huellas_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"dedo","definicion":"`dedo` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"fingerprint_base64","definicion":"`fingerprint_base64` longtext COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"longtext","nulo":false},{"nombre":"fecha_registro","definicion":"`fecha_registro` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"usuario_id","tipo":"index","definicion":"KEY `usuario_id` (`usuario_id`)"},{"nombre":"usuario_huellas_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `usuario_huellas_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE"}]},"usuario_permisos_app":{"create":"CREATE TABLE `usuario_permisos_app` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `usuario_id` int(11) NOT NULL,\n  `permiso` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Key del m\u00f3dulo: pedidos, entregas, pedidos_guardados, embarques, clientes, catalogo, reportes',\n  `fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_usuario_permiso_app` (`usuario_id`,`permiso`),\n  KEY `idx_usuario_id` (`usuario_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_upa_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"permiso","definicion":"`permiso` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Key del m\u00f3dulo: pedidos, entregas, pedidos_guardados, embarques, clientes, catalogo, reportes'","tipo":"varchar(50)","nulo":false},{"nombre":"fecha_asignacion","definicion":"`fecha_asignacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_usuario_permiso_app","tipo":"unique","definicion":"UNIQUE KEY `unique_usuario_permiso_app` (`usuario_id`,`permiso`)"},{"nombre":"idx_usuario_id","tipo":"index","definicion":"KEY `idx_usuario_id` (`usuario_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_upa_usuario","tipo":"foreign","definicion":"CONSTRAINT `fk_upa_usuario` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE"}]},"vales":{"create":"CREATE TABLE `vales` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `codigo` varchar(20) NOT NULL,\n  `monto_inicial` decimal(12,2) NOT NULL,\n  `saldo_disponible` decimal(12,2) NOT NULL,\n  `estatus` enum('disponible','parcial','agotado','cancelado') NOT NULL DEFAULT 'disponible',\n  `usuario_id` int(11) NOT NULL,\n  `usuario_autorizador_id` int(11) DEFAULT NULL,\n  `nombre_pc` varchar(100) DEFAULT NULL,\n  `observaciones` text DEFAULT NULL,\n  `fecha_creacion` datetime DEFAULT current_timestamp(),\n  `fecha_actualizacion` datetime DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `uq_codigo` (`codigo`),\n  KEY `idx_estatus` (`estatus`),\n  KEY `idx_fecha_creacion` (`fecha_creacion`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"codigo","definicion":"`codigo` varchar(20) NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"monto_inicial","definicion":"`monto_inicial` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"saldo_disponible","definicion":"`saldo_disponible` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"estatus","definicion":"`estatus` enum('disponible','parcial','agotado','cancelado') NOT NULL DEFAULT 'disponible'","tipo":"enum('disponible','parcial','agotado','cancelado')","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_autorizador_id","definicion":"`usuario_autorizador_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"uq_codigo","tipo":"unique","definicion":"UNIQUE KEY `uq_codigo` (`codigo`)"},{"nombre":"idx_estatus","tipo":"index","definicion":"KEY `idx_estatus` (`estatus`)"},{"nombre":"idx_fecha_creacion","tipo":"index","definicion":"KEY `idx_fecha_creacion` (`fecha_creacion`)"}]},"vales_articulos":{"create":"CREATE TABLE `vales_articulos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `vale_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `producto_nombre` varchar(255) DEFAULT NULL,\n  `cantidad` decimal(12,3) NOT NULL,\n  `precio_unitario` decimal(12,2) NOT NULL,\n  `subtotal` decimal(12,2) NOT NULL,\n  `costo` decimal(12,2) NOT NULL DEFAULT 0.00,\n  PRIMARY KEY (`id`),\n  KEY `idx_vale_id` (`vale_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"vale_id","definicion":"`vale_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_nombre","definicion":"`producto_nombre` varchar(255) DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"cantidad","definicion":"`cantidad` decimal(12,3) NOT NULL","tipo":"decimal(12,3)","nulo":false},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"costo","definicion":"`costo` decimal(12,2) NOT NULL DEFAULT 0.00","tipo":"decimal(12,2)","nulo":false}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_vale_id","tipo":"index","definicion":"KEY `idx_vale_id` (`vale_id`)"}]},"vales_movimientos":{"create":"CREATE TABLE `vales_movimientos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `vale_id` int(11) NOT NULL,\n  `tipo` enum('creacion','canje') NOT NULL,\n  `monto` decimal(12,2) NOT NULL,\n  `saldo_resultante` decimal(12,2) NOT NULL,\n  `venta_id` int(11) DEFAULT NULL,\n  `tipo_venta` varchar(20) DEFAULT NULL,\n  `usuario_id` int(11) DEFAULT NULL,\n  `nombre_pc` varchar(100) DEFAULT NULL,\n  `fecha` datetime DEFAULT current_timestamp(),\n  PRIMARY KEY (`id`),\n  KEY `idx_vale_id` (`vale_id`),\n  KEY `idx_venta_id` (`venta_id`),\n  KEY `idx_fecha` (`fecha`)\n) ENGINE=InnoDB DEFAULT CHARSET=latin1","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"vale_id","definicion":"`vale_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"tipo","definicion":"`tipo` enum('creacion','canje') NOT NULL","tipo":"enum('creacion','canje')","nulo":false},{"nombre":"monto","definicion":"`monto` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"saldo_resultante","definicion":"`saldo_resultante` decimal(12,2) NOT NULL","tipo":"decimal(12,2)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"tipo_venta","definicion":"`tipo_venta` varchar(20) DEFAULT NULL","tipo":"varchar(20)","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"nombre_pc","definicion":"`nombre_pc` varchar(100) DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha","definicion":"`fecha` datetime DEFAULT current_timestamp()","tipo":"datetime","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_vale_id","tipo":"index","definicion":"KEY `idx_vale_id` (`vale_id`)"},{"nombre":"idx_venta_id","tipo":"index","definicion":"KEY `idx_venta_id` (`venta_id`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha`)"}]},"vehiculos":{"create":"CREATE TABLE `vehiculos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Nombre descriptivo del veh\u251c\u00a1culo',\n  `placa` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Placa del veh\u251c\u00a1culo',\n  `activo` tinyint(4) DEFAULT 1 COMMENT 'Estado: 1=Activo, 0=Inactivo',\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `idx_placa` (`placa`),\n  KEY `idx_nombre` (`nombre`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"nombre","definicion":"`nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Nombre descriptivo del veh\u251c\u00a1culo'","tipo":"varchar(100)","nulo":false},{"nombre":"placa","definicion":"`placa` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Placa del veh\u251c\u00a1culo'","tipo":"varchar(20)","nulo":false},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1 COMMENT 'Estado: 1=Activo, 0=Inactivo'","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_placa","tipo":"unique","definicion":"UNIQUE KEY `idx_placa` (`placa`)"},{"nombre":"idx_nombre","tipo":"index","definicion":"KEY `idx_nombre` (`nombre`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"vehiculo_rangos":{"create":"CREATE TABLE `vehiculo_rangos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `vehiculo_id` int(11) NOT NULL,\n  `rango_id` int(11) NOT NULL,\n  `precio_especial` decimal(10,2) DEFAULT NULL COMMENT 'Precio especial para este veh\u00edculo en este rango',\n  `activo` tinyint(4) DEFAULT 1,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `idx_vehiculo_rango` (`vehiculo_id`,`rango_id`),\n  KEY `rango_id` (`rango_id`),\n  KEY `idx_activo` (`activo`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `vehiculo_rangos_ibfk_1` FOREIGN KEY (`vehiculo_id`) REFERENCES `vehiculos` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `vehiculo_rangos_ibfk_2` FOREIGN KEY (`rango_id`) REFERENCES `rangos_flete` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Asignaci\u00f3n de veh\u00edculos a rangos espec\u00edficos'","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"vehiculo_id","definicion":"`vehiculo_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"rango_id","definicion":"`rango_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"precio_especial","definicion":"`precio_especial` decimal(10,2) DEFAULT NULL COMMENT 'Precio especial para este veh\u00edculo en este rango'","tipo":"decimal(10,2)","nulo":true},{"nombre":"activo","definicion":"`activo` tinyint(4) DEFAULT 1","tipo":"tinyint(4)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_vehiculo_rango","tipo":"unique","definicion":"UNIQUE KEY `idx_vehiculo_rango` (`vehiculo_id`,`rango_id`)"},{"nombre":"rango_id","tipo":"index","definicion":"KEY `rango_id` (`rango_id`)"},{"nombre":"idx_activo","tipo":"index","definicion":"KEY `idx_activo` (`activo`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"vehiculo_rangos_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `vehiculo_rangos_ibfk_1` FOREIGN KEY (`vehiculo_id`) REFERENCES `vehiculos` (`id`) ON DELETE CASCADE"},{"nombre":"vehiculo_rangos_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `vehiculo_rangos_ibfk_2` FOREIGN KEY (`rango_id`) REFERENCES `rangos_flete` (`id`) ON DELETE CASCADE"}]},"ventas":{"create":"CREATE TABLE `ventas` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cliente_id` int(11) DEFAULT NULL,\n  `cliente_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `caja_id` int(11) DEFAULT NULL,\n  `corte_id` int(11) DEFAULT NULL,\n  `subtotal` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `impuesto` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `descuento` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `metodo_pago` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estatus_pago` enum('pagado','pendiente') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente',\n  `saldo_pendiente` decimal(10,2) DEFAULT NULL COMMENT 'Saldo restante por cobrar (NULL si no es cr\u251c\u00aedito)',\n  `pagos_detalle` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'JSON [{metodo,monto}] cuando metodo_pago es mixto',\n  `tipo_entrega` enum('domicilio','pickup') COLLATE utf8mb4_unicode_ci DEFAULT 'pickup',\n  `direccion_entrega` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estado` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_tentativa` date DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),\n  `fecha_en_preparacion` datetime DEFAULT NULL,\n  `fecha_preparado` datetime DEFAULT NULL,\n  `fecha_en_ruta` datetime DEFAULT NULL,\n  `fecha_entregado` datetime DEFAULT NULL,\n  `fecha_cancelada` datetime DEFAULT NULL,\n  `facturado` tinyint(1) DEFAULT 0,\n  `aplica_comision` tinyint(1) DEFAULT 0,\n  `comision_porcentaje` decimal(5,2) DEFAULT 0.00,\n  `comision_monto` decimal(10,2) DEFAULT 0.00,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  `emisor_id` int(11) DEFAULT NULL,\n  `codigo_facturacion` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `dato_fiscal_id` int(11) DEFAULT NULL,\n  `requiere_factura` tinyint(1) NOT NULL DEFAULT 0,\n  `factura_rfc` varchar(13) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `factura_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `factura_cp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `factura_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `latitud` decimal(10,8) DEFAULT NULL,\n  `longitud` decimal(11,8) DEFAULT NULL,\n  `precision_gps` decimal(6,2) DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `unique_folio` (`folio`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_usuario` (`usuario_id`),\n  KEY `idx_estado` (`estado`),\n  KEY `idx_fecha` (`fecha_creacion`),\n  KEY `idx_estatus_pago` (`estatus_pago`),\n  KEY `idx_caja_id` (`caja_id`),\n  KEY `idx_ventas_saldo` (`saldo_pendiente`),\n  KEY `idx_updated_at` (`updated_at`),\n  KEY `idx_ventas_corte` (`corte_id`),\n  KEY `idx_ventas_cxc` (`cliente_id`,`estatus_pago`,`metodo_pago`(191)),\n  KEY `idx_fecha_preparado` (`fecha_preparado`),\n  KEY `idx_fecha_entregado` (`fecha_entregado`),\n  KEY `idx_corte_id` (`corte_id`),\n  CONSTRAINT `fk_ventas_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE SET NULL,\n  CONSTRAINT `ventas_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE SET NULL,\n  CONSTRAINT `ventas_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(50)","nulo":false},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"cliente_nombre","definicion":"`cliente_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"corte_id","definicion":"`corte_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` varchar(250) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(250)","nulo":true},{"nombre":"estatus_pago","definicion":"`estatus_pago` enum('pagado','pendiente') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente'","tipo":"enum('pagado','pendiente')","nulo":false},{"nombre":"saldo_pendiente","definicion":"`saldo_pendiente` decimal(10,2) DEFAULT NULL COMMENT 'Saldo restante por cobrar (NULL si no es cr\u251c\u00aedito)'","tipo":"decimal(10,2)","nulo":true},{"nombre":"pagos_detalle","definicion":"`pagos_detalle` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'JSON [{metodo,monto}] cuando metodo_pago es mixto'","tipo":"text","nulo":true},{"nombre":"tipo_entrega","definicion":"`tipo_entrega` enum('domicilio','pickup') COLLATE utf8mb4_unicode_ci DEFAULT 'pickup'","tipo":"enum('domicilio','pickup')","nulo":true},{"nombre":"direccion_entrega","definicion":"`direccion_entrega` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"estado","definicion":"`estado` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(50)","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_tentativa","definicion":"`fecha_tentativa` date DEFAULT NULL","tipo":"date","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_en_preparacion","definicion":"`fecha_en_preparacion` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_preparado","definicion":"`fecha_preparado` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_en_ruta","definicion":"`fecha_en_ruta` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_entregado","definicion":"`fecha_entregado` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"fecha_cancelada","definicion":"`fecha_cancelada` datetime DEFAULT NULL","tipo":"datetime","nulo":true},{"nombre":"facturado","definicion":"`facturado` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"aplica_comision","definicion":"`aplica_comision` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"comision_porcentaje","definicion":"`comision_porcentaje` decimal(5,2) DEFAULT 0.00","tipo":"decimal(5,2)","nulo":true},{"nombre":"comision_monto","definicion":"`comision_monto` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"codigo_facturacion","definicion":"`codigo_facturacion` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(10)","nulo":true},{"nombre":"dato_fiscal_id","definicion":"`dato_fiscal_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"requiere_factura","definicion":"`requiere_factura` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"factura_rfc","definicion":"`factura_rfc` varchar(13) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(13)","nulo":true},{"nombre":"factura_razon_social","definicion":"`factura_razon_social` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"factura_cp","definicion":"`factura_cp` varchar(5) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(5)","nulo":true},{"nombre":"factura_email","definicion":"`factura_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"latitud","definicion":"`latitud` decimal(10,8) DEFAULT NULL","tipo":"decimal(10,8)","nulo":true},{"nombre":"longitud","definicion":"`longitud` decimal(11,8) DEFAULT NULL","tipo":"decimal(11,8)","nulo":true},{"nombre":"precision_gps","definicion":"`precision_gps` decimal(6,2) DEFAULT NULL","tipo":"decimal(6,2)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"unique_folio","tipo":"unique","definicion":"UNIQUE KEY `unique_folio` (`folio`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_usuario","tipo":"index","definicion":"KEY `idx_usuario` (`usuario_id`)"},{"nombre":"idx_estado","tipo":"index","definicion":"KEY `idx_estado` (`estado`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_creacion`)"},{"nombre":"idx_estatus_pago","tipo":"index","definicion":"KEY `idx_estatus_pago` (`estatus_pago`)"},{"nombre":"idx_caja_id","tipo":"index","definicion":"KEY `idx_caja_id` (`caja_id`)"},{"nombre":"idx_ventas_saldo","tipo":"index","definicion":"KEY `idx_ventas_saldo` (`saldo_pendiente`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"idx_ventas_corte","tipo":"index","definicion":"KEY `idx_ventas_corte` (`corte_id`)"},{"nombre":"idx_ventas_cxc","tipo":"index","definicion":"KEY `idx_ventas_cxc` (`cliente_id`,`estatus_pago`,`metodo_pago`(191))"},{"nombre":"idx_fecha_preparado","tipo":"index","definicion":"KEY `idx_fecha_preparado` (`fecha_preparado`)"},{"nombre":"idx_fecha_entregado","tipo":"index","definicion":"KEY `idx_fecha_entregado` (`fecha_entregado`)"},{"nombre":"idx_corte_id","tipo":"index","definicion":"KEY `idx_corte_id` (`corte_id`)"},{"nombre":"fk_ventas_caja","tipo":"foreign","definicion":"CONSTRAINT `fk_ventas_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE SET NULL"},{"nombre":"ventas_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `ventas_ibfk_1` FOREIGN KEY (`cliente_id`) REFERENCES `clientes` (`id`) ON DELETE SET NULL"},{"nombre":"ventas_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `ventas_ibfk_2` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`)"}]},"ventas_ediciones_log":{"create":"CREATE TABLE `ventas_ediciones_log` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_id` int(11) NOT NULL,\n  `origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ventas',\n  `usuario_id` int(11) DEFAULT NULL,\n  `usuario_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_edicion` datetime NOT NULL DEFAULT current_timestamp(),\n  `datos_anteriores` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `datos_nuevos` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cambios_resumen` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  PRIMARY KEY (`id`),\n  KEY `idx_venta_id` (`venta_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"origen","definicion":"`origen` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ventas'","tipo":"varchar(20)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"fecha_edicion","definicion":"`fecha_edicion` datetime NOT NULL DEFAULT current_timestamp()","tipo":"datetime","nulo":false},{"nombre":"datos_anteriores","definicion":"`datos_anteriores` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"datos_nuevos","definicion":"`datos_nuevos` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"longtext","nulo":true},{"nombre":"cambios_resumen","definicion":"`cambios_resumen` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta_id","tipo":"index","definicion":"KEY `idx_venta_id` (`venta_id`)"}]},"ventas_mostrador":{"create":"CREATE TABLE `ventas_mostrador` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `codigo_facturacion` varchar(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `emisor_id` int(11) DEFAULT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `caja_id` int(11) DEFAULT NULL,\n  `subtotal` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `impuesto` decimal(10,2) DEFAULT 0.00,\n  `descuento` decimal(10,2) DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL,\n  `saldo_pendiente` decimal(10,2) DEFAULT 0.00,\n  `metodo_pago` enum('efectivo','tarjeta','tarjeta_credito','tarjeta_debito','transferencia','credito','mixto') COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `estatus_pago` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT 'pagado',\n  `facturado` tinyint(1) DEFAULT 0,\n  `observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `fecha_actualizacion` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),\n  `cliente_id` int(11) DEFAULT NULL,\n  `cliente_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `corte_id` int(11) DEFAULT NULL,\n  `aplica_comision` tinyint(1) DEFAULT 0 COMMENT 'Si la venta aplica comision por tarjeta',\n  `comision_porcentaje` decimal(5,2) DEFAULT 0.00 COMMENT 'Porcentaje de comision aplicado',\n  `comision_monto` decimal(10,2) DEFAULT 0.00 COMMENT 'Monto de la comision',\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  UNIQUE KEY `folio` (`folio`),\n  UNIQUE KEY `codigo_facturacion` (`codigo_facturacion`),\n  KEY `idx_usuario_id` (`usuario_id`),\n  KEY `idx_fecha_creacion` (`fecha_creacion`),\n  KEY `idx_metodo_pago` (`metodo_pago`),\n  KEY `idx_estatus_pago` (`estatus_pago`),\n  KEY `idx_ventas_mostrador_fecha_usuario` (`fecha_creacion`,`usuario_id`),\n  KEY `idx_ventas_mostrador_total` (`total`),\n  KEY `idx_vm_caja_id` (`caja_id`),\n  KEY `idx_corte` (`corte_id`),\n  KEY `idx_ventas_mostrador_facturado` (`facturado`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_ventas_mostrador_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE SET NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"folio","definicion":"`folio` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(20)","nulo":false},{"nombre":"codigo_facturacion","definicion":"`codigo_facturacion` varchar(8) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(8)","nulo":true},{"nombre":"emisor_id","definicion":"`emisor_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(100)","nulo":false},{"nombre":"caja_id","definicion":"`caja_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"saldo_pendiente","definicion":"`saldo_pendiente` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"metodo_pago","definicion":"`metodo_pago` enum('efectivo','tarjeta','tarjeta_credito','tarjeta_debito','transferencia','credito','mixto') COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"enum('efectivo','tarjeta','tarjeta_credito','tarjeta_debito','transferencia','credito','mixto')","nulo":true},{"nombre":"estatus_pago","definicion":"`estatus_pago` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT 'pagado'","tipo":"varchar(50)","nulo":true},{"nombre":"facturado","definicion":"`facturado` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"observaciones","definicion":"`observaciones` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"fecha_actualizacion","definicion":"`fecha_actualizacion` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp()","tipo":"timestamp","nulo":true},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"cliente_nombre","definicion":"`cliente_nombre` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"corte_id","definicion":"`corte_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"aplica_comision","definicion":"`aplica_comision` tinyint(1) DEFAULT 0 COMMENT 'Si la venta aplica comision por tarjeta'","tipo":"tinyint(1)","nulo":true},{"nombre":"comision_porcentaje","definicion":"`comision_porcentaje` decimal(5,2) DEFAULT 0.00 COMMENT 'Porcentaje de comision aplicado'","tipo":"decimal(5,2)","nulo":true},{"nombre":"comision_monto","definicion":"`comision_monto` decimal(10,2) DEFAULT 0.00 COMMENT 'Monto de la comision'","tipo":"decimal(10,2)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"folio","tipo":"unique","definicion":"UNIQUE KEY `folio` (`folio`)"},{"nombre":"codigo_facturacion","tipo":"unique","definicion":"UNIQUE KEY `codigo_facturacion` (`codigo_facturacion`)"},{"nombre":"idx_usuario_id","tipo":"index","definicion":"KEY `idx_usuario_id` (`usuario_id`)"},{"nombre":"idx_fecha_creacion","tipo":"index","definicion":"KEY `idx_fecha_creacion` (`fecha_creacion`)"},{"nombre":"idx_metodo_pago","tipo":"index","definicion":"KEY `idx_metodo_pago` (`metodo_pago`)"},{"nombre":"idx_estatus_pago","tipo":"index","definicion":"KEY `idx_estatus_pago` (`estatus_pago`)"},{"nombre":"idx_ventas_mostrador_fecha_usuario","tipo":"index","definicion":"KEY `idx_ventas_mostrador_fecha_usuario` (`fecha_creacion`,`usuario_id`)"},{"nombre":"idx_ventas_mostrador_total","tipo":"index","definicion":"KEY `idx_ventas_mostrador_total` (`total`)"},{"nombre":"idx_vm_caja_id","tipo":"index","definicion":"KEY `idx_vm_caja_id` (`caja_id`)"},{"nombre":"idx_corte","tipo":"index","definicion":"KEY `idx_corte` (`corte_id`)"},{"nombre":"idx_ventas_mostrador_facturado","tipo":"index","definicion":"KEY `idx_ventas_mostrador_facturado` (`facturado`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_ventas_mostrador_caja","tipo":"foreign","definicion":"CONSTRAINT `fk_ventas_mostrador_caja` FOREIGN KEY (`caja_id`) REFERENCES `cajas` (`id`) ON DELETE SET NULL"}]},"ventas_mostrador_detalles":{"create":"CREATE TABLE `ventas_mostrador_detalles` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_mostrador_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cantidad` decimal(10,2) NOT NULL,\n  `precio_unitario` decimal(12,4) NOT NULL,\n  `subtotal` decimal(10,2) NOT NULL,\n  `impuesto` decimal(10,2) DEFAULT 0.00,\n  `descuento` decimal(10,2) DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `cantidad_devuelta` decimal(10,2) DEFAULT 0.00,\n  `precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista' COMMENT 'Tipo de precio usado',\n  `comentario` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `costo` decimal(12,4) DEFAULT 0.0000,\n  `costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Tipo de  \\r\\n  costo usado: precio_compra o costo_precios',\n  `aplica_comision` tinyint(1) DEFAULT 0 COMMENT 'Si este producto aplica comision',\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_venta_mostrador_id` (`venta_mostrador_id`),\n  KEY `idx_producto_id` (`producto_id`),\n  KEY `idx_updated_at` (`updated_at`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_mostrador_id","definicion":"`venta_mostrador_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_nombre","definicion":"`producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,4) NOT NULL","tipo":"decimal(12,4)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"cantidad_devuelta","definicion":"`cantidad_devuelta` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"precio_tipo","definicion":"`precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista' COMMENT 'Tipo de precio usado'","tipo":"varchar(20)","nulo":true},{"nombre":"comentario","definicion":"`comentario` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"costo","definicion":"`costo` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"costo_tipo","definicion":"`costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Tipo de  \\r\\n  costo usado: precio_compra o costo_precios'","tipo":"varchar(20)","nulo":true},{"nombre":"aplica_comision","definicion":"`aplica_comision` tinyint(1) DEFAULT 0 COMMENT 'Si este producto aplica comision'","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta_mostrador_id","tipo":"index","definicion":"KEY `idx_venta_mostrador_id` (`venta_mostrador_id`)"},{"nombre":"idx_producto_id","tipo":"index","definicion":"KEY `idx_producto_id` (`producto_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"}]},"ventas_mostrador_pagos":{"create":"CREATE TABLE `ventas_mostrador_pagos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_mostrador_id` int(11) NOT NULL,\n  `metodo_pago` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `monto` decimal(10,2) NOT NULL,\n  `es_abono_cxc` tinyint(1) DEFAULT 0,\n  `registrado_por` int(11) DEFAULT NULL,\n  `notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_venta_mostrador_id` (`venta_mostrador_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_ventas_mostrador_pagos_venta` FOREIGN KEY (`venta_mostrador_id`) REFERENCES `ventas_mostrador` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_mostrador_id","definicion":"`venta_mostrador_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(250)","nulo":false},{"nombre":"monto","definicion":"`monto` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"es_abono_cxc","definicion":"`es_abono_cxc` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"registrado_por","definicion":"`registrado_por` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"notas","definicion":"`notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"referencia","definicion":"`referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta_mostrador_id","tipo":"index","definicion":"KEY `idx_venta_mostrador_id` (`venta_mostrador_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_ventas_mostrador_pagos_venta","tipo":"foreign","definicion":"CONSTRAINT `fk_ventas_mostrador_pagos_venta` FOREIGN KEY (`venta_mostrador_id`) REFERENCES `ventas_mostrador` (`id`) ON DELETE CASCADE"}]},"venta_detalles":{"create":"CREATE TABLE `venta_detalles` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_id` int(11) NOT NULL,\n  `producto_id` int(11) NOT NULL,\n  `producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `cantidad` decimal(10,2) NOT NULL,\n  `estatus_preparacion` enum('pendiente','preparado','sin_existencia') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente',\n  `marcado_sin_stock` tinyint(1) NOT NULL DEFAULT 0,\n  `cantidad_escaneada` int(11) NOT NULL DEFAULT 0,\n  `cantidad_devuelta` decimal(10,2) DEFAULT 0.00,\n  `precio_unitario` decimal(12,4) NOT NULL,\n  `subtotal` decimal(10,2) NOT NULL,\n  `impuesto` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `descuento` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL,\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista',\n  `comentario` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `costo` decimal(12,4) DEFAULT 0.0000,\n  `costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Tipo de costo usado: precio_compra o costo_precios',\n  `aplica_comision` tinyint(1) DEFAULT 0,\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_venta` (`venta_id`),\n  KEY `idx_producto` (`producto_id`),\n  KEY `idx_estatus_preparacion` (`estatus_preparacion`),\n  KEY `idx_cantidad_escaneada` (`cantidad_escaneada`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `venta_detalles_ibfk_1` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON DELETE CASCADE,\n  CONSTRAINT `venta_detalles_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_id","definicion":"`producto_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"producto_nombre","definicion":"`producto_nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"cantidad","definicion":"`cantidad` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"estatus_preparacion","definicion":"`estatus_preparacion` enum('pendiente','preparado','sin_existencia') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pendiente'","tipo":"enum('pendiente','preparado','sin_existencia')","nulo":false},{"nombre":"marcado_sin_stock","definicion":"`marcado_sin_stock` tinyint(1) NOT NULL DEFAULT 0","tipo":"tinyint(1)","nulo":false},{"nombre":"cantidad_escaneada","definicion":"`cantidad_escaneada` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"cantidad_devuelta","definicion":"`cantidad_devuelta` decimal(10,2) DEFAULT 0.00","tipo":"decimal(10,2)","nulo":true},{"nombre":"precio_unitario","definicion":"`precio_unitario` decimal(12,4) NOT NULL","tipo":"decimal(12,4)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"precio_tipo","definicion":"`precio_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'precio_lista'","tipo":"varchar(20)","nulo":true},{"nombre":"comentario","definicion":"`comentario` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(255)","nulo":true},{"nombre":"costo","definicion":"`costo` decimal(12,4) DEFAULT 0.0000","tipo":"decimal(12,4)","nulo":true},{"nombre":"costo_tipo","definicion":"`costo_tipo` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Tipo de costo usado: precio_compra o costo_precios'","tipo":"varchar(20)","nulo":true},{"nombre":"aplica_comision","definicion":"`aplica_comision` tinyint(1) DEFAULT 0","tipo":"tinyint(1)","nulo":true},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta","tipo":"index","definicion":"KEY `idx_venta` (`venta_id`)"},{"nombre":"idx_producto","tipo":"index","definicion":"KEY `idx_producto` (`producto_id`)"},{"nombre":"idx_estatus_preparacion","tipo":"index","definicion":"KEY `idx_estatus_preparacion` (`estatus_preparacion`)"},{"nombre":"idx_cantidad_escaneada","tipo":"index","definicion":"KEY `idx_cantidad_escaneada` (`cantidad_escaneada`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"venta_detalles_ibfk_1","tipo":"foreign","definicion":"CONSTRAINT `venta_detalles_ibfk_1` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON DELETE CASCADE"},{"nombre":"venta_detalles_ibfk_2","tipo":"foreign","definicion":"CONSTRAINT `venta_detalles_ibfk_2` FOREIGN KEY (`producto_id`) REFERENCES `productos` (`id`)"}]},"venta_pagos":{"create":"CREATE TABLE `venta_pagos` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `venta_id` int(11) NOT NULL COMMENT 'Referencia a la venta',\n  `tipo_venta` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'venta',\n  `monto` decimal(10,2) NOT NULL COMMENT 'Monto del pago\/abono',\n  `metodo_pago` enum('efectivo','tarjeta','transferencia') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo',\n  `referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'N\u251c\u2551mero de referencia\/transacci\u251c\u2502n',\n  `notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Notas adicionales del pago',\n  `registrado_por` int(11) NOT NULL COMMENT 'Usuario que registr\u251c\u2502 el pago',\n  `pago_cliente_id` int(11) DEFAULT NULL,\n  `fecha_pago` datetime NOT NULL DEFAULT current_timestamp() COMMENT 'Fecha y hora del pago',\n  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_venta_pagos_venta` (`venta_id`),\n  KEY `idx_venta_pagos_fecha` (`fecha_pago`),\n  KEY `idx_venta_pagos_usuario` (`registrado_por`),\n  KEY `idx_pago_cliente` (`pago_cliente_id`),\n  KEY `idx_updated_at` (`updated_at`),\n  CONSTRAINT `fk_venta_pago_cliente` FOREIGN KEY (`pago_cliente_id`) REFERENCES `pagos_clientes` (`id`) ON DELETE SET NULL,\n  CONSTRAINT `fk_venta_pagos_usuario` FOREIGN KEY (`registrado_por`) REFERENCES `usuarios` (`id`) ON UPDATE CASCADE,\n  CONSTRAINT `fk_venta_pagos_venta` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON UPDATE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Historial de pagos\/abonos de ventas a cr\u251c\u00aedito'","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"venta_id","definicion":"`venta_id` int(11) NOT NULL COMMENT 'Referencia a la venta'","tipo":"int(11)","nulo":false},{"nombre":"tipo_venta","definicion":"`tipo_venta` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'venta'","tipo":"varchar(20)","nulo":true},{"nombre":"monto","definicion":"`monto` decimal(10,2) NOT NULL COMMENT 'Monto del pago\/abono'","tipo":"decimal(10,2)","nulo":false},{"nombre":"metodo_pago","definicion":"`metodo_pago` enum('efectivo','tarjeta','transferencia') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'efectivo'","tipo":"enum('efectivo','tarjeta','transferencia')","nulo":false},{"nombre":"referencia","definicion":"`referencia` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'N\u251c\u2551mero de referencia\/transacci\u251c\u2502n'","tipo":"varchar(100)","nulo":true},{"nombre":"notas","definicion":"`notas` text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Notas adicionales del pago'","tipo":"text","nulo":true},{"nombre":"registrado_por","definicion":"`registrado_por` int(11) NOT NULL COMMENT 'Usuario que registr\u251c\u2502 el pago'","tipo":"int(11)","nulo":false},{"nombre":"pago_cliente_id","definicion":"`pago_cliente_id` int(11) DEFAULT NULL","tipo":"int(11)","nulo":true},{"nombre":"fecha_pago","definicion":"`fecha_pago` datetime NOT NULL DEFAULT current_timestamp() COMMENT 'Fecha y hora del pago'","tipo":"datetime","nulo":false},{"nombre":"fecha_creacion","definicion":"`fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_venta_pagos_venta","tipo":"index","definicion":"KEY `idx_venta_pagos_venta` (`venta_id`)"},{"nombre":"idx_venta_pagos_fecha","tipo":"index","definicion":"KEY `idx_venta_pagos_fecha` (`fecha_pago`)"},{"nombre":"idx_venta_pagos_usuario","tipo":"index","definicion":"KEY `idx_venta_pagos_usuario` (`registrado_por`)"},{"nombre":"idx_pago_cliente","tipo":"index","definicion":"KEY `idx_pago_cliente` (`pago_cliente_id`)"},{"nombre":"idx_updated_at","tipo":"index","definicion":"KEY `idx_updated_at` (`updated_at`)"},{"nombre":"fk_venta_pago_cliente","tipo":"foreign","definicion":"CONSTRAINT `fk_venta_pago_cliente` FOREIGN KEY (`pago_cliente_id`) REFERENCES `pagos_clientes` (`id`) ON DELETE SET NULL"},{"nombre":"fk_venta_pagos_usuario","tipo":"foreign","definicion":"CONSTRAINT `fk_venta_pagos_usuario` FOREIGN KEY (`registrado_por`) REFERENCES `usuarios` (`id`) ON UPDATE CASCADE"},{"nombre":"fk_venta_pagos_venta","tipo":"foreign","definicion":"CONSTRAINT `fk_venta_pagos_venta` FOREIGN KEY (`venta_id`) REFERENCES `ventas` (`id`) ON UPDATE CASCADE"}]},"visitas_sin_compra":{"create":"CREATE TABLE `visitas_sin_compra` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `app_visita_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `cliente_id` int(11) NOT NULL,\n  `cliente_nombre` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `usuario_id` int(11) NOT NULL,\n  `usuario_nombre` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `motivo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `notas` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `latitud` decimal(10,8) DEFAULT NULL,\n  `longitud` decimal(11,8) DEFAULT NULL,\n  `precision_gps` decimal(6,2) DEFAULT NULL,\n  `fecha_visita` datetime NOT NULL DEFAULT current_timestamp(),\n  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),\n  `updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),\n  PRIMARY KEY (`id`),\n  KEY `idx_cliente` (`cliente_id`),\n  KEY `idx_usuario` (`usuario_id`),\n  KEY `idx_fecha` (`fecha_visita`),\n  KEY `idx_app_id` (`app_visita_id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL AUTO_INCREMENT","tipo":"int(11)","nulo":false},{"nombre":"app_visita_id","definicion":"`app_visita_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"varchar(100)","nulo":true},{"nombre":"cliente_id","definicion":"`cliente_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"cliente_nombre","definicion":"`cliente_nombre` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"usuario_id","definicion":"`usuario_id` int(11) NOT NULL","tipo":"int(11)","nulo":false},{"nombre":"usuario_nombre","definicion":"`usuario_nombre` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"motivo","definicion":"`motivo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL","tipo":"varchar(255)","nulo":false},{"nombre":"notas","definicion":"`notas` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL","tipo":"text","nulo":true},{"nombre":"latitud","definicion":"`latitud` decimal(10,8) DEFAULT NULL","tipo":"decimal(10,8)","nulo":true},{"nombre":"longitud","definicion":"`longitud` decimal(11,8) DEFAULT NULL","tipo":"decimal(11,8)","nulo":true},{"nombre":"precision_gps","definicion":"`precision_gps` decimal(6,2) DEFAULT NULL","tipo":"decimal(6,2)","nulo":true},{"nombre":"fecha_visita","definicion":"`fecha_visita` datetime NOT NULL DEFAULT current_timestamp()","tipo":"datetime","nulo":false},{"nombre":"created_at","definicion":"`created_at` timestamp NOT NULL DEFAULT current_timestamp()","tipo":"timestamp","nulo":false},{"nombre":"updated_at","definicion":"`updated_at` datetime(6) DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6)","tipo":"datetime(6)","nulo":true}],"indices":[{"nombre":"PRIMARY","tipo":"primary","definicion":"PRIMARY KEY (`id`)"},{"nombre":"idx_cliente","tipo":"index","definicion":"KEY `idx_cliente` (`cliente_id`)"},{"nombre":"idx_usuario","tipo":"index","definicion":"KEY `idx_usuario` (`usuario_id`)"},{"nombre":"idx_fecha","tipo":"index","definicion":"KEY `idx_fecha` (`fecha_visita`)"},{"nombre":"idx_app_id","tipo":"index","definicion":"KEY `idx_app_id` (`app_visita_id`)"}]},"_bkp_ventas_subtotal_migracion":{"create":"CREATE TABLE `_bkp_ventas_subtotal_migracion` (\n  `id` int(11) NOT NULL DEFAULT 0,\n  `subtotal` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `impuesto` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `descuento` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL DEFAULT 0.00\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false}],"indices":[]},"_bkp_venta_detalles_subtotal_migracion":{"create":"CREATE TABLE `_bkp_venta_detalles_subtotal_migracion` (\n  `id` int(11) NOT NULL DEFAULT 0,\n  `subtotal` decimal(10,2) NOT NULL,\n  `impuesto` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `descuento` decimal(10,2) NOT NULL DEFAULT 0.00,\n  `total` decimal(10,2) NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4","columnas":[{"nombre":"id","definicion":"`id` int(11) NOT NULL DEFAULT 0","tipo":"int(11)","nulo":false},{"nombre":"subtotal","definicion":"`subtotal` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false},{"nombre":"impuesto","definicion":"`impuesto` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"descuento","definicion":"`descuento` decimal(10,2) NOT NULL DEFAULT 0.00","tipo":"decimal(10,2)","nulo":false},{"nombre":"total","definicion":"`total` decimal(10,2) NOT NULL","tipo":"decimal(10,2)","nulo":false}],"indices":[]}},"vistas":["vista_categorias"],"triggers":["trg_editado_nube_cotizaciones","trg_editado_nube_cotizaciones_detalles"],"base":"pos_abarrotes_ginez","generado":"2026-09-26 20:50:41","motor":"5.5.5-10.4.14-MariaDB"}