277 lines
7.8 KiB
Markdown
277 lines
7.8 KiB
Markdown
# NAMING CONVENTIONS - ERP CONSTRUCCION
|
|
## Convenciones de Nomenclatura Unificadas
|
|
|
|
**Version**: 1.0.0
|
|
**Fecha**: 2025-12-06
|
|
**Estado**: ACTIVO
|
|
|
|
---
|
|
|
|
## 1. SCHEMAS DE BASE DE DATOS
|
|
|
|
### 1.1 Nomenclatura Oficial
|
|
|
|
| Schema | Proposito | Tipo | Archivo DDL |
|
|
|--------|-----------|------|-------------|
|
|
| `construction` | Proyectos, estructura de obra, avances, calidad, contratos | Especifico | construction-schema-ddl.sql |
|
|
| `estimates` | Presupuestos, estimaciones, generadores, anticipos | Especifico | estimates-schema-ddl.sql |
|
|
| `infonavit` | Integracion INFONAVIT, RUV, derechohabientes | Especifico | infonavit-schema-ddl.sql |
|
|
| `hr` | Extension RRHH: asistencias, destajo, cuadrillas | Extension | hr-ext-schema-ddl.sql |
|
|
| `inventory` | Extension Inventario: almacenes obra, requisiciones, consumos | Extension | inventory-ext-schema-ddl.sql |
|
|
| `purchase` | Extension Compras: OC construccion, comparativos | Extension | purchase-ext-schema-ddl.sql |
|
|
|
|
### 1.2 Mapeo de Nombres Anteriores (DEPRECADOS)
|
|
|
|
| Nombre Anterior | Nombre Actual | Accion |
|
|
|-----------------|---------------|--------|
|
|
| `project_management` | `construction` | MIGRAR |
|
|
| `financial_management` | `estimates` | MIGRAR |
|
|
| `hr_management` | `hr` | MIGRAR |
|
|
| `purchasing_management` | `purchase` | MIGRAR |
|
|
| `quality_management` | `construction` (integrado) | ELIMINAR |
|
|
| `contract_management` | `construction` (integrado) | ELIMINAR |
|
|
| `crm_management` | `infonavit` (integrado) | ELIMINAR |
|
|
| `assets_management` | (Fase 2 - pendiente) | POSTERGAR |
|
|
| `documents_management` | (Fase 2 - pendiente) | POSTERGAR |
|
|
|
|
### 1.3 Justificacion de Consolidacion
|
|
|
|
**Antes (11 schemas):**
|
|
```
|
|
project_management, financial_management, hr_management,
|
|
purchasing_management, construction_management, quality_management,
|
|
infonavit_management, crm_management, contract_management,
|
|
assets_management, documents_management
|
|
```
|
|
|
|
**Despues (6 schemas):**
|
|
```
|
|
construction, estimates, infonavit, hr, inventory, purchase
|
|
```
|
|
|
|
**Beneficios:**
|
|
- Menos complejidad en queries cross-schema
|
|
- Alineacion con archivos DDL existentes
|
|
- Nombres cortos y claros
|
|
- Patron de extension consistente (_ext suffix)
|
|
|
|
---
|
|
|
|
## 2. CONVENCIONES DE TABLAS
|
|
|
|
### 2.1 Prefijos por Tipo
|
|
|
|
| Tipo | Prefijo | Ejemplo |
|
|
|------|---------|---------|
|
|
| Tabla master | (ninguno) | `fraccionamientos`, `estimaciones` |
|
|
| Tabla detalle | (ninguno, singular) | `estimacion_conceptos` |
|
|
| Tabla extension | (schema).table_ext | `hr.employee_construction` |
|
|
| Tabla pivot/relacion | (entidad1)_(entidad2) | `cuadrilla_miembros` |
|
|
| Tabla historico | (tabla)_history | `estimaciones_history` |
|
|
|
|
### 2.2 Nombres en Espanol vs Ingles
|
|
|
|
**Regla General**: Usar espanol para entidades de dominio mexicano, ingles para terminos tecnicos.
|
|
|
|
| Tipo | Idioma | Ejemplos |
|
|
|------|--------|----------|
|
|
| Entidades de dominio MX | Espanol | `fraccionamientos`, `lotes`, `estimaciones`, `derechohabientes` |
|
|
| Terminos INFONAVIT | Espanol | `cofinavit`, `ruv`, `puntos_ecologicos` |
|
|
| Campos tecnicos | Ingles | `tenant_id`, `created_at`, `is_active` |
|
|
| Campos de auditoria | Ingles | `created_by`, `updated_at`, `deleted_at` |
|
|
| Estados/Enums | Ingles | `draft`, `approved`, `cancelled` |
|
|
|
|
### 2.3 Sufijos Estandar
|
|
|
|
| Sufijo | Significado | Ejemplo |
|
|
|--------|-------------|---------|
|
|
| `_id` | Foreign key | `fraccionamiento_id` |
|
|
| `_at` | Timestamp | `created_at`, `approved_at` |
|
|
| `_by` | Usuario que ejecuto | `created_by`, `approved_by` |
|
|
| `_date` | Solo fecha | `requisition_date` |
|
|
| `_number` | Codigo/numero | `requisition_number` |
|
|
| `_amount` | Monto monetario | `total_amount` |
|
|
| `_quantity` | Cantidad | `quantity_requested` |
|
|
|
|
---
|
|
|
|
## 3. CONVENCIONES DE MODULOS
|
|
|
|
### 3.1 Codigos de Modulo
|
|
|
|
| Prefijo | Significado | Rango |
|
|
|---------|-------------|-------|
|
|
| `MAI-` | Modulo Alcance Inicial (Fase 1) | 001-019 |
|
|
| `MAE-` | Modulo Alcance Enterprise (Fase 2) | 014-016 |
|
|
| `MAA-` | Modulo Alcance Avanzado (Fase 3) | 017+ |
|
|
| `MOB-` | Aplicacion Movil | 001-005 |
|
|
|
|
### 3.2 Mapeo Modulo -> Schema
|
|
|
|
| Modulo | Schema Principal | Schemas Secundarios |
|
|
|--------|------------------|---------------------|
|
|
| MAI-001 | auth (core) | - |
|
|
| MAI-002 | construction | - |
|
|
| MAI-003 | estimates | construction |
|
|
| MAI-004 | purchase, inventory | construction |
|
|
| MAI-005 | construction | estimates |
|
|
| MAI-006 | (reportes - sin schema) | todos |
|
|
| MAI-007 | hr | construction |
|
|
| MAI-008 | estimates | construction |
|
|
| MAI-009 | construction | - |
|
|
| MAI-010 | infonavit | - |
|
|
| MAI-011 | infonavit | - |
|
|
| MAI-012 | construction | - |
|
|
| MAI-013 | (admin - usa core) | estimates |
|
|
| MAI-018 | construction | estimates |
|
|
|
|
---
|
|
|
|
## 4. CONVENCIONES DE CODIGO
|
|
|
|
### 4.1 Backend (Node.js/TypeScript)
|
|
|
|
```typescript
|
|
// Entidades - PascalCase singular
|
|
class Fraccionamiento { }
|
|
class Estimacion { }
|
|
class DerechoHabiente { }
|
|
|
|
// Services - PascalCase + Service
|
|
class FraccionamientoService { }
|
|
class EstimacionService { }
|
|
|
|
// Controllers - PascalCase + Controller
|
|
class FraccionamientoController { }
|
|
|
|
// Repositories - PascalCase + Repository
|
|
class FraccionamientoRepository { }
|
|
|
|
// DTOs - PascalCase + sufijo
|
|
class CreateFraccionamientoDto { }
|
|
class UpdateFraccionamientoDto { }
|
|
class FraccionamientoResponseDto { }
|
|
|
|
// Archivos - kebab-case
|
|
fraccionamiento.entity.ts
|
|
fraccionamiento.service.ts
|
|
fraccionamiento.controller.ts
|
|
create-fraccionamiento.dto.ts
|
|
```
|
|
|
|
### 4.2 Frontend (React/TypeScript)
|
|
|
|
```typescript
|
|
// Componentes - PascalCase
|
|
FraccionamientoList.tsx
|
|
FraccionamientoForm.tsx
|
|
FraccionamientoCard.tsx
|
|
|
|
// Hooks - camelCase con prefijo use
|
|
useFraccionamientos.ts
|
|
useEstimacion.ts
|
|
|
|
// Stores (Zustand) - camelCase + Store
|
|
fraccionamientoStore.ts
|
|
estimacionStore.ts
|
|
|
|
// Pages - PascalCase + Page
|
|
FraccionamientosPage.tsx
|
|
EstimacionDetailPage.tsx
|
|
|
|
// Archivos - kebab-case o PascalCase (consistente por proyecto)
|
|
```
|
|
|
|
### 4.3 API Endpoints
|
|
|
|
```
|
|
# Patron RESTful
|
|
GET /api/v1/construccion/fraccionamientos
|
|
GET /api/v1/construccion/fraccionamientos/:id
|
|
POST /api/v1/construccion/fraccionamientos
|
|
PUT /api/v1/construccion/fraccionamientos/:id
|
|
DELETE /api/v1/construccion/fraccionamientos/:id
|
|
|
|
# Recursos anidados
|
|
GET /api/v1/construccion/fraccionamientos/:id/etapas
|
|
GET /api/v1/construccion/fraccionamientos/:id/lotes
|
|
|
|
# Acciones especiales (verbos)
|
|
POST /api/v1/estimaciones/:id/aprobar
|
|
POST /api/v1/estimaciones/:id/facturar
|
|
```
|
|
|
|
---
|
|
|
|
## 5. CONVENCIONES DE DOCUMENTACION
|
|
|
|
### 5.1 Archivos de Especificacion
|
|
|
|
| Tipo | Prefijo | Ejemplo |
|
|
|------|---------|---------|
|
|
| Requerimiento Funcional | `RF-` | `RF-MAI002-001.md` |
|
|
| Especificacion Tecnica | `ET-` | `ET-MAI002-DB-001.md` |
|
|
| User Story | `US-` | `US-MAI002-001.md` |
|
|
| ADR | `ADR-` | `ADR-001-arquitectura-multi-tenant.md` |
|
|
|
|
### 5.2 Nomenclatura ET
|
|
|
|
```
|
|
ET-{MODULO}-{CAPA}-{NUMERO}.md
|
|
|
|
Capas:
|
|
- DB = Database
|
|
- BE = Backend
|
|
- FE = Frontend
|
|
- API = API/Integracion
|
|
- MOB = Mobile
|
|
```
|
|
|
|
---
|
|
|
|
## 6. ACTUALIZACIONES REQUERIDAS
|
|
|
|
### 6.1 Inventarios a Actualizar
|
|
|
|
- [ ] `MASTER_INVENTORY.yml` - Cambiar nombres de schemas
|
|
- [ ] `DATABASE_INVENTORY.yml` - Alinear con DDL real
|
|
- [ ] `DEPENDENCY_GRAPH.yml` - Verificar referencias
|
|
|
|
### 6.2 Documentacion a Actualizar
|
|
|
|
- [ ] Especificaciones ET-*-DB-* que referencian schemas antiguos
|
|
- [ ] MATRIZ-TRAZABILIDAD-COMPLETA.md
|
|
|
|
---
|
|
|
|
## 7. VALIDACION
|
|
|
|
### 7.1 Script de Validacion
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# validate-naming.sh
|
|
|
|
# Verificar que schemas en DDL coinciden con NAMING-CONVENTIONS
|
|
grep -r "CREATE SCHEMA" docs/04-modelado/database-design/schemas/*.sql
|
|
|
|
# Verificar referencias a schemas deprecados
|
|
grep -rn "project_management\|financial_management\|hr_management" .
|
|
```
|
|
|
|
### 7.2 Checklist de Cumplimiento
|
|
|
|
- [ ] Todos los DDL usan schemas oficiales
|
|
- [ ] MASTER_INVENTORY alineado
|
|
- [ ] DATABASE_INVENTORY alineado
|
|
- [ ] No hay referencias a schemas deprecados
|
|
- [ ] Entidades backend siguen convencion
|
|
- [ ] Componentes frontend siguen convencion
|
|
|
|
---
|
|
|
|
**Fin del Documento**
|
|
|
|
*Autor: Requirements-Analyst*
|
|
*Version: 1.0.0*
|