import { ProductService } from './services/ProductService'; import db from './config/database'; import { DomainBootstrap } from './core/runtime/DomainBootstrap'; import { DomainRegistry } from './core/runtime/DomainRegistry'; async function testWasher() { console.log('๐Ÿš€ Testing AI Product Washer (BIZ_PROD_12)...'); try { // 1. ๅˆๅง‹ๅŒ–ๅ…จ้‡้ข†ๅŸŸ (ๅŒ…ๅซ Feature Flags, Product ่กจ็ญ‰) await DomainBootstrap.init(); await DomainRegistry.bootstrap(); const tenantId = 'test-tenant'; // 1. ๅˆ›ๅปบๆต‹่ฏ•ๅ•†ๅ“ const productId = await ProductService.create(tenantId, { platform: 'Alibaba', productId: 'TEST_WASHER_001', title: 'Original Title with Brand Name Nike and bad characters !!!', description: 'This is a description that needs localization for the Middle East market.', mainImage: 'https://example.com/original_nike_shoe.jpg', status: 'active' }); console.log(`โœ… Created test product: ${productId}`); // 2. ๆ‰ง่กŒๆธ…ๆด—ไธŽๆœฌๅœฐๅŒ– console.log('--- Running Wash and Localize ---'); const result = await ProductService.washAndLocalize(tenantId, productId, 'Middle East', 'en'); console.log('โœ… Washer result:', JSON.stringify(result, null, 2)); // 3. ้ชŒ่ฏๆ›ดๆ–ฐๅŽ็š„ๆ•ฐๆฎ const updatedProduct = await ProductService.getById(tenantId, productId); console.log('--- Updated Product Data ---'); console.log('New Title:', updatedProduct?.title); console.log('New Image:', updatedProduct?.mainImage); console.log('SEO Tags:', updatedProduct?.attributes?.seo_tags); if (updatedProduct?.title?.includes('[Local]')) { console.log('โœ… Semantic cleaning and localization verified (Mock)'); } if (updatedProduct?.mainImage?.includes('style=Gold & Luxury')) { console.log('โœ… Multi-modal enhancement (style) verified'); } } catch (error) { console.error('โŒ Test failed:', error); } finally { await db.destroy(); } } testWasher();