const { Context, Vocab, Sentences } = require('../models'); const { sequelize } = require('../config/database'); async function fixReferenceIds() { try { await sequelize.authenticate(); console.log('✅ Kết nối database thành công.'); // Chỉ kiểm tra các bản ghi status 5 (hoặc bạn có thể bỏ where để check tất cả) const contexts = await Context.findAll({ where: { status: 5 } }); console.log(`🔍 Đang kiểm tra ${contexts.length} bản ghi Context để sửa Reference ID...`); let fixedCount = 0; let verifiedCount = 0; for (const ctx of contexts) { // 1. Thử tìm trong Vocab trước const vocab = await Vocab.findOne({ where: { text: ctx.title } }); if (vocab) { if (ctx.reference_id !== vocab.vocab_id) { await ctx.update({ reference_id: vocab.vocab_id }); fixedCount++; console.log(`✅ Fixed ID: '${ctx.title}' -> ${vocab.vocab_id} (Vocab)`); } else { verifiedCount++; } continue; } // 2. Nếu không thấy trong Vocab, thử tìm trong Sentences bằng trường context const sentence = await Sentences.findOne({ where: { text: ctx.context } }); if (sentence) { if (ctx.reference_id !== sentence.id) { await ctx.update({ reference_id: sentence.id }); fixedCount++; console.log(`✅ Fixed ID: '${ctx.title}' -> ${sentence.id} (Sentence)`); } else { verifiedCount++; } } } console.log('\n--- KẾT QUẢ SỬA LỖI ---'); console.log(`✅ Đã sửa: ${fixedCount} bản ghi.`); console.log(`✔️ Đã chuẩn sẵn: ${verifiedCount} bản ghi.`); process.exit(0); } catch (error) { console.error('❌ Lỗi:', error); process.exit(1); } } fixReferenceIds();