-- Deploy camper:booking_guest to pg
-- requires: roles
-- requires: schema_camper
-- requires: booking
-- requires: sex
-- requires: id_document_type
-- requires: extension_pg_libphonenumber

begin;

set search_path to camper, public;

create table booking_guest (
	booking_guest_id integer generated by default as identity primary key,
	booking_id integer not null references booking,
	id_document_type_id varchar(1) not null references id_document_type,
	id_document_number text not null,
	id_document_issue_date date,
	given_name text not null,
	first_surname text not null,
	second_surname text not null,
	sex_id varchar(1) not null references sex,
	birthdate date not null,
	country_code country_code not null references country,
	phone packed_phone_number,
	address text not null,
	created_at timestamp with time zone not null default current_timestamp,
	updated_at timestamp with time zone not null default current_timestamp,
	unique (booking_id, id_document_type_id, id_document_number)
);

grant select, insert, update, delete on table booking_guest to employee;
grant select, insert, update, delete on table booking_guest to admin;

commit;
