- Custom modules: hazard_shopify, hazard_inventory_report, hazard_website - Third-party modules: bi_sql_editor, query_deluxe, sql_request_abstract, l10n_mx_sat_sync_itadmin_ee - Docker setup: Odoo 16 + PostgreSQL 17 - Utility scripts: backup_hazard.sh, update_module.py - Agent configuration: .agents/AGENTS.md - Security: Enterprise modules, credentials, backups and production data excluded via .gitignore
91 lines
3.9 KiB
Markdown
91 lines
3.9 KiB
Markdown
# Reglas del Proyecto — Hazard (Odoo 16)
|
|
|
|
## Información General
|
|
- **Empresa:** Hazard (marca de ropa urbana / streetwear)
|
|
- **Plataforma ERP:** Odoo 16 Community con módulos Enterprise
|
|
- **Ecommerce:** Shopify (sincronizado con Odoo vía módulo custom `hazard_shopify`)
|
|
- **Servidor:** VPS en Plesk bajo el dominio `tesscorp.com.mx`
|
|
- **Idioma de comunicación:** Siempre responder en español
|
|
|
|
## Arquitectura Docker
|
|
|
|
### Contenedores
|
|
| Contenedor | Imagen | Puerto Externo | Puerto Interno |
|
|
|---|---|---|---|
|
|
| `odoo-16-hazard-new` | `hazard-odoo-odoo` (custom, basada en `odoo:16`) | `16001` | `8069` |
|
|
| `odoo-16-db-hazard-new` | `postgres:17` | No expuesto | `5432` |
|
|
|
|
### Volúmenes y Rutas
|
|
- **Módulos Enterprise:** `./Addons/enterprise` → `/mnt/enterprise` (dentro del contenedor)
|
|
- **Módulos Custom:** `./Addons/custom` → `/mnt/extra-addons` (dentro del contenedor)
|
|
- **Configuración Odoo:** `./Conf/odoo.conf` → `/etc/odoo/odoo.conf`
|
|
- **Docker Compose:** `/var/www/vhosts/tesscorp.com.mx/hazard.tesscorp.com.mx/docker-compose.yml`
|
|
- **IP interna del contenedor DB:** `172.18.0.2` (usada por MCP Server PostgreSQL)
|
|
|
|
### Base de Datos
|
|
- **Base de datos principal (producción):** `hazard_new`
|
|
- **Usuario DB:** `odoo`
|
|
- **Contraseña DB:** `odoo`
|
|
|
|
### Credenciales Odoo (XML-RPC)
|
|
- **URL:** `http://localhost:16001`
|
|
- **Base de datos:** `hazard_new`
|
|
- **Usuario admin:** `admin`
|
|
- **Contraseña admin:** `admin`
|
|
|
|
## Módulos Custom Instalados
|
|
| Módulo | Estado | Ubicación |
|
|
|---|---|---|
|
|
| `hazard_shopify` | ✅ Instalado | `Addons/custom/hazard_shopify` |
|
|
| `hazard_inventory_report` | ✅ Instalado | `Addons/custom/hazard_inventory_report` |
|
|
| `hazard_website` | ❌ No instalado | `Addons/custom/hazard_website` |
|
|
|
|
### Otros Módulos de Terceros
|
|
- `bi_sql_editor` — Editor SQL en interfaz Odoo
|
|
- `query_deluxe` — Consultas avanzadas desde Odoo
|
|
- `sql_request_abstract` — Abstracción para consultas SQL
|
|
- `l10n_mx_sat_sync_itadmin_ee` — Sincronización SAT México
|
|
|
|
## Reglas de Desarrollo Obligatorias
|
|
|
|
### Python
|
|
- **NUNCA** usar `print()`. Siempre usar `logging` con `_logger = logging.getLogger(__name__)`.
|
|
- Usar prefijos descriptivos en logs: `_logger.info("[Módulo] Mensaje")`.
|
|
- Siempre agregar docstrings a funciones y clases.
|
|
- Preferir código legible sobre código compacto.
|
|
|
|
### Despliegue de Cambios
|
|
1. **Cambios en archivos `.py` (modelos/lógica):** Requiere restart del contenedor.
|
|
```bash
|
|
docker restart odoo-16-hazard-new
|
|
```
|
|
2. **Cambios en estructura de tablas (fields nuevos):** Requiere restart + actualización del módulo.
|
|
```bash
|
|
docker restart odoo-16-hazard-new
|
|
# Luego ejecutar el script de actualización:
|
|
python3 update_module.py
|
|
```
|
|
3. **Cambios solo en XML/vistas/reportes:** Solo requiere actualización del módulo (sin restart).
|
|
|
|
### Seguridad y Respaldos
|
|
- **NUNCA** ejecutar `UPDATE` o `DELETE` masivos sin respaldo previo.
|
|
- Script de respaldo: `backup_hazard.sh` (respalda DB + código, retención 15 días).
|
|
- Los backups se suben a Google Drive automáticamente vía Plesk.
|
|
|
|
### Código de Barras
|
|
- Formato EAN13 estandarizado con estructura `20000...` (ej. `2000010012749`).
|
|
- NUNCA crear scripts que alteren la secuencia de códigos de barras.
|
|
|
|
### Archivos que NO se deben modificar
|
|
- Módulos en `/mnt/enterprise` (módulos oficiales de Odoo Enterprise).
|
|
- Solo modificar código en `/mnt/extra-addons` (módulos custom).
|
|
|
|
## Scripts Útiles del Proyecto
|
|
| Script | Propósito | Comando |
|
|
|---|---|---|
|
|
| `backup_hazard.sh` | Respaldo completo (DB + código) | `bash backup_hazard.sh` |
|
|
| `update_module.py` | Actualizar módulo hazard_shopify via XML-RPC | `python3 update_module.py` |
|
|
|
|
## Conexión MCP Server PostgreSQL
|
|
El agente tiene acceso directo de solo lectura a la base de datos `hazard_new` a través del MCP Server configurado en `mcp_config.json`. Usar la herramienta `query` del servidor `odoo-postgres` para consultas SQL cuando sea necesario inspeccionar datos.
|