Entidades compartidas para microservicios UAXI
npm install uaxi-shared-entitiesPaquete compartido de entidades para microservicios UAXI.
Este paquete centraliza todas las entidades de Sequelize, enums, tipos y configuraciones compartidas entre los microservicios de UAXI. Esto evita la duplicación de código y mantiene la consistencia de datos.
``bash`
cd shared-entities
pnpm install
pnpm build
`bashAgregar como dependencia local
pnpm add file:../shared-entities
Uso
$3
`typescript
import { User, Trip, DriverProfile } from "@uaxi/shared-entities";
`$3
`typescript
import { UserStatus, TripStatus, DriverStatus } from "@uaxi/shared-entities";
`$3
`typescript
import { defaultDatabaseConfig } from "@uaxi/shared-entities";
`$3
`typescript
import {
GeoPoint,
PaginatedResponse,
ApiResponse,
} from "@uaxi/shared-entities";
`Estructura del Paquete
`
shared-entities/
├── src/
│ ├── entities/ # Entidades de Sequelize
│ ├── enums/ # Enums compartidos
│ ├── config/ # Configuraciones
│ ├── types/ # Tipos e interfaces
│ └── index.ts # Exportaciones principales
├── dist/ # Código compilado
├── package.json
├── tsconfig.json
└── README.md
`Desarrollo
$3
`bash
pnpm build
`$3
`bash
pnpm dev
`$3
`bash
pnpm clean
`Migración desde Entidades Duplicadas
1. Instalar el paquete en cada microservicio
2. Reemplazar imports de entidades locales por imports del paquete compartido
3. Eliminar archivos de entidades duplicadas
4. Actualizar configuraciones de base de datos para usar la configuración compartida
$3
Antes:
`typescript
// microservice-users/src/user/entities/user.entity.ts
import { UserStatus } from './user.enum';
export class User extends Model { ... }
`Después:
`typescript
// microservice-users/src/user/user.service.ts
import { User, UserStatus } from "@uaxi/shared-entities";
`Ventajas
- ✅ Consistencia: Una sola fuente de verdad para todas las entidades
- ✅ Mantenibilidad: Cambios en una sola ubicación
- ✅ Type Safety: Tipos compartidos entre microservicios
- ✅ DRY: No más código duplicado
- ✅ Versionado: Control de versiones centralizado
Notas Importantes
- Siempre ejecuta
pnpm build después de hacer cambios en las entidades
- Los microservicios deben usar la misma versión del paquete
- Las migraciones de base de datos deben ejecutarse desde un solo lugar
- Mantén la compatibilidad hacia atrás al hacer cambiosSubir paquete a npm
`bash
Desde el directorio shared-entities
cd ../shared-entities
npm version patch
pnpm run build
npm publish --access public
``