-- Deploy camper:order_code to pg
-- requires: roles
-- requires: schema_camper
-- requires: payment

begin;

set search_path to camper, public;

create or replace function reference(p payment) returns text as
$$
	select lpad(p.payment_id::text, 8, '0') || substring(p.slug::text from 1 for 4);
$$
	language sql
	stable
;

revoke execute on function reference(payment) from public;
grant execute on function reference(payment) to guest;
grant execute on function reference(payment) to employee;
grant execute on function reference(payment) to admin;

commit;