# Mapa Maestro de Arquitectura

## Corazon del sistema

- `admin/index.php`
- `admin/config.php`, `config.inc.php`, `config.db.php`, `config.security.php`, `config.csrf-secret.php`
- `admin/includes/main/WebUI.php`
- `admin/includes/Loader.php`
- `admin/includes/http/Request.php`, `Response.php`, `Session.php`
- `admin/includes/runtime/Controller.php`, `Viewer.php`, `EntryPoint.php`
- `admin/include/database/PearDatabase.php`
- `admin/include/utils/`
- `admin/modules/Vtiger/`
- `admin/modules/Users/`
- `admin/user_privileges/`
- `admin/vtlib/`
- `admin/vendor/`

## No tocar sin respaldo y plan

- `config*.php`
- `modules/Users`, `Settings`, `Vtiger`, `Inventory`, `Accounts`, `Products`, `Services`, `Quotes`, `SalesOrder`, `Invoice`
- `include/`, `includes/`, `vtlib/`
- `vendor/`, `libraries/`
- `layouts/v7/`
- `storage/`, `user_privileges/`, `cron/`
- Personalizados: `GeoCuentas`, `Logistica`, `WSAPP`

## Auditable para limpieza controlada

- `admin/gravimex.zip`
- `cache/*.zip`
- `packages/**/*.zip`
- `libraries/jquery/pdfjs/web/web.tar*`
- `test/`
- `migrate/`
- `pkg/`
- archivos `*_deprecated`

## Revisar antes de personalizar

- Fallbacks de `Vtiger_Loader` para evitar sobrescribir core.
- `vtlib_handler` de modulos personalizados.
- `tabdata.php`/`parent_tabdata.php` y estado real en DB.
- ACL en `Users_Privileges_Model` y `requiresPermission()` de acciones nuevas.
- Templates `layouts/v7/modules/Vtiger` antes de copiar vistas.
- Cron/workflows si la personalizacion tiene side effects.

## Modulos mas criticos Gravimex

1. Accounts, por relacion cliente y GeoCuentas.
2. Products/Services/Inventory, por cotizacion/facturacion.
3. Quotes/SalesOrder/Invoice/PurchaseOrder, por flujo comercial.
4. Users/Settings, por seguridad y configuracion.
5. Logistica/GeoCuentas/WSAPP, por personalizaciones y conexiones externas.
