-- This script was generated by a beta version of the ERD tool in pgAdmin 4.
-- Please log an issue at https://redmine.postgresql.org/projects/pgadmin4/issues/new if you find any bugs, including reproduction steps.
BEGIN;


CREATE TABLE IF NOT EXISTS public.axis
(
    id integer NOT NULL SERIAL,
    name character varying(255),
    entity_id integer,
    PRIMARY KEY (id)
);  

CREATE TABLE IF NOT EXISTS public.dbrole
(
    id integer NOT NULL SERIAL,
    name character varying,
    description text,
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.dbtableaccess
(
    id integer NOT NULL SERIAL,
    tableaccess character varying(255),
    dbrole_id integer,
    userrolerestrictions character varying(255),
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.dbuser
(
    id integer NOT NULL SERIAL,
    login character varying(255) UNIQUE,
    password character varying(255),
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.dbuserrole
(
    id integer NOT NULL SERIAL,
    dbuser_id integer,
    entity_id integer,
    dbrole_id integer,
    startdate timestamp without time zone,
    enddate timestamp without time zone,
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.employee
(
    id bigint NOT NULL SERIAL,
    name character varying(255),
    firstname character varying(255),
    mail character varying(255),
    address character varying(255),
    zipcode bigint,
    city character varying(255),
    phonenumber bigint,
    mobilenumber bigint,
    socialinsurance bigint,
    persontocontactname character varying(255),
    persontocontactphone bigint,
    "position" character varying(255),
    salary money,
    entrydate timestamp without time zone,
    exitdate timestamp without time zone,
    contracttype character varying(255),
    dbuser_id integer,
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.entity
(
    id integer NOT NULL SERIAL,
    type character varying(255),
    parent_id bigint,
    description text,
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS public.project
(
    id integer NOT NULL SERIAL,
    name character varying(255),
    entity_id integer,
    PRIMARY KEY (id)
);

ALTER TABLE public.axis
    ADD FOREIGN KEY (entity_id)
    REFERENCES public.entity (id)
    NOT VALID;


ALTER TABLE public.dbtableaccess
    ADD FOREIGN KEY (dbrole_id)
    REFERENCES public.dbrole (id)
    NOT VALID;


ALTER TABLE public.dbuserrole
    ADD FOREIGN KEY (dbrole_id)
    REFERENCES public.dbrole (id)
    NOT VALID;


ALTER TABLE public.dbuserrole
    ADD FOREIGN KEY (dbuser_id)
    REFERENCES public.dbuser (id)
    NOT VALID;


ALTER TABLE public.dbuserrole
    ADD FOREIGN KEY (entity_id)
    REFERENCES public.entity (id)
    NOT VALID;


ALTER TABLE public.employee
    ADD FOREIGN KEY (dbuser_id)
    REFERENCES public.dbuser (id)
    NOT VALID;


ALTER TABLE public.project
    ADD FOREIGN KEY (entity_id)
    REFERENCES public.entity (id)
    NOT VALID;

END;