-- Deploy numerus:contact to pg -- requires: schema_numerus -- requires: company -- requires: extension_vat -- requires: email -- requires: extension_pg_libphonenumber -- requires: extension_uri -- requires: country_code -- requires: country -- requires: tag_name begin; set search_path to numerus, public; create table contact ( contact_id serial primary key, company_id integer not null references company, slug uuid not null unique default gen_random_uuid(), business_name text not null constraint business_name_not_empty check(length(trim(business_name)) > 1), vatin vatin not null, trade_name text not null, phone packed_phone_number not null, email email not null, web uri not null, address text not null, city text not null, province text not null, postal_code text not null, country_code country_code not null references country, tags tag_name[] not null default '{}', created_at timestamptz not null default current_timestamp ); create index on contact using gin (tags); grant select, insert, update, delete on table contact to invoicer; grant select, insert, update, delete on table contact to admin; grant usage on sequence contact_contact_id_seq to invoicer; grant usage on sequence contact_contact_id_seq to admin; alter table contact enable row level security; create policy company_policy on contact using ( exists( select 1 from company_user join user_profile using (user_id) where company_user.company_id = contact.company_id ) ); commit;