Primer commit del sistema avantika sin cambios

This commit is contained in:
2026-01-06 19:42:24 -06:00
commit 3ae4be5957
7127 changed files with 440072 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
# Análisis de Base de Datos - Sistema Multi-Empresa
## Estructura de Bases de Datos Identificada
### Base de Datos Principal: `avantikads_nmgen`
**Propósito:** Base de datos master/global del sistema
**Tablas clave:**
- `empresa` - Catálogo de empresas (empresaId como PK)
- `usuario` - Usuarios del sistema con empresaId asociado
- Configuración global y shared resources
### Base de Datos de Empresa: `avantikads_nm15`
**Propósito:** Datos específicos de empresa con ID 15
**Contenido:** Tablas operativas como:
- `_prodSinInv` - Productos sin inventario
- Todas las tablas transaccionales de la empresa 15
## Arquitectura Multi-Empresa Confirmada
### Estructura Validada
```
avantikads_nmgen (Master DB)
├── empresa (empresaId, activo, datos generales)
├── usuario (usuarioId, empresaId, datos usuario)
└── [Tablas globales]
avantikads_nm{empresaId} (Empresa-specific DB)
├── _prodSinInv
├── productos
├── pedidos
├── ventas
└── [Todas las tablas operativas]
```
### Flujo de Autenticación y Selección
1. **Usuario inicia sesión** → Conexión a `avantikads_nmgen`
2. **Validación de credenciales** en tabla `usuario`
3. **Obtención de empresaId** del registro del usuario
4. **Conexión dinámica** a `avantikads_nm{empresaId}`
5. **Operaciones en BD de la empresa específica**
## Implicaciones para la Migración
### 1. Base de Datos Master Obligatoria
- **Mantener `avantikads_nmgen` como master**
- **Función**: Autenticación y routing de empresas
- **Acceso**: Todos los usuarios se conectan primero aquí
### 2. Configuración Dinámica por empresaId
- **Patón confirmado**: `SQL_DATABASE2 . empresaId`
- **Ejemplo real**: `avantikads_nm15` para empresaId = 15
- **Necesidad**: Routing automático basado en usuario
### 3. Archivos de Configuración Adicionales
#### `/base_datos/` - Esquemas de Referencia
- `avantikads_nmgen.sql` - Estructura master
- `avantikads_nm15.sql` - Ejemplo estructura empresa
- **Uso**: Validar estructura durante migración
## Actualizaciones al Plan de Migración
### Configuración .env - Ajustes Necesarios
#### Variables de Conexión Master
```env
# Base de datos Master (global para autenticación)
DB_MASTER_HOST=localhost
DB_MASTER_DATABASE=avantikads_nmgen
DB_MASTER_USER=admin_user
DB_MASTER_PASSWORD=secure_master_password
# Prefijo para bases de datos de empresas
DB_EMPRESA_PREFIX=avantikads_nm
```
#### Lógica de Conexión por Empresa
```php
// Función actualizada en ejemplo-env-config.php
public static function getDatabaseConfig($empresaId) {
$masterConfig = [
'database' => $_ENV['DB_MASTER_DATABASE'] . '_' . $empresaId
];
// Validar que exista la base de datos
if (!self::validateDatabaseExists($masterConfig['database'])) {
throw new Exception("Base de datos no existe: " . $masterConfig['database']);
}
return $masterConfig;
}
```
### Validaciones de Migración
#### 1. Verificación de Estructura
- Comparar esquemas actuales con archivos en `/base_datos/`
- Validar que todas las tablas requeridas existan
- Verificar integridad de datos por empresa
#### 2. Testing Multi-Empresa
- Crear usuarios de prueba para diferentes empresas
- Validar routing correcto de conexiones
- Probar aislamiento de datos entre empresas
#### 3. Migración Gradual
- Iniciar con empresa 15 (tenemos su esquema)
- Validar funcionamiento completo
- Extender a otras empresas
## Archivos de Migración Adicionales
### `/base_datos/` - Incluir en plan
- **Mantener como referencia** durante migración
- **Usar para validación** de estructura post-migración
- **Documentar esquema** actual para comparación
### Scripts de Migración (Sugeridos)
- `migrar_master_db.php` - Migración base master
- `validar_esquemas.php` - Validación contra archivos SQL
- `test_multi_empresa.php` - Testing routing de conexiones
## Impacto en Estimación de Tiempo
### Tiempo Adicional Requerido
- **Validación de esquemas:** +5-10 horas
- **Testing multi-empresa:** +10-15 horas
- **Migración de datos:** +8-12 horas
- **Total adicional:** +23-37 horas
### Estimación Actualizada: 113-162 horas
## Recomendación
**La estructura `/base_datos/` confirma la arquitectura multi-empresa.**
El plan actualizado debe incluir validación específica contra estos esquemas para asegurar migración correcta.