--
-- content_item__set_live_revision/4
--
create or replace function content_item__set_live_revision(
  p__revision_id integer,
  p__publish_status character varying DEFAULT 'ready'::character varying,
  p__publish_date timestamp with time zone DEFAULT now(),
  p__is_latest boolean DEFAULT false
) returns int4 as $$

DECLARE
BEGIN

  if p__is_latest then
    update cr_items
      set
            live_revision = p__revision_id,
    	    publish_status = p__publish_status,
            latest_revision = p__revision_id   
      where
	    item_id = (select item_id
               from   cr_revisions
               where  revision_id = p__revision_id);
  else
    update cr_items
      set
            live_revision = p__revision_id,
    	    publish_status = p__publish_status
      where
	    item_id = (select item_id
               from   cr_revisions
               where  revision_id = p__revision_id);
  end if;
   
  update cr_revisions
  set
    publish_date = p__publish_date
  where
    revision_id = p__revision_id;

  return 0; 
END;
$$ language plpgsql;