Files
hazard_odoo/.agents/AGENTS.md
T
tess_admin 28d9e56f47 🎉 Initial commit - Hazard Odoo 16 project
- 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
2026-06-30 06:12:35 -06:00

3.9 KiB

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.
    docker restart odoo-16-hazard-new
    
  2. Cambios en estructura de tablas (fields nuevos): Requiere restart + actualización del módulo.
    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.