Files
tilbudgivern/backend/scripts/consolidate-categories.js
T

94 lines
2.5 KiB
JavaScript

#!/usr/bin/env node
/**
* Script til at konsolidere tag-kategorier
* Samler alle tag-relaterede kategorier til én enkelt "Tag" kategori
*/
const mysql = require('mysql2/promise');
async function consolidateCategories() {
let connection;
try {
// Opret database forbindelse
connection = await mysql.createConnection({
host: process.env.DB_HOST,
port: 3306,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME
});
console.log('✅ Forbundet til database\n');
// Vis nuværende tag-kategorier
console.log('🔍 NUVÆRENDE TAG-KATEGORIER:');
const [currentCategories] = await connection.execute(`
SELECT DISTINCT category, COUNT(*) as antal_pakker
FROM material_packages
WHERE category LIKE '%Tag%' OR category LIKE '%tag%' OR category = 'Nedrivning'
GROUP BY category
ORDER BY category
`);
console.table(currentCategories);
// Opdater kategorier
console.log('\n📝 Opdaterer kategorier til "Tag"...');
const [updateResult] = await connection.execute(`
UPDATE material_packages
SET category = 'Tag'
WHERE category IN (
'Tagarbejde',
'Tag - Tagrende',
'Tag - Nedløb',
'Tag - Rygning',
'Tag - Taghætte',
'Nedrivning'
)
OR category LIKE 'Tag %'
OR category LIKE 'Tag-%'
`);
console.log(`✅ Opdateret ${updateResult.affectedRows} pakker\n`);
// Vis resultat
console.log('📦 PAKKER I TAG KATEGORIEN:');
const [tagPackages] = await connection.execute(`
SELECT
name as pakke_navn,
category as kategori,
difficulty_level as sværhed,
estimated_hours as timer
FROM material_packages
WHERE category = 'Tag'
ORDER BY name
`);
console.table(tagPackages);
// Vis alle kategorier
console.log('\n🔎 ALLE KATEGORIER EFTER OPDATERING:');
const [allCategories] = await connection.execute(`
SELECT DISTINCT category, COUNT(*) as antal
FROM material_packages
WHERE is_active = 1
GROUP BY category
ORDER BY category
`);
console.table(allCategories);
console.log('\n✅ KATEGORI KONSOLIDERING FULDFØRT!');
} catch (error) {
console.error('❌ Fejl:', error.message);
process.exit(1);
} finally {
if (connection) {
await connection.end();
}
}
}
// Kør scriptet
consolidateCategories();