--
-- recurrence__new/5
--
create or replace function recurrence__new(
  new__interval_name character varying,
  new__every_nth_interval integer,
  new__days_of_week character varying,
  new__recur_until timestamp with time zone,
  new__custom_func character varying
) returns int4 as $$

	-- recurrences.recurrence_id%TYPE
DECLARE
       v_recurrence_id		  recurrences.recurrence_id%TYPE;
       v_interval_type_id	  recurrence_interval_types.interval_type%TYPE;
BEGIN

       select nextval('recurrence_sequence') into v_recurrence_id from dual;
        
       select interval_type
       into   v_interval_type_id 
       from   recurrence_interval_types
       where  interval_name = new__interval_name;
        
       insert into recurrences
            (recurrence_id, 
             interval_type, 
             every_nth_interval, 
             days_of_week,
             recur_until, 
             custom_func)
       values
            (v_recurrence_id, 
             v_interval_type_id, 
             new__every_nth_interval, 
             new__days_of_week,
             new__recur_until, 
             new__custom_func);
         
       return v_recurrence_id;

END;
$$ language plpgsql;