import { sequelize } from './sequelize.js';

async function checkRightsTable() {
    try {
        console.log('🔍 Überprüfe den aktuellen Zustand der chat.rights Tabelle...');
        
        // Überprüfe die Constraints der chat.rights Tabelle
        const rightsConstraints = await sequelize.query(`
            SELECT 
                tc.constraint_name,
                tc.constraint_type,
                kcu.column_name
            FROM information_schema.table_constraints tc
            LEFT JOIN information_schema.key_column_usage kcu 
                ON tc.constraint_name = kcu.constraint_name
            WHERE tc.table_schema = 'chat' 
            AND tc.table_name = 'rights'
            ORDER BY tc.constraint_type, kcu.column_name;
        `, { type: sequelize.QueryTypes.SELECT });

        console.log(`📊 Chat Rights Constraints: ${rightsConstraints.length} gefunden`);
        rightsConstraints.forEach(constraint => {
            console.log(`  - ${constraint.constraint_type} (${constraint.constraint_name}) auf Spalte: ${constraint.column_name}`);
        });

        // Überprüfe speziell die UNIQUE Constraints auf der tr-Spalte
        const trUniqueConstraints = rightsConstraints.filter(c => 
            c.constraint_type === 'UNIQUE' && c.column_name === 'tr'
        );
        
        console.log(`\n🎯 UNIQUE Constraints auf der tr-Spalte: ${trUniqueConstraints.length}`);
        if (trUniqueConstraints.length === 1) {
            console.log('✅ Perfekt! Es gibt nur noch einen UNIQUE Constraint auf der tr-Spalte.');
        } else if (trUniqueConstraints.length === 0) {
            console.log('⚠️  Es gibt keinen UNIQUE Constraint auf der tr-Spalte!');
        } else {
            console.log(`❌ Es gibt immer noch ${trUniqueConstraints.length} UNIQUE Constraints auf der tr-Spalte.`);
        }

        console.log('\n✅ Überprüfung abgeschlossen');

    } catch (error) {
        console.error('❌ Fehler bei der Überprüfung:', error);
        throw error;
    }
}

// Führe das Skript aus, wenn es direkt aufgerufen wird
if (import.meta.url === `file://${process.argv[1]}`) {
    checkRightsTable()
        .then(() => {
            console.log('🎯 Überprüfung der chat.rights Tabelle abgeschlossen');
            process.exit(0);
        })
        .catch((error) => {
            console.error('💥 Überprüfung fehlgeschlagen:', error);
            process.exit(1);
        });
}

export default checkRightsTable;
