94 lines
2.5 KiB
JavaScript
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();
|