60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
#!/usr/bin/env tsx
|
|
/**
|
|
* Script pour supprimer les positions de signature en cache
|
|
* Usage: npx tsx scripts/clear-sign-positions.ts [request_id]
|
|
*/
|
|
|
|
import { config } from 'dotenv';
|
|
import { createClient } from '@supabase/supabase-js';
|
|
import * as path from 'path';
|
|
|
|
// Charger les variables d'environnement depuis .env.local
|
|
config({ path: path.join(process.cwd(), '.env.local') });
|
|
|
|
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!;
|
|
const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY!;
|
|
|
|
if (!supabaseUrl || !supabaseServiceKey) {
|
|
console.error('❌ Variables d\'environnement manquantes');
|
|
console.error('NEXT_PUBLIC_SUPABASE_URL:', !!supabaseUrl);
|
|
console.error('SUPABASE_SERVICE_ROLE_KEY:', !!supabaseServiceKey);
|
|
process.exit(1);
|
|
}
|
|
|
|
const supabase = createClient(supabaseUrl, supabaseServiceKey);
|
|
|
|
async function clearPositions(requestId?: string) {
|
|
if (requestId) {
|
|
console.log(`Suppression des positions pour la demande: ${requestId}`);
|
|
const { data, error } = await supabase
|
|
.from('sign_positions')
|
|
.delete()
|
|
.eq('request_id', requestId)
|
|
.select();
|
|
|
|
if (error) {
|
|
console.error('❌ Erreur:', error);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`✅ ${data?.length || 0} position(s) supprimée(s)`);
|
|
} else {
|
|
// Supprimer toutes les positions
|
|
console.log('Suppression de TOUTES les positions...');
|
|
const { data, error } = await supabase
|
|
.from('sign_positions')
|
|
.delete()
|
|
.neq('id', '00000000-0000-0000-0000-000000000000')
|
|
.select();
|
|
|
|
if (error) {
|
|
console.error('❌ Erreur:', error);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`✅ ${data?.length || 0} position(s) supprimée(s)`);
|
|
}
|
|
}
|
|
|
|
const requestId = process.argv[2];
|
|
clearPositions(requestId);
|