camper/deploy/set_campsite_type_pet_cost.sql

31 lines
881 B
MySQL
Raw Normal View History

-- Deploy camper:set_campsite_type_pet_cost to pg
-- requires: roles
-- requires: schema_camper
-- requires: campsite_type
-- requires: campsite_type_pet_cost
-- requires: parse_price
begin;
set search_path to camper, public;
create or replace function set_campsite_type_pet_cost(slug uuid, cost text) returns void as
$$
insert into campsite_type_pet_cost (campsite_type_id, cost_per_night)
select campsite_type_id, parse_price(cost, decimal_digits)
from campsite_type
join company using (company_id)
join currency using (currency_code)
where campsite_type.slug = set_campsite_type_pet_cost.slug
on conflict (campsite_type_id) do update
set cost_per_night = excluded.cost_per_night
;
$$
language sql
;
revoke execute on function set_campsite_type_pet_cost(uuid, text) from public;
grant execute on function set_campsite_type_pet_cost(uuid, text) to admin;
commit;