Spaces:
Sleeping
Sleeping
| // populate_vi.js — Populate Vietnamese fields for Activity and TravelGuide collections | |
| const cityMap = { | |
| 'Hanoi': 'Hà Nội', 'Ho Chi Minh City': 'TP. Hồ Chí Minh', 'Da Nang': 'Đà Nẵng', | |
| 'Hai Phong': 'Hải Phòng', 'Can Tho': 'Cần Thơ', 'Hoi An': 'Hội An', | |
| 'Nha Trang': 'Nha Trang', 'Phu Quoc': 'Phú Quốc', 'Hue': 'Huế', | |
| 'Ha Long': 'Hạ Long', 'Da Lat': 'Đà Lạt', 'Vung Tau': 'Vũng Tàu', | |
| 'Quy Nhon': 'Quy Nhơn', 'Phan Thiet': 'Phan Thiết', 'Buon Ma Thuot': 'Buôn Ma Thuột', | |
| 'Vinh': 'Vinh', 'Thanh Hoa': 'Thanh Hóa', 'Hai Duong': 'Hải Dương', | |
| 'Nam Dinh': 'Nam Định', 'Thai Nguyen': 'Thái Nguyên', 'Viet Tri': 'Việt Trì', | |
| 'Ha Giang': 'Hà Giang', 'Cao Bang': 'Cao Bằng', 'Lang Son': 'Lạng Sơn', | |
| 'Lao Cai': 'Lào Cai', 'Dien Bien Phu': 'Điện Biên Phủ', 'Son La': 'Sơn La', | |
| 'Hoa Binh': 'Hòa Bình', 'Ninh Binh': 'Ninh Bình', 'Dong Hoi': 'Đồng Hới', | |
| 'Pleiku': 'Pleiku', 'Tuy Hoa': 'Tuy Hòa', 'Ca Mau': 'Cà Mau', 'Soc Trang': 'Sóc Trăng' | |
| }; | |
| const actTypeMap = { | |
| 'Caving': 'Khám Phá Hang Động', 'City Tour': 'Tour Thành Phố', | |
| 'Cooking Class': 'Lớp Học Nấu Ăn', 'Countryside Tour': 'Tour Nông Thôn', | |
| 'Craft Workshop': 'Xưởng Thủ Công', 'Fine Dining Experience': 'Trải Nghiệm Ẩm Thực Cao Cấp', | |
| 'Historical Tour': 'Tour Lịch Sử', 'Hot Springs': 'Tắm Suối Nước Nóng', | |
| 'Jet Skiing': 'Lướt Mô Tô Nước', 'Kayaking': 'Chèo Thuyền Kayak', | |
| 'Market Visit': 'Tham Quan Chợ', 'Massage': 'Massage Thư Giãn', | |
| 'Meditation': 'Thiền Định', 'Museum Tour': 'Tour Bảo Tàng', | |
| 'Night Tour': 'Tour Đêm', 'Paragliding': 'Dù Lượn', | |
| 'Photography Tour': 'Tour Chụp Ảnh', 'Rock Climbing': 'Leo Núi', | |
| 'Scuba Diving': 'Lặn Bình Khí', 'Snorkeling': 'Lặn Biển', | |
| 'Spa Treatment': 'Chăm Sóc Spa', 'Street Food Tour': 'Tour Ẩm Thực Đường Phố', | |
| 'Surfing': 'Lướt Sóng', 'Temple Visit': 'Tham Quan Đền Chùa', | |
| 'Traditional Dance': 'Múa Truyền Thống', 'Trekking': 'Đi Bộ Đường Dài', | |
| 'Wine Tasting': 'Thưởng Thức Rượu Vang', 'Yoga Retreat': 'Khóa Yoga Nghỉ Dưỡng', | |
| 'Zip-lining': 'Trượt Zipline' | |
| }; | |
| // ===== 0. UPDATE LOCATIONS ===== | |
| print("=== Updating Locations ==="); | |
| const locationViMap = { | |
| 'Vietnam': { nameVi: 'Việt Nam', descVi: 'Đất nước ở Đông Nam Á nổi tiếng với các bãi biển, sông ngòi, chùa Phật giáo và các thành phố sôi động.' }, | |
| 'Hanoi': { nameVi: 'Hà Nội', descVi: 'Thủ đô của Việt Nam, nổi tiếng với kiến trúc hàng thế kỷ và nền văn hóa phong phú kết hợp ảnh hưởng Đông Nam Á, Trung Hoa và Pháp.' }, | |
| 'Ho Chi Minh City': { nameVi: 'TP. Hồ Chí Minh', descVi: 'Thành phố năng động nhất Việt Nam, trung tâm thương mại và văn hóa đã thúc đẩy đất nước phát triển.' }, | |
| 'Da Nang': { nameVi: 'Đà Nẵng', descVi: 'Thành phố ven biển miền Trung Việt Nam, nổi tiếng với bãi biển cát trắng và Cầu Vàng.' }, | |
| 'Hai Phong': { nameVi: 'Hải Phòng', descVi: 'Thành phố cảng lớn nhất miền Bắc Việt Nam, cửa ngõ ra Vịnh Hạ Long.' }, | |
| 'Can Tho': { nameVi: 'Cần Thơ', descVi: 'Thành phố lớn nhất vùng đồng bằng sông Cửu Long, nổi tiếng với chợ nổi Cái Răng.' }, | |
| 'Hoi An': { nameVi: 'Hội An', descVi: 'Phố cổ được UNESCO công nhận ở bờ biển miền Trung Việt Nam, nổi tiếng với đèn lồng và kiến trúc cổ.' }, | |
| 'Nha Trang': { nameVi: 'Nha Trang', descVi: 'Thành phố biển nổi tiếng với bãi biển đẹp, đảo và hoạt động lặn biển.' }, | |
| 'Phu Quoc': { nameVi: 'Phú Quốc', descVi: 'Đảo ngọc ở vịnh Thái Lan, thiên đường nghỉ dưỡng với bãi biển cát trắng.' }, | |
| 'Hue': { nameVi: 'Huế', descVi: 'Cố đô của Việt Nam, nổi tiếng với Đại Nội, lăng tẩm và ẩm thực cung đình.' }, | |
| 'Ha Long': { nameVi: 'Hạ Long', descVi: 'Thành phố ven biển nổi tiếng với Vịnh Hạ Long - di sản thiên nhiên thế giới UNESCO.' }, | |
| 'Da Lat': { nameVi: 'Đà Lạt', descVi: 'Thành phố ngàn hoa trên cao nguyên Lâm Đồng, khí hậu mát mẻ quanh năm.' }, | |
| 'Vung Tau': { nameVi: 'Vũng Tàu', descVi: 'Thành phố biển gần TP.HCM, điểm nghỉ dưỡng cuối tuần phổ biến.' }, | |
| 'Quy Nhon': { nameVi: 'Quy Nhơn', descVi: 'Thành phố biển xinh đẹp ở miền Trung với bãi biển hoang sơ và tháp Chăm cổ.' }, | |
| 'Phan Thiet': { nameVi: 'Phan Thiết', descVi: 'Thành phố biển nổi tiếng với đồi cát Mũi Né và các resort ven biển.' }, | |
| 'Buon Ma Thuot': { nameVi: 'Buôn Ma Thuột', descVi: 'Thủ phủ cà phê Việt Nam, trung tâm văn hóa Tây Nguyên.' }, | |
| 'Vinh': { nameVi: 'Vinh', descVi: 'Thành phố quê hương Bác Hồ, cửa ngõ vào miền Trung Việt Nam.' }, | |
| 'Thanh Hoa': { nameVi: 'Thanh Hóa', descVi: 'Tỉnh có bãi biển Sầm Sơn nổi tiếng và thành nhà Hồ - di sản UNESCO.' }, | |
| 'Hai Duong': { nameVi: 'Hải Dương', descVi: 'Tỉnh ở đồng bằng sông Hồng, nổi tiếng với bánh đậu xanh và Côn Sơn-Kiếp Bạc.' }, | |
| 'Nam Dinh': { nameVi: 'Nam Định', descVi: 'Vùng đất lịch sử với nhà thờ đá Phát Diệm và bãi biển Quất Lâm.' }, | |
| 'Thai Nguyen': { nameVi: 'Thái Nguyên', descVi: 'Thủ đô chè Việt Nam, nổi tiếng với hồ Núi Cốc và ATK Định Hóa.' }, | |
| 'Viet Tri': { nameVi: 'Việt Trì', descVi: 'Thành phố ngã ba sông, nơi tổ chức Giỗ Tổ Hùng Vương hàng năm.' }, | |
| 'Ha Giang': { nameVi: 'Hà Giang', descVi: 'Tỉnh cực Bắc Việt Nam, nổi tiếng với cao nguyên đá Đồng Văn.' }, | |
| 'Cao Bang': { nameVi: 'Cao Bằng', descVi: 'Tỉnh biên giới với thác Bản Giốc hùng vĩ nhất Đông Nam Á.' }, | |
| 'Lang Son': { nameVi: 'Lạng Sơn', descVi: 'Tỉnh biên giới phía Bắc với chợ Đông Kinh và ải Chi Lăng lịch sử.' }, | |
| 'Lao Cai': { nameVi: 'Lào Cai', descVi: 'Cửa ngõ lên Sa Pa, nơi có đỉnh Fansipan - nóc nhà Đông Dương.' }, | |
| 'Dien Bien Phu': { nameVi: 'Điện Biên Phủ', descVi: 'Thành phố lịch sử với chiến thắng Điện Biên Phủ lừng lẫy năm châu.' }, | |
| 'Son La': { nameVi: 'Sơn La', descVi: 'Tỉnh miền núi Tây Bắc với Mộc Châu - cao nguyên chè và hoa mận.' }, | |
| 'Hoa Binh': { nameVi: 'Hòa Bình', descVi: 'Tỉnh có hồ Hòa Bình và bản Lác Mai Châu nổi tiếng.' }, | |
| 'Ninh Binh': { nameVi: 'Ninh Bình', descVi: 'Tràng An - di sản UNESCO, cố đô Hoa Lư, được mệnh danh Hạ Long trên cạn.' }, | |
| 'Dong Hoi': { nameVi: 'Đồng Hới', descVi: 'Cửa ngõ vào Phong Nha-Kẻ Bàng, hệ thống hang động kỳ vĩ nhất thế giới.' }, | |
| 'Pleiku': { nameVi: 'Pleiku', descVi: 'Thành phố cao nguyên với biển hồ T\'Nưng và vườn quốc gia Kon Ka Kinh.' }, | |
| 'Tuy Hoa': { nameVi: 'Tuy Hòa', descVi: 'Thành phố biển xinh đẹp với gành Đá Đĩa độc đáo.' }, | |
| 'Ca Mau': { nameVi: 'Cà Mau', descVi: 'Mũi Cà Mau - điểm cực Nam Tổ quốc, rừng ngập mặn và đất mũi.' }, | |
| 'Soc Trang': { nameVi: 'Sóc Trăng', descVi: 'Tỉnh miền Tây với chùa Dơi và văn hóa Khmer đặc sắc.' } | |
| }; | |
| let locUpdated = 0; | |
| db.locations.find({}).forEach(loc => { | |
| const mapping = locationViMap[loc.name]; | |
| if (mapping) { | |
| db.locations.updateOne({_id: loc._id}, {$set: {nameVi: mapping.nameVi, descriptionVi: mapping.descVi}}); | |
| locUpdated++; | |
| } | |
| }); | |
| print("✅ Updated " + locUpdated + " locations with nameVi + descriptionVi"); | |
| // ===== 1. UPDATE ACTIVITIES ===== | |
| print("=== Updating Activities ==="); | |
| let actUpdated = 0; | |
| db.activity.find({}).forEach(act => { | |
| const parts = act.name.match(/^(.+?) in (.+)$/); | |
| if (parts) { | |
| const typeEn = parts[1]; | |
| const cityEn = parts[2]; | |
| const typeVi = actTypeMap[typeEn] || typeEn; | |
| const cityVi = cityMap[cityEn] || cityEn; | |
| const nameVi = typeVi + ' tại ' + cityVi; | |
| const descVi = 'Trải nghiệm ' + typeVi.toLowerCase() + ' tuyệt vời tại ' + cityVi + '. Tham gia cùng chúng tôi cho một hành trình đầy kỷ niệm đáng nhớ.'; | |
| db.activity.updateOne({_id: act._id}, {$set: {nameVi: nameVi, descriptionVi: descVi}}); | |
| actUpdated++; | |
| } | |
| }); | |
| print("✅ Updated " + actUpdated + " activities with nameVi + descriptionVi"); | |
| // ===== 2. UPDATE TRAVEL GUIDES ===== | |
| print("\n=== Updating Travel Guides ==="); | |
| let guideUpdated = 0; | |
| db.travelguides.find({}).forEach(guide => { | |
| const destEn = guide.destination; | |
| const destVi = cityMap[destEn] || destEn; | |
| const titleVi = 'Cẩm Nang Du Lịch ' + destVi + ' Toàn Diện'; | |
| const descVi = 'Khám phá những điều tuyệt vời nhất tại ' + destVi + ' với cẩm nang du lịch toàn diện về các điểm tham quan, ẩm thực, văn hóa và mẹo hữu ích.'; | |
| db.travelguides.updateOne( | |
| {_id: guide._id}, | |
| {$set: {titleVi: titleVi, destinationVi: destVi, descriptionVi: descVi}} | |
| ); | |
| guideUpdated++; | |
| }); | |
| print("✅ Updated " + guideUpdated + " travel guides with titleVi + destinationVi + descriptionVi"); | |
| // ===== 3. VERIFY ===== | |
| print("\n=== Verification ==="); | |
| const sampleAct = db.activity.findOne({}, {name: 1, nameVi: 1, descriptionVi: 1}); | |
| print("Sample Activity:"); | |
| print(" name: " + sampleAct.name); | |
| print(" nameVi: " + sampleAct.nameVi); | |
| print(" descriptionVi: " + sampleAct.descriptionVi); | |
| const sampleGuide = db.travelguides.findOne({}, {title: 1, titleVi: 1, destination: 1, destinationVi: 1, descriptionVi: 1}); | |
| print("\nSample TravelGuide:"); | |
| print(" title: " + sampleGuide.title); | |
| print(" titleVi: " + sampleGuide.titleVi); | |
| print(" destination: " + sampleGuide.destination); | |
| print(" destinationVi: " + sampleGuide.destinationVi); | |
| print(" descriptionVi: " + sampleGuide.descriptionVi); | |
| print("\n🎉 All done! Refresh the frontend to see Vietnamese text."); | |