Cambios aplicados: - MASTER_INVENTORY.yml: Sincronizados conteos (tablas 47, controllers 20, entities 37) - _inheritance.yml: Corregido stack tecnologico (NestJS, React 19.2.0) - MCH-001: Estandarizada con HU formales (MCH-US-XXX), Story Points, Criterios de Aceptacion - Creado PLAN-VALIDACION-DOCUMENTAL-2026-01-17.md con plan de tareas Tarea: MCH-DOC-VAL-2026-01-17 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
194 lines
5.3 KiB
Markdown
194 lines
5.3 KiB
Markdown
---
|
|
id: EPIC-MCH-001
|
|
type: Epic
|
|
title: "MCH-001: Infraestructura Base"
|
|
code: MCH-001
|
|
status: Completado
|
|
phase: 1
|
|
priority: P0
|
|
story_points: 8
|
|
created_at: 2026-01-04
|
|
updated_at: 2026-01-17
|
|
simco_version: "4.0.1"
|
|
dependencies:
|
|
blocks: ["MCH-002", "MCH-003", "MCH-010"]
|
|
depends_on: []
|
|
---
|
|
|
|
# MCH-001: Infraestructura Base
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-001
|
|
- **Fase:** 1 - MVP Core
|
|
- **Prioridad:** P0
|
|
- **Estado:** Completado
|
|
- **Story Points:** 8
|
|
- **Fecha inicio:** 2026-01-04
|
|
- **Fecha fin:** 2026-01-05
|
|
|
|
## Descripcion
|
|
|
|
Setup inicial del proyecto MiChangarrito incluyendo estructura monorepo, configuracion de base de datos PostgreSQL multi-tenant, pipelines CI/CD, y entornos de desarrollo.
|
|
|
|
## Objetivos
|
|
|
|
1. Establecer estructura de proyecto monorepo
|
|
2. Configurar PostgreSQL con multi-tenant (RLS)
|
|
3. Setup de entornos de desarrollo
|
|
4. Configurar CI/CD basico
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Estructura de carpetas monorepo (apps/, database/, docs/)
|
|
- PostgreSQL con schemas separados
|
|
- Scripts de recreacion de BD
|
|
- Docker Compose para desarrollo
|
|
- GitHub Actions basico
|
|
|
|
### Excluido
|
|
- Deployment a produccion
|
|
- Kubernetes (futuro)
|
|
- Monitoring avanzado
|
|
|
|
## Arquitectura
|
|
|
|
```
|
|
michangarrito/
|
|
├── apps/
|
|
│ ├── backend/ # NestJS API
|
|
│ ├── web/ # React Dashboard
|
|
│ ├── mobile/ # Expo App
|
|
│ ├── mcp-server/ # Gateway LLM
|
|
│ └── whatsapp-service/ # Bot WhatsApp
|
|
├── database/
|
|
│ ├── schemas/ # DDL files
|
|
│ ├── seeds/ # Data inicial
|
|
│ └── *.sh # Scripts
|
|
├── docs/
|
|
└── orchestration/
|
|
```
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Archivo/Ubicacion |
|
|
|------------|--------|-------------------|
|
|
| Estructura monorepo | Completado | `projects/michangarrito/` |
|
|
| DDL base PostgreSQL | Completado | `database/schemas/00-02.sql` |
|
|
| Scripts BD | Completado | `database/*.sh` |
|
|
| Docker Compose | Completado | `docker-compose.yml` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- Ninguna (epica inicial)
|
|
|
|
### Bloquea a
|
|
- MCH-002 (Auth)
|
|
- MCH-003 (Productos)
|
|
- MCH-010 (MCP Server)
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [x] Estructura de carpetas creada
|
|
- [x] PostgreSQL ejecutandose con schemas
|
|
- [x] Script drop-and-recreate funcional
|
|
- [x] Extensiones uuid-ossp, pgcrypto habilitadas
|
|
- [x] Funcion current_tenant_id() operativa
|
|
|
|
## Notas Tecnicas
|
|
|
|
- **Puerto PostgreSQL:** 5432
|
|
- **Puerto Redis:** 6379
|
|
- **Base de datos:** michangarrito_platform
|
|
- **Multi-tenant:** Via tenant_id + RLS
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
### MCH-US-001: Estructura Monorepo
|
|
|
|
**Como** desarrollador
|
|
**Quiero** una estructura de proyecto monorepo bien organizada
|
|
**Para** poder trabajar eficientemente en multiples apps del mismo proyecto
|
|
|
|
**Story Points:** 3
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-001-1] ✅ Carpeta apps/ con backend, web, mobile, mcp-server, whatsapp-service
|
|
- [CA-001-2] ✅ Carpeta database/ con schemas, seeds, scripts
|
|
- [CA-001-3] ✅ Carpeta docs/ con documentacion estructurada
|
|
- [CA-001-4] ✅ Carpeta orchestration/ con inventarios y trazas
|
|
- [CA-001-5] ✅ Archivo .env.example con variables requeridas
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | Estado |
|
|
|----|-------|------|--------|
|
|
| MCH-TT-001-01 | Crear estructura de carpetas | Setup | Completado |
|
|
| MCH-TT-001-02 | Configurar .gitignore | Setup | Completado |
|
|
| MCH-TT-001-03 | Crear .env.example | Setup | Completado |
|
|
|
|
---
|
|
|
|
### MCH-US-002: Base de Datos Multi-Tenant
|
|
|
|
**Como** arquitecto
|
|
**Quiero** PostgreSQL configurado con multi-tenant via RLS
|
|
**Para** asegurar aislamiento de datos entre negocios
|
|
|
|
**Story Points:** 3
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-002-1] ✅ PostgreSQL 16+ ejecutandose en puerto 5432
|
|
- [CA-002-2] ✅ Extensiones uuid-ossp, pgcrypto habilitadas
|
|
- [CA-002-3] ✅ 11 schemas creados (public, auth, catalog, sales, etc.)
|
|
- [CA-002-4] ✅ RLS habilitado en tablas con tenant_id
|
|
- [CA-002-5] ✅ Funcion current_tenant_id() operativa
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | Estado |
|
|
|----|-------|------|--------|
|
|
| MCH-TT-002-01 | DDL 00-extensions.sql | DDL | Completado |
|
|
| MCH-TT-002-02 | DDL 01-schemas.sql | DDL | Completado |
|
|
| MCH-TT-002-03 | DDL 02-functions.sql | DDL | Completado |
|
|
| MCH-TT-002-04 | DDL 03-public.sql (tenants) | DDL | Completado |
|
|
|
|
---
|
|
|
|
### MCH-US-003: Scripts de Base de Datos
|
|
|
|
**Como** DevOps
|
|
**Quiero** scripts para recrear la BD facilmente
|
|
**Para** poder resetear el ambiente de desarrollo rapidamente
|
|
|
|
**Story Points:** 2
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-003-1] ✅ Script create-database.sh funcional
|
|
- [CA-003-2] ✅ Script recreate-database.sh funcional
|
|
- [CA-003-3] ✅ Scripts ejecutables desde cualquier directorio
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | Estado |
|
|
|----|-------|------|--------|
|
|
| MCH-TT-003-01 | Crear script create-database.sh | DevOps | Completado |
|
|
| MCH-TT-003-02 | Crear script recreate-database.sh | DevOps | Completado |
|
|
| MCH-TT-003-03 | Documentar uso de scripts | Docs | Completado |
|
|
|
|
---
|
|
|
|
## Resumen de Story Points
|
|
|
|
| Historia | SP | Estado |
|
|
|----------|-----|--------|
|
|
| MCH-US-001: Estructura Monorepo | 3 | Completado |
|
|
| MCH-US-002: Base de Datos Multi-Tenant | 3 | Completado |
|
|
| MCH-US-003: Scripts de Base de Datos | 2 | Completado |
|
|
| **Total** | **8** | **100%** |
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-17
|
|
**Estandarizado por:** Validacion Documental MCH-DOC-VAL-2026-01-17
|