DO $$
DECLARE
  current_time TIMESTAMPTZ := now();
  void_event_id TEXT := 'void-' || to_char(current_time, 'YYYYMMDDHH24MISS');
  pubkey TEXT;
  void_payload JSONB := '{"type": "void", "reason": "no valid events", "auto": true}'::jsonb;
BEGIN
  -- Vérifie s'il existe des événements non intégrés
  IF NOT EXISTS (SELECT 1 FROM events WHERE block_id IS NULL) THEN

    -- Sélectionne la clé publique active du Core
    SELECT pubkey INTO pubkey FROM core_identity WHERE active LIMIT 1;

    -- Insère l’événement VOID signé avec la clé publique déclarée
    INSERT INTO events (
      event_id, block_id, payload, author_pubkey, signature, timestamp
    ) VALUES (
      void_event_id,
      NULL,
      void_payload,
      pubkey,
      'SIGNED_BY_CORE',  -- (remplacer par une signature réelle si calculable dans PG)
      current_time
    );

    RAISE NOTICE '✅ VOID inséré sous l’ID % par la clé %', void_event_id, pubkey;
  END IF;
END $$;