-- Criar a trigger function create function handle_new_recording() returns trigger language plpgsql security definer as $$ declare response json; begin -- Apenas processa registros com status pending_analysis if NEW.status = 'pending_analysis' then -- Chama a Edge Function select content into response from http(( 'POST', current_setting('app.settings.edge_function_url') || '/process-audio', ARRAY[ ('Authorization', 'Bearer ' || current_setting('app.settings.service_role_key'))::http_header, ('Content-Type', 'application/json')::http_header ], 'application/json', json_build_object( 'record', json_build_object( 'id', NEW.id, 'story_id', NEW.story_id, 'student_id', NEW.student_id, 'audio_url', NEW.audio_url, 'status', NEW.status ) ) )::http_request); end if; return NEW; end; $$; -- Configurar as variáveis de ambiente select set_config('app.settings.edge_function_url', 'https://bsjlbnyslxzsdwxvkaap.supabase.co/functions/v1', false); select set_config('app.settings.service_role_key', 'seu_service_role_key', false); -- Criar a trigger create trigger process_new_recording after insert or update on story_recordings for each row execute function handle_new_recording();