# `_Systems/` — Plantillas base de sistemas vendibles

Esta carpeta vive **al mismo nivel** que `Multi_Empresa/` (sibling), no
adentro. Contiene la versión limpia de cada sistema que puedes vender
desde el panel **New System Client**.

## Por qué fuera de Multi_Empresa

- **Separación** entre código de la app (Multi_Empresa) y plantillas
- **Backups** simples: puedes excluir `_Systems/` del backup nocturno
  porque las plantillas no cambian con el uso diario
- **Visualmente clara** en FTP: ves de un vistazo qué sistemas están
  disponibles para vender

## Estructura esperada

```
csnapps.com/
├── Multi_Empresa/              ← panel super admin
├── _Systems/                   ← ESTA carpeta
│   ├── _README.md              ← este archivo
│   ├── Trucking-base/
│   │   ├── BackEnd/
│   │   ├── FrontEnd/
│   │   ├── Includes/
│   │   ├── ... (todos los archivos del sistema, limpios)
│   │   └── install.sql         ← schema vacío (CREATE TABLE only)
│   ├── Daycare-base/
│   │   ├── ... 
│   │   └── install.sql
│   ├── Produce-base/
│   ├── OfficeAdmin-base/       ← (TaxServices, vendido como "Office Admin")
│   └── GeneralSales-base/      ← (Genesys Construction, vendido como "General Sales")
│
├── Trucking/                   ← sistema operativo (NO TOCAR)
├── Daycare/                    ← sistema operativo (NO TOCAR)
├── ... (otros sistemas vendidos)
```

## Cómo generar `install.sql` para cada sistema

Ejecuta `mysqldump --no-data` en una BD limpia del sistema:

```bash
# Trucking
mysqldump --no-data --skip-comments --skip-add-drop-table \
  trucking_db > _Systems/Trucking-base/install.sql

# Daycare
mysqldump --no-data --skip-comments --skip-add-drop-table \
  daycare_db > _Systems/Daycare-base/install.sql

# Produce
mysqldump --no-data --skip-comments --skip-add-drop-table \
  jv_produce_db > _Systems/Produce-base/install.sql

# Office Admin (TaxServices)
mysqldump --no-data --skip-comments --skip-add-drop-table \
  griceldatax_db > _Systems/OfficeAdmin-base/install.sql

# General Sales (Genesys Construction)
mysqldump --no-data --skip-comments --skip-add-drop-table \
  general_sales > _Systems/GeneralSales-base/install.sql
```

## Cómo subir los archivos del sistema

Para cada sistema, sube por FTP los archivos **limpios** (sin recibos
escaneados, sin logos personalizados, sin datos del cliente). El motor
de provisioning copiará todos los archivos verbatim a la nueva carpeta
del cliente, **excepto** `install.sql` (que solo se usa para cargar
la BD).

## Config files que se patchea automáticamente

El motor cambia el `define('DB_NAME', '...')` en estos archivos:

| Sistema         | Config file                  |
|-----------------|------------------------------|
| Trucking        | `Includes/DbConnect.php`     |
| Daycare         | `Include/IncDb.php`          |
| Produce         | `Includes/IncDatabase.php`   |
| Office Admin    | `Includes/config.php`        |
| General Sales   | `Main_Php/Bkeconfig.php`     |

Asegúrate de que en cada `_Systems/<sistema>-base/` exista el archivo
de config con `define('DB_NAME', '...')` — el motor lo sobreescribe
automáticamente con la BD del cliente nuevo.

## Cómo sé que está bien instalado

1. Abre `admin_new_client_catalog.php` en Multi_Empresa
2. Cada sistema con `_Systems/<sistema>-base/install.sql` aparecerá
   como **✅ Template ready**
3. Los que falten aparecerán como **⚠️ Template missing**

## Actualizar una plantilla

Si mejoras un sistema (por ej. agregas un módulo nuevo en Trucking),
sube los archivos actualizados a `_Systems/Trucking-base/`. **Los
clientes ya vendidos NO se actualizan automáticamente** — solo los
clientes nuevos heredarán la mejora. Para clientes existentes tienes
que hacer un upgrade manual.

## Importante: NO TOCAR sistemas operativos

`_Systems/` solo contiene plantillas. Los sistemas vendidos (Trucking,
Daycare, TaxServices, Jv_Produce, Genesys_Construction, Csn_Income,
Infant_Town, Rainbow_Daycare, Rainbow_Income, VME_Trucking) viven en
sus propias carpetas al nivel de `csnapps.com/` y **no se ven afectados**
por nada de lo que hagas dentro de `_Systems/`.
