UNPKG

ruch

Version:

Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.

92 lines (83 loc) 1.74 kB
/** * Product domain entities */ export interface Product { id: string; name: string; description: string; price: number; currency: 'USD' | 'EUR' | 'GBP'; sku: string; category: ProductCategory; brand: string; images: ProductImage[]; inventory: ProductInventory; specifications: ProductSpecification[]; isActive: boolean; isFeatured: boolean; createdAt: string; updatedAt: string; } export interface ProductCategory { id: string; name: string; slug: string; description?: string; parentId?: string; } export interface ProductImage { id: string; url: string; alt: string; isPrimary: boolean; order: number; } export interface ProductInventory { quantity: number; reserved: number; available: number; lowStockThreshold: number; isInStock: boolean; } export interface ProductSpecification { name: string; value: string; unit?: string; } export interface ProductCreationData { name: string; description: string; price: number; currency: 'USD' | 'EUR' | 'GBP'; sku: string; categoryId: string; brand: string; specifications?: ProductSpecification[]; inventory: { quantity: number; lowStockThreshold: number; }; } export interface ProductUpdateData { name?: string; description?: string; price?: number; categoryId?: string; brand?: string; specifications?: ProductSpecification[]; isActive?: boolean; isFeatured?: boolean; } export interface ProductFilter { categoryId?: string; brand?: string; minPrice?: number; maxPrice?: number; inStock?: boolean; isFeatured?: boolean; search?: string; } export interface ProductSort { field: 'name' | 'price' | 'createdAt' | 'popularity'; direction: 'asc' | 'desc'; }