# 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` ✅
