JSPM

  • Created
  • Published
  • Downloads 170
  • Score
    100M100P100Q96354F
  • License MIT

Tipos compartidos para el proyecto Retail

Package Exports

  • @retaila/shared-types
  • @retaila/shared-types/dist
  • @retaila/shared-types/dist/index

Readme

@retaila/shared-types

Tipos compartidos para el proyecto Retail.

Instalación

npm install @retaila/shared-types

Desarrollo

Publicar nueva versión

# Compilar
npm run build

# Publicar (patch/minor/major)
npm run publish:patch
npm run publish:minor
npm run publish:major

Uso

import { Product, User, Order } from '@retaila/shared-types';

Nueva Estructura Organizada por Entidad

src/
├── common/           # Tipos base compartidos (BaseEntity, etc.)
├── product/          # Todo relacionado con productos
│   ├── types.ts      # Interfaces de Product, ProductVariant, etc.
│   ├── dto.ts        # DTOs para operaciones CRUD de productos
│   └── index.ts      # Exportaciones de productos
├── user/             # Todo relacionado con usuarios
│   ├── types.ts      # Interfaces de User, UserAddress
│   ├── dto.ts        # DTOs para operaciones CRUD de usuarios
│   └── index.ts      # Exportaciones de usuarios
├── order/            # Todo relacionado con pedidos
│   ├── types.ts      # Interfaces de Order, OrderItem, etc.
│   ├── dto.ts        # DTOs para operaciones CRUD de pedidos
│   └── index.ts      # Exportaciones de pedidos
├── account/          # Todo relacionado con cuentas
│   ├── types.ts      # Interfaces de Account, AccountSettings
│   ├── dto.ts        # DTOs para operaciones CRUD de cuentas
│   └── index.ts      # Exportaciones de cuentas
└── api/              # Tipos específicos de API

Entidades Disponibles

Product

  • Product: Producto con variantes, atributos y categorías
  • ProductVariant: Variantes de productos
  • ProductCategory: Categorías de productos
  • ProductAttribute: Atributos de productos
  • ProductMedia: Medios de productos

Enums: ProductStatus, ProductType, WeightUnit, DimensionUnit, AttributeType, MediaType

User

  • User: Usuario del sistema
  • UserAddress: Direcciones de usuario

Enums: AddressType

Order

  • Order: Pedido con items y direcciones
  • OrderItem: Items de pedido
  • OrderAddress: Direcciones de pedido

Enums: OrderStatus, PaymentStatus

Account

  • Account: Cuenta/tienda
  • AccountSettings: Configuraciones de cuenta
  • NotificationSettings: Configuraciones de notificaciones
  • SeoSettings: Configuraciones SEO

Cómo Funciona

Este paquete proporciona tipos TypeScript que se incorporan directamente en el build de cada aplicación:

  1. Instalación: npm install file:../shared-types
  2. Importación: import { Product } from '@retail/shared-types'
  3. Build: TypeScript automáticamente incluye los tipos en el build de la aplicación
  4. No build separado: No es necesario compilar este paquete

Ventajas de la Nueva Estructura

  • Organización por dominio: Cada entidad tiene su propia carpeta con todos sus tipos relacionados
  • Fácil navegación: Es más fácil encontrar tipos específicos de una entidad
  • Escalabilidad: Fácil agregar nuevas entidades sin afectar las existentes
  • Mantenimiento: Cambios en una entidad están contenidos en su carpeta
  • Importaciones más claras: import { Product } from '@retail/shared-types' importa todo lo relacionado con productos

Contribución

  1. Agregar nuevos tipos en la carpeta de la entidad correspondiente
  2. Exportar desde el index.ts de la entidad
  3. Los cambios se reflejan inmediatamente en las aplicaciones que usen este paquete