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

1.6 KiB

Onboarding

Estado: ESPECÍFICO DE MÓDULO. Las reglas transversales se consultan en arquitectura.

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.

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.