# Implementer — CLUB-004 ## Resumen Implementados códigos de recuperación del Club: generación, listado y recuperación con nuevo dispositivo. ## Archivos modificados/creados - `src/modules/club/domain/club.ts` — tipos `ClubRecoveryCode`, `GenerateRecoveryCodesResult`, `RecoverByCodeResult` - `src/modules/club/domain/errors.ts` — `ClubRecoveryCodeInvalidError`, `ClubRecoveryCodesDisabledError` - `src/modules/club/domain/ports.ts` — порты: `generateRecoveryCodes`, `listActiveRecoveryCodes`, `consumeRecoveryCode` - `src/modules/club/infrastructure/pg-club-repository.ts` — implementación + `generateRecoveryCode()` helper - `src/modules/club/application/club-service.ts` — `generateRecoveryCodes()`, `listRecoveryCodes()`, `recoverByCode()` - `src/modules/club/api/club.routes.ts` — 3 endpoints nuevos + mapeo de errores - `migrations/067_club_recovery_code_index.js` — índice en `code_fingerprint` ## Validación - `cd project && npm run typecheck` ✅ - `cd project && npm run build` ✅ - `npx vitest run src/modules/club/tests/` ✅ (4 tests pass) - `git diff --check` ✅ - `./scripts/verify.sh` ✅