- Moved backend/ submodule to apps/backend/ - Moved frontend/ submodule to apps/frontend-web/ (canonical naming) - Moved database/ submodule to apps/database/ - Updated docker-compose.yml frontend path to apps/frontend-web - Updated CLAUDE.md v2.0.0 with canonical structure and aliases - Created apps/_MAP.md with component index - Updated MASTER_INVENTORY.yml paths (13 references) Part of: TASK-2026-02-06-ESTANDARIZACION-ESTRUCTURA-PROYECTOS (Sprint 2) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
187 lines
5.2 KiB
Markdown
187 lines
5.2 KiB
Markdown
# CLAUDE.md - Template SaaS
|
|
|
|
**Hereda de:** workspace-v2/CLAUDE.md
|
|
**Sistema:** SIMCO v4.0.0 + NEXUS v4.0
|
|
**Proyecto:** template-saas
|
|
**Tipo:** PROVIDER (L1A)
|
|
**Versión:** 2.0.0
|
|
**Actualizado:** 2026-02-06
|
|
**ADR Vinculante:** ADR-0011 (Estructura Canonica apps/)
|
|
**Homologación:** TASK-2026-02-03-HOMOLOGACION-TEMPLATE-SAAS
|
|
|
|
---
|
|
|
|
## EXTENSIONES LOCALES
|
|
|
|
Este archivo EXTIENDE (no reemplaza) las reglas del workspace.
|
|
Para reglas base, ver: `../../CLAUDE.md`
|
|
|
|
---
|
|
|
|
## STACK TECNOLÓGICO
|
|
|
|
| Capa | Tecnología | Versión |
|
|
|------|------------|---------|
|
|
| Backend | NestJS | 11.1.8 |
|
|
| Frontend | React | 19.0.0 |
|
|
| Build Tool | Vite | 6.0.6 |
|
|
| Base de Datos | PostgreSQL | 15+ |
|
|
| ORM | TypeORM | 0.3.22 |
|
|
| Cache | Redis (ioredis) | 5.9.0 |
|
|
| Queue | BullMQ | 5.66.4 |
|
|
| Payments | Stripe | 17.5.0 |
|
|
| State Mgmt | Zustand | 5.0.2 |
|
|
| UI Framework | Tailwind CSS | 3.4.17 |
|
|
|
|
---
|
|
|
|
## CREDENCIALES BD
|
|
|
|
```
|
|
Database: template_saas_dev
|
|
User: template_saas_user
|
|
Password: saas_dev_2026
|
|
Port: 5432
|
|
Host: localhost
|
|
```
|
|
|
|
---
|
|
|
|
## ESTRUCTURA CANONICA (ADR-0011)
|
|
|
|
```
|
|
template-saas/
|
|
├── apps/ # Contenedor canonico
|
|
│ ├── backend/ # NestJS API (submodule)
|
|
│ │ └── src/modules/ # 23 modulos
|
|
│ ├── frontend-web/ # React SPA (submodule)
|
|
│ │ └── src/ # 3 portales
|
|
│ ├── database/ # DDL PostgreSQL (submodule)
|
|
│ │ └── ddl/ # 24 tablas
|
|
│ └── _MAP.md # Indice de apps
|
|
├── orchestration/ # Sistema SIMCO local
|
|
├── docs/ # Documentacion tecnica
|
|
├── .claude/ # Instrucciones Claude Code
|
|
├── docker-compose.yml # Orquestacion Docker
|
|
└── .gitmodules # 3 submodules en apps/
|
|
```
|
|
|
|
**IMPORTANTE:** Todo desarrollo nuevo DEBE ir dentro de `apps/`. No crear archivos en raiz.
|
|
|
|
---
|
|
|
|
## HERENCIA
|
|
|
|
### Este proyecto hereda de:
|
|
- `workspace-v2/orchestration/` → Directivas globales, triggers, modos
|
|
- `workspace-v2/shared/catalog/` → Funcionalidades reutilizables
|
|
|
|
### Este proyecto exporta a:
|
|
- `erp-core` → Patrones base SaaS, auth, multi-tenancy
|
|
- Verticales ERP → Via erp-core (herencia transitiva)
|
|
|
|
---
|
|
|
|
## MÓDULOS BACKEND (23)
|
|
|
|
| Módulo | Descripción |
|
|
|--------|-------------|
|
|
| auth | JWT, OAuth ready, MFA |
|
|
| tenants | Multi-tenancy con RLS |
|
|
| users | Gestión de usuarios |
|
|
| billing | Integración Stripe |
|
|
| plans | Límites y suscripciones |
|
|
| ai | Wrapper multi-LLM |
|
|
| notifications | Email, push, in-app, WebSocket |
|
|
| email | SendGrid, SES, SMTP |
|
|
| whatsapp | WhatsApp Business API |
|
|
| audit | Auditoría de acciones |
|
|
| feature-flags | Toggles dinámicos |
|
|
| webhooks | Outbound con BullMQ |
|
|
| storage | S3, R2, MinIO |
|
|
| analytics | Reportes analíticos |
|
|
| reports | Generación de reportes |
|
|
| health | Health checks |
|
|
| onboarding | Wizard para nuevos tenants |
|
|
| rbac | Control de acceso |
|
|
| superadmin | Portal super admin |
|
|
| sales | Pipeline de ventas (SAAS-018) |
|
|
| portfolio | Catálogo de productos (SAAS-019) |
|
|
| commissions | Comisiones (SAAS-020) |
|
|
| mlm | Marketing multinivel (SAAS-021) |
|
|
| goals | Metas y objetivos (SAAS-022) |
|
|
|
|
---
|
|
|
|
## VALIDACIONES ADICIONALES
|
|
|
|
Además de las validaciones del workspace:
|
|
|
|
1. **Multi-Tenancy:** Todo endpoint debe respetar tenant_id
|
|
2. **RLS:** Las queries deben usar Row Level Security
|
|
3. **Stripe:** Los webhooks deben validar firma
|
|
4. **Tests:** Cobertura mínima 70% para nuevos módulos
|
|
|
|
---
|
|
|
|
## ALIASES LOCALES
|
|
|
|
- `@BACKEND` → apps/backend/src/modules/
|
|
- `@FRONTEND` → apps/frontend-web/src/
|
|
- `@DDL` → apps/database/ddl/
|
|
- `@DOCS` → docs/
|
|
- `@INVENTARIOS` → orchestration/inventarios/
|
|
- `@CONSTANTS` → .claude/constants/CONSTANTS-PROJECT.yml
|
|
- `@APPS-MAP` → apps/_MAP.md
|
|
|
|
---
|
|
|
|
## ANTES DE IMPLEMENTAR
|
|
|
|
1. Verificar en `docs/` que existe especificación
|
|
2. Si no existe → DETENER y preguntar
|
|
3. Revisar `orchestration/inventarios/` para estado actual
|
|
4. Validar que no duplica funcionalidad existente
|
|
|
|
---
|
|
|
|
## DESPUÉS DE IMPLEMENTAR
|
|
|
|
1. Actualizar inventarios (BACKEND_INVENTORY.yml, etc.)
|
|
2. Actualizar documentación afectada
|
|
3. Commit y push siguiendo SIMCO-GIT
|
|
4. Evaluar propagación a erp-core
|
|
|
|
---
|
|
|
|
## PROPAGACIÓN
|
|
|
|
Como proyecto PROVIDER, los cambios en template-saas pueden propagarse a:
|
|
|
|
```
|
|
template-saas (PROVIDER)
|
|
↓
|
|
erp-core (INTERMEDIATE)
|
|
↓
|
|
erp-construccion, erp-clinicas, erp-retail, etc. (CONSUMERS)
|
|
```
|
|
|
|
**Regla:** Security fixes se propagan INMEDIATAMENTE.
|
|
|
|
---
|
|
|
|
## REFERENCIAS RÁPIDAS
|
|
|
|
| Documento | Ubicación | Descripción |
|
|
|-----------|-----------|-------------|
|
|
| Estándares Aplicados | `docs/99-referencias/ESTANDARES-APLICADOS.md` | 14 estándares, 98% cumplimiento |
|
|
| Matriz Trazabilidad | `docs/99-referencias/MATRIZ-TRAZABILIDAD.md` | 37 RF/RNF, 97% cobertura |
|
|
| Directivas Locales | `.claude/directivas/DIRECTIVAS-LOCALES.md` | Extensiones de directivas SIMCO |
|
|
| CONTEXT-MAP | `orchestration/CONTEXT-MAP.yml` | Mapeo de contexto NEXUS |
|
|
| Inventarios | `orchestration/inventarios/` | Estado de artefactos |
|
|
|
|
---
|
|
|
|
*Template SaaS v2.0.0 - Sistema SIMCO v4.0.0*
|
|
*Estructura migrada a apps/ canonico: 2026-02-06*
|