-- Deploy camper:payment to pg -- requires: roles -- requires: schema_camper -- requires: company -- requires: campsite_type -- requires: payment_status -- requires: positive_integer -- requires: nonnegative_integer -- requires: percentage -- requires: currency_code -- requires: currency begin; set search_path to camper, public; create table payment ( payment_id integer generated by default as identity primary key, company_id integer not null references company, slug uuid not null unique default gen_random_uuid(), campsite_type_id integer not null references campsite_type, arrival_date date not null, departure_date date not null constraint departure_after_arrival check (departure_date > arrival_date), subtotal_nights nonnegative_integer not null, number_adults positive_integer not null, subtotal_adults nonnegative_integer not null, number_teenagers nonnegative_integer not null, subtotal_teenagers nonnegative_integer not null, number_children nonnegative_integer not null, subtotal_children nonnegative_integer not null, number_dogs nonnegative_integer not null, subtotal_dogs nonnegative_integer not null, subtotal_tourist_tax nonnegative_integer not null, total nonnegative_integer not null, currency_code currency_code not null references currency, down_payment_percent percentage not null default 1.0, zone_preferences text not null, payment_status text not null default 'draft' references payment_status, created_at timestamp with time zone not null default current_timestamp, updated_at timestamp with time zone not null default current_timestamp ); grant select, insert, update on table payment to guest; grant select, insert, update on table payment to employee; grant select, insert, update, delete on table payment to admin; commit;