CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";

CREATE FUNCTION update_modified_at()
  RETURNS TRIGGER AS $updt$
  BEGIN
    NEW.modified_at := clock_timestamp();
    RETURN NEW;
  END;
$updt$ LANGUAGE plpgsql;

CREATE TABLE pending_to_delete (
  id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
  created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
  type text NOT NULL,
  data jsonb NOT NULL
);

CREATE FUNCTION handle_delete()
  RETURNS TRIGGER AS $pagechange$
  BEGIN
    INSERT INTO pending_to_delete (type, data)
    VALUES (TG_TABLE_NAME, row_to_json(OLD));
    RETURN OLD;
  END;
$pagechange$ LANGUAGE plpgsql;