29 lines
1.6 KiB
Markdown
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.
|