# Guía de Configuración Local - CRM Pro

Este documento detalla los pasos necesarios para levantar el proyecto CRM Pro (Backend y Frontend) en un entorno local.

---

## 🚀 Requisitos Previos

- **Backend**: Python 3.13+, MySQL 8.0+
- **Frontend**: Node.js v20 (usar `nvm`), npm
- **Base de Datos**: MySQL (XAMPP o similar)

---

## 🛠️ Configuración del Backend (Django)

1. **Ubicación**: `c:\xampp\htdocs\crm_dreinet`
2. **Entorno Virtual**:
   ```powershell
   python -m venv venv
   .\venv\Scripts\activate
   ```
3. **Instalar Dependencias**:
   ```bash
   pip install -r requirements.txt
   ```
4. **Archivo de Configuración (.env)**:
   - Copia `.env.example` a `.env`:
     ```bash
     cp .env.example .env
     ```
   - Configura tus credenciales de MySQL y la `SECRET_KEY`.
   - **Importante**: Para desarrollo local sin SSL, deja `CERT_FILE` y `KEY_FILE` vacíos.

5. **Base de Datos**:
   - Crea la base de datos `crm_dreinet` en MySQL.
   - Ejecuta las migraciones:
     ```bash
     python manage.py makemigrations
     python manage.py migrate
     ```
6. **Ejecutar**:
   ```bash
   python manage.py runserver
   ```
   *Nota: Si no se detectan certificados en el `.env`, el servidor iniciará en modo HTTP estándar.*

---

## 💻 Configuración del Frontend (Nuxt.js)

1. **Ubicación**: `c:\xampp\htdocs\crm_dreinet_front`
2. **Versión de Node**:
   ```bash
   nvm use v20
   ```
3. **Instalar Dependencias**:
   ```bash
   npm install --legacy-peer-deps
   ```
4. **Archivo de Configuración (.env)**:
   - Copia `.env.example` a `.env`:
     ```bash
     cp .env.example .env
     ```
   - Asegúrate de que `NUXT_PUBLIC_API_BASE` apunte a la URL de tu backend (ej: `http://localhost:8000/api`).

5. **Ejecutar**:
   ```bash
   npm run dev
   ```

---

## 🔒 Cambio entre HTTP y HTTPS (SSL)

El sistema detecta automáticamente si debe usar SSL basándose en la existencia de los certificados.

### Si usas Certificados (HTTPS/WSS):
1. En el `.env` del **Backend**, define `CERT_FILE` y `KEY_FILE` con rutas absolutas.
2. En el `.env` del **Frontend**, asegúrate de usar `https://` y `wss://`:
   ```bash
   NUXT_PUBLIC_API_BASE=https://localhost:8000/api
   NUXT_PUBLIC_WS_BASE=wss://localhost:8000
   ```

### Si NO usas Certificados (HTTP/WS):
1. En el `.env` del **Backend**, deja `CERT_FILE` y `KEY_FILE` vacíos.
2. En el `.env` del **Frontend**, usa `http://` y `ws://`:
   ```bash
   NUXT_PUBLIC_API_BASE=http://localhost:8000/api
   NUXT_PUBLIC_WS_BASE=ws://localhost:8000
   ```

---

## 📝 Notas Adicionales

- **Variables de Entorno**: Se ha centralizado la configuración en archivos `.env` para facilitar cambios entre entornos (Local, Dev, Prod).
- **SSL**: El backend soporta SSL automáticamente si se proveen las rutas en el `.env`. Si no, cae de vuelta a HTTP.
- **Frontend**: El chat de WhatsApp (`useWhatsappChat.ts`) ahora consume las URLs desde el `runtimeConfig` de Nuxt.
