-- Mise à jour des conditions de paiement et pied de facture pour tous les ouvriers existants
-- À exécuter une seule fois pour mettre à jour les données existantes

UPDATE workers 
SET 
    payment_terms = CASE 
        WHEN payment_terms IS NULL OR payment_terms = '' 
        THEN 'Paiement à 30 jours fin de mois' 
        ELSE payment_terms 
    END,
    invoice_footer = CASE 
        WHEN invoice_footer IS NULL OR invoice_footer = '' 
        THEN CONCAT(
            'TVA non applicable - art. 293 B du CGI\n',
            'Dispense d\'immatriculation au registre du commerce et des sociétés (RCS) et au répertoire des métiers (RM)\n',
            'Micro-entrepreneur - Siège social : ',
            CASE 
                WHEN address_line1 IS NOT NULL AND address_line1 != '' 
                THEN CONCAT(
                    address_line1,
                    CASE 
                        WHEN (zip_code IS NOT NULL AND zip_code != '') OR (city IS NOT NULL AND city != '') 
                        THEN CONCAT(', ', TRIM(CONCAT(COALESCE(zip_code, ''), ' ', COALESCE(city, ''))))
                        ELSE ''
                    END,
                    CASE 
                        WHEN country IS NOT NULL AND country != '' 
                        THEN CONCAT(', ', country)
                        ELSE ''
                    END
                )
                ELSE '[Veuillez renseigner votre adresse professionnelle]'
            END,
            '\nEn cas de retard de paiement, indemnité forfaitaire pour frais de recouvrement : 40 euros (art. L441-6 du code de commerce)'
        )
        ELSE invoice_footer 
    END,
    updated_at = NOW()
WHERE 
    (payment_terms IS NULL OR payment_terms = '') 
    OR 
    (invoice_footer IS NULL OR invoice_footer = '');

-- Vérification du nombre d'enregistrements mis à jour
SELECT 
    COUNT(*) as total_workers,
    SUM(CASE WHEN payment_terms IS NOT NULL AND payment_terms != '' THEN 1 ELSE 0 END) as with_payment_terms,
    SUM(CASE WHEN invoice_footer IS NOT NULL AND invoice_footer != '' THEN 1 ELSE 0 END) as with_invoice_footer
FROM workers;
