CREATE OR REPLACE FUNCTION fr24.drop_raw_partitions_older_than(retention_days INTEGER)
RETURNS void
LANGUAGE plpgsql
AS $$
DECLARE
  partition_record RECORD;
  cutoff_date DATE := CURRENT_DATE - retention_days;
BEGIN
  FOR partition_record IN
    SELECT inhrelid::regclass::text AS partition_name
    FROM pg_inherits
    JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
    WHERE parent.relname = 'raw_packets'
      AND parent.relnamespace = 'fr24'::regnamespace
  LOOP
    IF partition_record.partition_name <> 'fr24.raw_packets_default' THEN
      EXECUTE format('ALTER TABLE %s DETACH PARTITION %s', 'fr24.raw_packets', partition_record.partition_name);
    END IF;
  END LOOP;
END;
$$;

COMMENT ON FUNCTION fr24.drop_raw_partitions_older_than(INTEGER) IS 'Retention helper placeholder; actual cleanup is driven by monitoring/preprocess scheduler.';
