   constraint party_relationship_type_pk primary key(id)
 );
 
+create table if not exists priority_type(
+  id uuid default uuid_generate_v4(),
+  description text unique not null constraint priority_type_description_not_empty check (description <> ''),
+  constraint priority_type_pk primary key(id)
+);
+
+create table if not exists status_type(
+  id uuid default uuid_generate_v4(),
+  description text unique not null constraint status_type_description_not_empty check (description <> ''),
+  constraint status_type_pk primary key(id)
+);
+
+create table if not exists party_relationship_status_type() inherits (status_type);
 
 create table if not exists party_relationship(
   id uuid default uuid_generate_v4(),

  thru_date date,
  comment text,
  party_relationship_type_id uuid not null references party_relationship_type(id),
  constraint party_relationship_pk primary key(id)
);

  constraint role_type_pk primary key(id)
);

create table if not exists party_role_type() inherits(role_type);

create table if not exists party_role(
  id uuid default uuid_generate_v4(),
  from_date date not null,
  thru_date date,
  party_role_type uuid not null references party_role_type(id),
  party_id uuid not null references party(id),
  constraint party_role_pk primary key(id)
);

create table if not exists person_role()inherits(party_role);
create table if not exists organization_role()inherits(party_role);
