FactuGES_ERP/docs/modules/onboarding.md
David dac22372b9 feat(docs): archive legacy DTO design and naming guidelines, introduce HTTP request flow, module boundaries, and testing guidelines
- Archived historical documents for DTO design and naming conventions.
- Added normative documentation for HTTP request flow and module boundaries.
- Introduced testing guidelines for backend layers.
- Updated onboarding module documentation and clarified onboarding requirements.
- Deprecated backend prompt base and prompt auth documents.
- Adjusted paths in testing documentation for consistency.
2026-09-08 23:40:49 +02:00

29 lines
1.6 KiB
Markdown

# Onboarding
> Estado: **ESPECÍFICO DE MÓDULO**. Las reglas transversales se consultan en [arquitectura](../architecture/README.md).
## Propósito y endpoints
El módulo mantiene el estado del onboarding inicial y permite completar la creación inicial de una empresa para una cuenta autenticada.
```text
GET /api/v1/onboarding/initial
POST /api/v1/onboarding/initial/complete
```
La ruta de completado valida `CompleteInitialOnboardingRequestSchema`. El `accountId` no pertenece al payload: procede de `req.user.userId`.
## Dependencias y composición
El módulo consume los servicios públicos `companies:general.initialCompanyCreator` e `identity:general.initialCompanyAdminAssigner`. Su composition root está en `modules/onboarding/src/api/infrastructure/di/onboarding.di.ts` y el módulo declara esas dependencias en `modules/onboarding/src/api/module.ts`.
Actualmente `services.general` no expone servicios públicos porque no hay consumidores intermodulares reales. `internal` contiene los use cases y servicios privados necesarios por routes y arranque.
## Flujo de completado
`CompleteInitialOnboardingController` toma el DTO validado y el contexto autenticado. `CompleteInitialOnboardingUseCase` usa `CompleteInitialOnboardingInputMapper` para crear parámetros de Application y Value Objects, completa la transacción, crea la empresa, asigna el administrador y persiste el onboarding completado.
La operación es idempotente: si el onboarding ya está completado y es consistente, devuelve la misma `companyId`.
Para DI, DTOs, HTTP y tests, véanse las SSOT de arquitectura; este documento no las redefine.