CREATE TABLE WERKNEMER (
    WERKNEMER_ID NUMBER PRIMARY KEY,
    GEBOORTEDATUM DATE,
    NAAM VARCHAR2(80),
    VOORNAAM VARCHAR2(255),
    WOONPLAATS VARCHAR2(50)
);

CREATE TABLE FUNCTIE (
    FUNCTIE_ID NUMBER PRIMARY KEY,
    CODE VARCHAR2(50),
    NAAM VARCHAR2(80),
    OMSCHRIJVING CLOB,
    SCHAAL VARCHAR2(20),
    TAKEN CLOB
);

CREATE TABLE SOLLICITANT (
    SOLLICITANT_ID NUMBER PRIMARY KEY
);

CREATE TABLE DOCUMENT (
    DOCUMENT_ID NUMBER PRIMARY KEY,
    COCUMENTBESCHRIJVING VARCHAR2(255),
    DATUMCREATIEDOCUMENT DATE,
    DATUMONTVANGSTDOCUMENT DATE,
    DATUMVERZENDINGDOCUMENT DATE,
    DOCUMENTAUTEUR VARCHAR2(200),
    DOCUMENTIDENTIFICATIE VARCHAR2(255),
    DOCUMENTTITEL VARCHAR2(200),
    VERTROUWELIJKAANDUIDING VARCHAR2(20)
);

CREATE TABLE VACATURE (
    VACATURE_ID NUMBER PRIMARY KEY,
    DATUMGESLOTEN DATE,
    DATUMOPENGESTELD DATE,
    DEELTIJD TIMESTAMP,
    EXTERN NUMBER(1),
    INTERN NUMBER(1),
    VACATURE_BIJ_FUNCTIE_FUNCTIE_ID NUMBER,
    VASTEDIENST NUMBER(1)
);

CREATE TABLE KP_WRKNMR_DCMNT (
    KP_WRKNMR_DCMNT_ID NUMBER PRIMARY KEY,
    WERKNEMER_ID NUMBER,
    DOCUMENT_ID NUMBER
);

CREATE TABLE KP_VCTR_DCMNT (
    KP_VCTR_DCMNT_ID NUMBER PRIMARY KEY,
    VACATURE_ID NUMBER,
    DOCUMENT_ID NUMBER
);

CREATE TABLE SOLLICITATIE (
    SOLLICITATIE_ID NUMBER PRIMARY KEY,
    DATUM DATE,
    OP_VACATURE_VACATURE_ID NUMBER,
    SOLLICITEERT_OP_FUNCTIE_SOLLICITANT_ID NUMBER,
    SOLLICITEERT_WERKNEMER_ID NUMBER
);

CREATE TABLE SOLLICITATIEGESPREK (
    SOLLICITATIEGESPREK_ID NUMBER PRIMARY KEY,
    AANGENOMEN NUMBER(1),
    DATUM DATE,
    IN_KADER_VAN_SOLLICITATIE_ID NUMBER,
    OPMERKINGEN CLOB,
    VOLGENDGESPREK NUMBER(1)
);

CREATE TABLE KP_SLLCTTGSPRK_WRKNMR (
    KP_SLLCTTGSPRK_WRKNMR_ID NUMBER PRIMARY KEY,
    SOLLICITATIEGESPREK_ID NUMBER,
    WERKNEMER_ID NUMBER
);

CREATE TABLE KP_SLLCTTGSPRK_SLLCTNT (
    KP_SLLCTTGSPRK_SLLCTNT_ID NUMBER PRIMARY KEY,
    SOLLICITATIEGESPREK_ID NUMBER,
    SOLLICITANT_ID NUMBER
);

ALTER TABLE KP_WRKNMR_DCMNT ADD CONSTRAINT FK_KP_WRKNMR_DCMNT_1 FOREIGN KEY (WERKNEMER_ID) REFERENCES WERKNEMER (WERKNEMER_ID);
-- WERKNEMER (many-to-many junction, Connector_ID: 107)

ALTER TABLE KP_WRKNMR_DCMNT ADD CONSTRAINT FK_KP_WRKNMR_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 107)

