create or replace function fn_events_util_get_changes_table_from_json (
  p_changes_json text
)
/* Usage:
select * from fn_events_util_get_changes_table_from_json(
	'['
	'{"uuid":"389f893f-45a5-492b-b2db-ccef4720d5a3", "name": "name1", "count_added":1, "count_updated":2, "count_deleted":3},'
	'{"uuid":"389f893f-45a5-492b-b2db-ccef4720d5a6", "name": "name2", "count_added":0, "count_updated":0, "count_deleted":1}'
	']'
)
*/
	returns table (
		id uuid,
		"name" text,
		count_added int,
		count_updated int,
		count_deleted int
	)
	language plpgsql
as $$
begin
	return query 
		select 
		(change_json->>'uuid')::uuid as uuid,
		(change_json->>'name')::text as "name",
		(change_json->>'count_added')::int as "count_added",
		(change_json->>'count_updated')::int as "count_updated",
		(change_json->>'count_deleted')::int as "count_deleted"
from
	(select ids_json_array::json as change_json from json_array_elements_text(p_changes_json::json) as ids_json_array) as ids_json;
end;$$