-- Wycofanie domniemanych zgod marketingowych. -- -- Do 2026-09-23 encja Lead miala emailConsent i smsConsent ustawione domyslnie na TRUE, a lead -- powstawal automatycznie przy kazdej rejestracji. Oznacza to, ze w bazie sa zgody, ktorych nikt -- swiadomie nie wyrazil - a zgoda marketingowa musi byc uprzednia i wyrazna (art. 4 pkt 11 -- i art. 7 RODO oraz Prawo komunikacji elektronicznej). Kod juz tego nie robi (domyslnie FALSE), -- ten skrypt porzadkuje dane, ktore powstaly wczesniej. -- -- Skrypt zeruje zgody WSZYSTKIM leadom, bo w bazie nie ma sladu, kto zgode wyrazil swiadomie, -- a kto dostal ja z automatu. Kierunek jest bezpieczny: uzytkownik moze ja wlaczyc sam -- w ustawieniach konta. Trwalych rezygnacji (opt-out) skrypt nie rusza. -- -- Domyslnie PROBA NA SUCHO: wszystko w jednej transakcji, skrypt pokazuje stan przed i po, -- po czym robi ROLLBACK. Zapis nastepuje tylko z -v apply=1. -- -- docker exec -i polskalokalnie-db-1 psql -U polskalokalnie -d polskalokalnie < scripts/fix-marketing-consents.sql -- docker exec -i polskalokalnie-db-1 psql -U polskalokalnie -d polskalokalnie -v apply=1 < scripts/fix-marketing-consents.sql \set ON_ERROR_STOP on \if :{?apply} \else \set apply 0 \endif BEGIN; \echo '=== Stan przed ===' SELECT 'leady razem' AS co, count(*) AS ile FROM leads UNION ALL SELECT 'ze zgoda na e-mail', count(*) FROM leads WHERE email_consent UNION ALL SELECT 'ze zgoda na SMS', count(*) FROM leads WHERE sms_consent UNION ALL SELECT 'z trwala rezygnacja (nie ruszamy)', count(*) FROM leads WHERE email_opt_out OR sms_opt_out; UPDATE leads SET email_consent = false WHERE email_consent; UPDATE leads SET sms_consent = false WHERE sms_consent; \echo '=== Stan po ===' SELECT 'leady razem' AS co, count(*) AS ile FROM leads UNION ALL SELECT 'ze zgoda na e-mail', count(*) FROM leads WHERE email_consent UNION ALL SELECT 'ze zgoda na SMS', count(*) FROM leads WHERE sms_consent; \if :apply COMMIT; \echo '>>> ZAPISANO (COMMIT) - zgody wyzerowane, uzytkownik moze je wlaczyc w ustawieniach konta' \else ROLLBACK; \echo '>>> PROBA NA SUCHO - nic nie zostalo zmienione (ROLLBACK). Zapis: -v apply=1' \endif