==================================================
  GESTION WEB - Varias empresas (Opción A)
==================================================

IDEA
----
Una sola copia de CÓDIGO (esta carpeta) atiende a varias empresas.
Cada empresa corre como un SERVICIO de Windows aparte, en su propio
PUERTO, y usa su propia CARPETA DE DATOS (conexiones, claves, configs,
cachés y logos separados). Así quedan totalmente aisladas.

Para que entren por una sola URL bonita (https://empresaX.tudominio.cl)
se pone un "reverse proxy" (Caddy) delante. Ver Caddyfile.ejemplo.


CÓMO FUNCIONA (la variable GW_DATA_DIR)
---------------------------------------
- Si NO defines GW_DATA_DIR, la app usa esta misma carpeta (modo de
  siempre, una empresa).
- Si defines GW_DATA_DIR=C:\gw\datos\empresa1, la app leerá/escribirá
  TODOS sus datos en esa carpeta: conexiones.json, .secret.key,
  smtp_config.json, ftp_config.json, app_config.json, empresa.json,
  logos_bd.json, logo_*.*, cachés, etc.
- El CÓDIGO y los estáticos (app.py, cotizaciones.html, íconos,
  HISTORIAL) se comparten desde esta carpeta.


PASOS PARA AGREGAR EMPRESAS
---------------------------
ATAJO (crea todas las carpetas de una vez):
     crear_empresas.bat  C:\gw\datos  empresa1 empresa2 empresa3 empresa4 empresa5
  Esto crea cada carpeta y copia dentro .secret.key y conexiones.json.
  Luego ve directo al paso 3.

Manual (una empresa):
1. Crea su carpeta de datos, p. ej.:  C:\gw\datos\empresa1
2. Copia DENTRO de esa carpeta:
     - .secret.key        (usa el MISMO de siempre para descifrar claves)
     - conexiones.json    (con la conexión de ESA empresa como activa)
   Opcional (si esa empresa los usa):
     - smtp_config.json, ftp_config.json, app_config.json, empresa.json,
       logos_bd.json y sus logo_*.png/.jpg
   (Si no copias alguno, se crea con valores por defecto la primera vez.)
3. Instala el servicio (como ADMINISTRADOR), indicando nombre, puerto y carpeta:
     servicio_instalar_empresa.bat  empresa1  8001  C:\gw\datos\empresa1
4. Repite para cada empresa cambiando nombre/puerto/carpeta:
     servicio_instalar_empresa.bat  empresa2  8002  C:\gw\datos\empresa2
     servicio_instalar_empresa.bat  empresa3  8003  C:\gw\datos\empresa3
     ...
5. En cada empresa entra a Parámetros -> Conexiones y deja ACTIVA la
   conexión que corresponde a esa empresa.
6. Abre el firewall para los puertos usados (8001..8005) si entran por IP.

Acceso directo por puerto:  http://IP-DEL-SERVIDOR:8001  (empresa1), etc.


UNA SOLA URL POR EMPRESA (opcional, con Caddy)
----------------------------------------------
1. Descarga caddy.exe (https://caddyserver.com/download) al servidor.
2. Crea un archivo "Caddyfile" (sin extensión) basado en Caddyfile.ejemplo,
   mapeando cada subdominio a su puerto.
3. Que el DNS de tus subdominios apunte a la IP pública del servidor y
   abre los puertos 80 y 443. Ejecuta:  caddy run   (o  caddy start).
   Caddy gestiona los certificados HTTPS automáticamente.
   (Solo en red local, sin dominio público, usa HTTP por puerto.)


QUITAR UNA EMPRESA
------------------
   servicio_desinstalar_empresa.bat  empresa1
(La carpeta de datos NO se borra; elimínala a mano si quieres.)


NOTAS
-----
- El MISMO .secret.key debe estar en cada carpeta de datos para que las
  claves cifradas de conexiones.json se puedan descifrar. Lo más simple
  es copiar el .secret.key actual a todas.
- Cada empresa lleva su propio servicio.log dentro de su carpeta de datos.
- Para actualizar el sistema: reemplazas app.py / cotizaciones.html en
  ESTA carpeta de código y reinicias los servicios (uno por empresa).
- Limitación de esta modalidad: cada empresa es su propia URL/login; un
  mismo usuario que atienda 2 empresas entra por separado en cada una.
==================================================