ALTER TABLE KP_VCTR_DCMNT ADD CONSTRAINT FK_KP_VCTR_DCMNT_1 FOREIGN KEY (VACATURE_ID) REFERENCES VACATURE (VACATURE_ID);
-- VACATURE (many-to-many junction, Connector_ID: 108)

ALTER TABLE KP_VCTR_DCMNT ADD CONSTRAINT FK_KP_VCTR_DCMNT_2 FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENT (DOCUMENT_ID);
-- DOCUMENT (many-to-many junction, Connector_ID: 108)

ALTER TABLE KP_SLLCTTGSPRK_WRKNMR ADD CONSTRAINT FK_KP_SLLCTTGSPRK_WRKNMR_1 FOREIGN KEY (SOLLICITATIEGESPREK_ID) REFERENCES SOLLICITATIEGESPREK (SOLLICITATIEGESPREK_ID);
-- SOLLICITATIEGESPREK (many-to-many junction, Connector_ID: 436)

ALTER TABLE KP_SLLCTTGSPRK_WRKNMR ADD CONSTRAINT FK_KP_SLLCTTGSPRK_WRKNMR_2 FOREIGN KEY (WERKNEMER_ID) REFERENCES WERKNEMER (WERKNEMER_ID);
-- WERKNEMER (many-to-many junction, Connector_ID: 436)

ALTER TABLE KP_SLLCTTGSPRK_SLLCTNT ADD CONSTRAINT FK_KP_SLLCTTGSPRK_SLLCTNT_1 FOREIGN KEY (SOLLICITATIEGESPREK_ID) REFERENCES SOLLICITATIEGESPREK (SOLLICITATIEGESPREK_ID);
-- SOLLICITATIEGESPREK (many-to-many junction, Connector_ID: 440)

ALTER TABLE KP_SLLCTTGSPRK_SLLCTNT ADD CONSTRAINT FK_KP_SLLCTTGSPRK_SLLCTNT_2 FOREIGN KEY (SOLLICITANT_ID) REFERENCES SOLLICITANT (SOLLICITANT_ID);
-- SOLLICITANT (many-to-many junction, Connector_ID: 440)

ALTER TABLE SOLLICITATIE ADD CONSTRAINT FK_SOLLICITATIE_SOLLICITEERT FOREIGN KEY (SOLLICITEERT_WERKNEMER_ID) REFERENCES WERKNEMER (WERKNEMER_ID);
-- SOLLICITEERT (1 to 0..*, Connector_ID: 437)

ALTER TABLE SOLLICITATIEGESPREK ADD CONSTRAINT FK_SOLLICITATIEGESPREK_IN_KADER_VAN FOREIGN KEY (IN_KADER_VAN_SOLLICITATIE_ID) REFERENCES SOLLICITATIE (SOLLICITATIE_ID);
-- IN_KADER_VAN (0..* to 1, Connector_ID: 438)

ALTER TABLE SOLLICITATIE ADD CONSTRAINT FK_SOLLICITATIE_OP_VACATURE FOREIGN KEY (OP_VACATURE_VACATURE_ID) REFERENCES VACATURE (VACATURE_ID);
-- OP_VACATURE (0..* to 1, Connector_ID: 439)

ALTER TABLE SOLLICITATIE ADD CONSTRAINT FK_SOLLICITATIE_SOLLICITEERT_OP_FUNCTIE FOREIGN KEY (SOLLICITEERT_OP_FUNCTIE_SOLLICITANT_ID) REFERENCES SOLLICITANT (SOLLICITANT_ID);
-- SOLLICITEERT_OP_FUNCTIE (1 to 0..*, Connector_ID: 441)

ALTER TABLE VACATURE ADD CONSTRAINT FK_VACATURE_VACATURE_BIJ_FUNCTIE FOREIGN KEY (VACATURE_BIJ_FUNCTIE_FUNCTIE_ID) REFERENCES FUNCTIE (FUNCTIE_ID);
-- VACATURE_BIJ_FUNCTIE (0..* to 1, Connector_ID: 460)

