/*
 * Triggers to handle task containers
 */


DROP FUNCTION IF EXISTS tgf_item_tc_ai( ) CASCADE;
CREATE FUNCTION tgf_item_tc_ai( )
		RETURNS TRIGGER
		LANGUAGE PLPGSQL
		SECURITY DEFINER
	AS $tgf_item_tc_ai$
BEGIN
	INSERT INTO task_containers ( item_id )
		VALUES ( NEW.item_id );
	RETURN NEW;
END;
$tgf_item_tc_ai$;

REVOKE EXECUTE ON FUNCTION tgf_item_tc_ai( ) FROM PUBLIC;

CREATE TRIGGER tg_item_tc_ai AFTER INSERT ON items
	FOR EACH ROW EXECUTE PROCEDURE tgf_item_tc_ai( );


DROP FUNCTION IF EXISTS tgf_task_tc_ai( ) CASCADE;
CREATE FUNCTION tgf_task_tc_ai( )
		RETURNS TRIGGER
		LANGUAGE PLPGSQL
		SECURITY DEFINER
	AS $tgf_task_tc_ai$
BEGIN
	INSERT INTO task_containers ( task_id )
		VALUES ( NEW.task_id );
	INSERT INTO logical_task_containers ( task_id )
		VALUES ( NEW.task_id );
	RETURN NEW;
END;
$tgf_task_tc_ai$;

REVOKE EXECUTE ON FUNCTION tgf_task_tc_ai( ) FROM PUBLIC;

CREATE TRIGGER tg_task_tc_ai AFTER INSERT ON tasks
	FOR EACH ROW EXECUTE PROCEDURE tgf_task_tc_ai( );