espace-paie-odentas/scripts/clear-sign-positions.ts

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);