CREATE TABLE DRZAVE
(
  ID           NUMBER(12)                       NOT NULL,
  SIFRA        NUMBER(3)                        NOT NULL,
  NAZIV        VARCHAR2(128 CHAR)               NOT NULL,
  OZNAKA_2     VARCHAR2(2 CHAR)                 NOT NULL,
  OZNAKA_3     VARCHAR2(3 CHAR)                 NOT NULL
);
COMMENT ON TABLE DRZAVE IS 'Šifrarnik država';
COMMENT ON COLUMN DRZAVE.ID IS 'ID države (primarni ključ)';
COMMENT ON COLUMN DRZAVE.SIFRA IS 'Šifra države';
COMMENT ON COLUMN DRZAVE.NAZIV IS 'Naziv države';
COMMENT ON COLUMN DRZAVE.OZNAKA_2 IS 'ISO dvoslovna oznaka države';
COMMENT ON COLUMN DRZAVE.OZNAKA_3 IS 'ISO troslovna oznaka države';

CREATE UNIQUE INDEX DRZAVE_PK ON DRZAVE (ID);
ALTER TABLE DRZAVE ADD (CONSTRAINT DRZAVE_PK PRIMARY KEY (ID) USING INDEX DRZAVE_PK);





CREATE TABLE VRSTE_PRAVNIH_OBLIKA
(
  ID           NUMBER(12)                       NOT NULL,
  SIFRA        NUMBER(2)                        NOT NULL,
  NAZIV        VARCHAR2(128 CHAR)               NOT NULL,
  KRATICA      VARCHAR2(15 CHAR)                NOT NULL
);
COMMENT ON TABLE VRSTE_PRAVNIH_OBLIKA IS 'Šifrarnik vrsta pravnih oblika';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.ID IS 'ID vrste pravnih oblika (primarni ključ)';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.SIFRA IS 'Šifra vrste pravnog oblika';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.NAZIV IS 'Naziv vrste pravnog oblika';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.KRATICA IS 'Kratica vrste pravnog oblika';

CREATE UNIQUE INDEX VRSTE_PRAVNIH_OBLIKA_PK ON VRSTE_PRAVNIH_OBLIKA (ID);
ALTER TABLE VRSTE_PRAVNIH_OBLIKA ADD (CONSTRAINT VRSTE_PRAVNIH_OBLIKA_PK PRIMARY KEY (ID) USING INDEX VRSTE_PRAVNIH_OBLIKA_PK);





CREATE TABLE BRIS_REGISTRI
(
  IDENTIFIKATOR  VARCHAR2(15 CHAR)              NOT NULL,
  NAZIV          VARCHAR2(256 CHAR)             NOT NULL,
  DRZAVA_ID      NUMBER(12)                     NOT NULL
);
COMMENT ON TABLE BRIS_REGISTRI IS 'Šifrarnik BRIS registara';
COMMENT ON COLUMN BRIS_REGISTRI.IDENTIFIKATOR IS 'Šifra BRIS registra (ujedno i primarni ključ)';
COMMENT ON COLUMN BRIS_REGISTRI.NAZIV IS 'Naziv registra na nacionalnom jeziku';
COMMENT ON COLUMN BRIS_REGISTRI.DRZAVA_ID IS 'ID države';

CREATE UNIQUE INDEX BRIS_REGISTRI_PK ON BRIS_REGISTRI (IDENTIFIKATOR);
ALTER TABLE BRIS_REGISTRI ADD (CONSTRAINT BRIS_REGISTRI_PK PRIMARY KEY (IDENTIFIKATOR) USING INDEX BRIS_REGISTRI_PK);

CREATE INDEX BRIS_REGISTRI_DRZAVA_ID_I ON BRIS_REGISTRI (DRZAVA_ID);

ALTER TABLE BRIS_REGISTRI ADD (CONSTRAINT BRIS_REGISTRI_DRZAVA_ID_FK FOREIGN KEY (DRZAVA_ID)  REFERENCES DRZAVE (ID));





CREATE TABLE BRIS_PRAVNI_OBLICI
(
  BRIS_KOD                 VARCHAR2(9 CHAR)     NOT NULL,
  KRATICA                  VARCHAR2(130 CHAR),
  NAZIV                    VARCHAR2(1024 CHAR)  NOT NULL,
  DRZAVA_ID                NUMBER(12)           NOT NULL,
  VRSTA_PRAVNOG_OBLIKA_ID  NUMBER(12)
);
COMMENT ON TABLE BRIS_PRAVNI_OBLICI IS 'Šifrarnik BRIS pravnih oblika';
COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.BRIS_KOD IS 'Šifra BRIS pravnog oblika (ujedno i primarni ključ)';
COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.KRATICA IS 'Skraćeni naziv BRIS pravnog oblika';
COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.NAZIV IS 'Naziv BRIS pravnog oblika';
COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.DRZAVA_ID IS 'ID države kojoj pravni oblik pripada';
COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.VRSTA_PRAVNOG_OBLIKA_ID IS 'ID vrste odgovarajućeg pravnog oblika u RH';

CREATE UNIQUE INDEX BRIS_PRAVNI_OBLICI_PK ON BRIS_PRAVNI_OBLICI (BRIS_KOD);
ALTER TABLE BRIS_PRAVNI_OBLICI ADD (CONSTRAINT BRIS_PRAVNI_OBLICI_PK PRIMARY KEY (BRIS_KOD) USING INDEX BRIS_PRAVNI_OBLICI_PK);

CREATE INDEX BRIS_PRAVNI_OBLICI_DRZAVA_ID_I ON BRIS_PRAVNI_OBLICI (DRZAVA_ID);
CREATE INDEX BRIS_PRAVNI_OBLICI_VRSTA_PRAVNOG_OBLIKA_ID_I ON BRIS_PRAVNI_OBLICI (VRSTA_PRAVNOG_OBLIKA_ID);

ALTER TABLE BRIS_PRAVNI_OBLICI ADD (CONSTRAINT BRIS_PRAVNI_OBLICI_DRZAVA_ID_FK FOREIGN KEY (DRZAVA_ID)  REFERENCES DRZAVE (ID));
ALTER TABLE BRIS_PRAVNI_OBLICI ADD (CONSTRAINT BRIS_PRAVNI_OBLICI_VRSTA_PRAVNOG_OBLIKA_ID_FK FOREIGN KEY (VRSTA_PRAVNOG_OBLIKA_ID)  REFERENCES VRSTE_PRAVNIH_OBLIKA (ID));





CREATE TABLE JEZICI
(
  ID           NUMBER(12)                       NOT NULL,
  SIFRA        NUMBER(3)                        NOT NULL,
  NAZIV        VARCHAR2(128 CHAR)               NOT NULL
);
COMMENT ON TABLE JEZICI IS 'Šifrarnik jezika';
COMMENT ON COLUMN JEZICI.ID IS 'ID jezika (primarni ključ)';
COMMENT ON COLUMN JEZICI.SIFRA IS 'Šifra jezika';
COMMENT ON COLUMN JEZICI.NAZIV IS 'Naziv jezika';

CREATE UNIQUE INDEX JEZICI_PK ON JEZICI (ID);
ALTER TABLE JEZICI ADD (CONSTRAINT JEZICI_PK PRIMARY KEY (ID) USING INDEX JEZICI_PK);





CREATE TABLE NACIONALNA_KLASIFIKACIJA_DJELATNOSTI
(
  ID           NUMBER(12)                       NOT NULL,
  SIFRA        VARCHAR2(7 CHAR)                 NOT NULL,
  PUNI_NAZIV   VARCHAR2(512 CHAR)               NOT NULL,
  VERZIJA      VARCHAR2(64 CHAR)                NOT NULL
);
COMMENT ON TABLE NACIONALNA_KLASIFIKACIJA_DJELATNOSTI IS 'Nacionalna klasifikacija djelatnosti';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.ID IS 'ID djelatnosti prema NKD šifrarniku (primarni ključ)';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.SIFRA IS 'Šifra djelatnosti';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.PUNI_NAZIV IS 'Puni naziv djelatnosti';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.VERZIJA IS 'Oznaka verzije NKD šifrarnika (NKD 2002, NKD 2007, ...)';

CREATE UNIQUE INDEX NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_PK ON NACIONALNA_KLASIFIKACIJA_DJELATNOSTI (ID);
ALTER TABLE NACIONALNA_KLASIFIKACIJA_DJELATNOSTI ADD (CONSTRAINT NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_PK PRIMARY KEY (ID) USING INDEX NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_PK);





CREATE TABLE VALUTE
(
  ID           NUMBER(12)                       NOT NULL,
  SIFRA        NUMBER(3)                        NOT NULL,
  NAZIV        VARCHAR2(128 CHAR)               NOT NULL,
  DRZAVA_ID    NUMBER(12)
);
COMMENT ON TABLE VALUTE IS 'Šifrarnik valuta';
COMMENT ON COLUMN VALUTE.ID IS 'ID valute (primarni ključ)';
COMMENT ON COLUMN VALUTE.SIFRA IS 'Šifra valute';
COMMENT ON COLUMN VALUTE.NAZIV IS 'Naziv valute';
COMMENT ON COLUMN VALUTE.DRZAVA_ID IS 'ID države';

CREATE UNIQUE INDEX VALUTE_PK ON VALUTE (ID);
ALTER TABLE VALUTE ADD (CONSTRAINT VALUTE_PK PRIMARY KEY (ID) USING INDEX VALUTE_PK);

CREATE INDEX VALUTE_DRZAVA_ID_I ON VALUTE (DRZAVA_ID);

ALTER TABLE VALUTE ADD (CONSTRAINT VALUTE_DRZAVA_ID_FK FOREIGN KEY (DRZAVA_ID)  REFERENCES DRZAVE (ID));





CREATE TABLE VRSTE_GFI_DOKUMENATA
(
  VRSTA        NUMBER(1)                        NOT NULL,
  ZNACENJE     VARCHAR2(256 CHAR)               NOT NULL
);
COMMENT ON TABLE VRSTE_GFI_DOKUMENATA IS 'Šifrarnik vrsta GFI dokumenata';
COMMENT ON COLUMN VRSTE_GFI_DOKUMENATA.VRSTA IS 'Šifra vrste GFI dokumenta (ujedno i primarni ključ)';
COMMENT ON COLUMN VRSTE_GFI_DOKUMENATA.ZNACENJE IS 'Naziv vrste GFI dokumenta';

CREATE UNIQUE INDEX VRSTE_GFI_DOKUMENATA_PK ON VRSTE_GFI_DOKUMENATA (VRSTA);
ALTER TABLE VRSTE_GFI_DOKUMENATA ADD (CONSTRAINT VRSTE_GFI_DOKUMENATA_PK PRIMARY KEY (VRSTA) USING INDEX VRSTE_GFI_DOKUMENATA_PK);





CREATE TABLE VRSTE_POSTUPAKA
(
  POSTUPAK     NUMBER(1),
  ZNACENJE     VARCHAR2(256 CHAR)               NOT NULL
);
COMMENT ON TABLE VRSTE_POSTUPAKA IS 'Šifrarnik vrsta postupaka';
COMMENT ON COLUMN VRSTE_POSTUPAKA.POSTUPAK IS 'Šifra vrste postupka (ujedno i primarni ključ)';
COMMENT ON COLUMN VRSTE_POSTUPAKA.ZNACENJE IS 'Naziv vrste postupka';

CREATE UNIQUE INDEX VRSTE_POSTUPAKA_PK ON VRSTE_POSTUPAKA (POSTUPAK);
ALTER TABLE VRSTE_POSTUPAKA ADD (CONSTRAINT VRSTE_POSTUPAKA_PK PRIMARY KEY (POSTUPAK) USING INDEX VRSTE_POSTUPAKA_PK);





CREATE TABLE STATUSI
(
  VRSTA        NUMBER(1)                        NOT NULL,
  ZNACENJE     VARCHAR2(256 CHAR)               NOT NULL
);
COMMENT ON TABLE STATUSI IS 'Šifrarnik statusa retka';
COMMENT ON COLUMN STATUSI.VRSTA IS 'Šifra statusa (ujedno i primarni ključ)';
COMMENT ON COLUMN STATUSI.ZNACENJE IS 'Naziv statusa';

CREATE UNIQUE INDEX STATUSI_PK ON STATUSI (VRSTA);
ALTER TABLE STATUSI ADD (CONSTRAINT STATUSI_PK PRIMARY KEY (VRSTA) USING INDEX STATUSI_PK);





CREATE TABLE SUDOVI
(
  ID               NUMBER(12)                   NOT NULL,
  SIFRA            NUMBER(2)                    NOT NULL,
  NAZIV            VARCHAR2(128 CHAR)           NOT NULL,
  SIFRA_ZUPANIJE   NUMBER(3)                    NOT NULL,
  NAZIV_ZUPANIJE   VARCHAR2(128 CHAR)           NOT NULL,
  SIFRA_OPCINE     NUMBER(5)                    NOT NULL,
  NAZIV_OPCINE     VARCHAR2(128 CHAR)           NOT NULL,
  SIFRA_NASELJA    NUMBER(10)                   NOT NULL,
  NAZIV_NASELJA    VARCHAR2(128 CHAR)           NOT NULL,
  SUD_ID_NADLEZAN  NUMBER(12),
  IZDAJE_IZVATKE   NUMBER(1)                    NOT NULL
);
COMMENT ON TABLE SUDOVI IS 'Šifrarnik sudova';
COMMENT ON COLUMN SUDOVI.ID IS 'ID suda (primarni ključ)';
COMMENT ON COLUMN SUDOVI.SIFRA IS 'Šifra suda';
COMMENT ON COLUMN SUDOVI.NAZIV IS 'Naziv suda';
COMMENT ON COLUMN SUDOVI.SIFRA_ZUPANIJE IS 'Šifra županije';
COMMENT ON COLUMN SUDOVI.NAZIV_ZUPANIJE IS 'Naziv županije';
COMMENT ON COLUMN SUDOVI.SIFRA_OPCINE IS 'Šifra općine';
COMMENT ON COLUMN SUDOVI.NAZIV_OPCINE IS 'Naziv općine';
COMMENT ON COLUMN SUDOVI.SIFRA_NASELJA IS 'Šifra naselja';
COMMENT ON COLUMN SUDOVI.NAZIV_NASELJA IS 'Naziv naselja';
COMMENT ON COLUMN SUDOVI.SUD_ID_NADLEZAN IS 'ID nadležnog suda (samo za stalne službe)';
COMMENT ON COLUMN SUDOVI.IZDAJE_IZVATKE IS 'Oznaka da li sud izdaje izvatke';

CREATE UNIQUE INDEX SUDOVI_PK ON SUDOVI (ID);
ALTER TABLE SUDOVI ADD (CONSTRAINT SUDOVI_PK PRIMARY KEY (ID) USING INDEX SUDOVI_PK);

CREATE INDEX SUDOVI_SUD_ID_NADLEZAN_I ON SUDOVI (SUD_ID_NADLEZAN);

ALTER TABLE SUDOVI ADD (CONSTRAINT SUDOVI_SUD_ID_NADLEZAN_FK FOREIGN KEY (SUD_ID_NADLEZAN)  REFERENCES SUDOVI (ID));





CREATE TABLE SUBJEKTI
(
  MBS                     NUMBER(9)             NOT NULL,
  STATUS                  NUMBER(1)             NOT NULL,
  SUD_ID_NADLEZAN         NUMBER(12)            NOT NULL,
  SUD_ID_SLUZBA           NUMBER(12)            NOT NULL,
  POSTUPAK                NUMBER(1)             NOT NULL,
  OIB                     NUMBER(11),
  MB                      NUMBER(8),
  INO_PODRUZNICA          NUMBER(1)             NOT NULL,
  STECAJNA_MASA           NUMBER(1)             NOT NULL,
  LIKVIDACIJSKA_MASA      NUMBER(1)             NOT NULL,
  MBS_BRISANOG_SUBJEKTA   NUMBER(9),
  GLAVNA_DJELATNOST       NUMBER(5),
  GLAVNA_PODRUZNICA_RBR   NUMBER(4),
  DATUM_OSNIVANJA         DATE,
  DATUM_BRISANJA          DATE,
  SUD_ID_BRISANJA         NUMBER(12),
  TVRTKA_KOD_BRISANJA     VARCHAR2(1024 CHAR),
  POSLOVNI_BROJ_BRISANJA  VARCHAR2(17 CHAR)
);
COMMENT ON TABLE SUBJEKTI IS 'Evidencija osnovnih podataka o subjektima';
COMMENT ON COLUMN SUBJEKTI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN SUBJEKTI.STATUS IS 'Status subjekta (1 - Aktivan, 0 - Neaktivni/Brisan)';
COMMENT ON COLUMN SUBJEKTI.SUD_ID_NADLEZAN IS 'ID nadležnog suda';
COMMENT ON COLUMN SUBJEKTI.SUD_ID_SLUZBA IS 'ID stalne službe ili nadležnog suda ako nema stalne službe';
COMMENT ON COLUMN SUBJEKTI.POSTUPAK IS 'Postupak u kojem se subjekt nalazi (stečaj, likvidacija, ...) ';
COMMENT ON COLUMN SUBJEKTI.OIB IS 'Osobni identifikacijski broj subjekta';
COMMENT ON COLUMN SUBJEKTI.MB IS 'Matični broj poslovnog subjekta (dodjeljuje DZS)';
COMMENT ON COLUMN SUBJEKTI.INO_PODRUZNICA IS 'Oznaka da li je subjekt podružnica inozemnog osnivača (denormalizirano iz vrste pravnog oblika)';
COMMENT ON COLUMN SUBJEKTI.STECAJNA_MASA IS 'Oznaka da je je subjekt stečajna masa (denormalizirano iz vrste pravnog oblika)';
COMMENT ON COLUMN SUBJEKTI.LIKVIDACIJSKA_MASA IS 'Oznaka da li je subjekt likvidacijska masa (denormalizirano iz vrste pravnog oblika)';
COMMENT ON COLUMN SUBJEKTI.MBS_BRISANOG_SUBJEKTA IS 'Brisani subjekt iza kojeg ovaj subjekt nastaje (samo za stečaju i likvidacijsku masu)';
COMMENT ON COLUMN SUBJEKTI.GLAVNA_DJELATNOST IS 'Šifra glavne djelatnosti prema NKD šifrarniku';
COMMENT ON COLUMN SUBJEKTI.GLAVNA_PODRUZNICA_RBR IS 'Redni broj trenutno glavne podružnice inozemnog osnivača';
COMMENT ON COLUMN SUBJEKTI.DATUM_OSNIVANJA IS 'Datum osnivanja subjekta';
COMMENT ON COLUMN SUBJEKTI.DATUM_BRISANJA IS 'Datum brisanja subjekta';
COMMENT ON COLUMN SUBJEKTI.SUD_ID_BRISANJA IS 'ID suda koji je brisao subjekt iz registra';
COMMENT ON COLUMN SUBJEKTI.TVRTKA_KOD_BRISANJA IS 'Puna tvrtka/naziv subjekta upisa u trenutku brisanja (denormalizirano iz tvrtke)';
COMMENT ON COLUMN SUBJEKTI.POSLOVNI_BROJ_BRISANJA IS 'Poslovni broj rješenja kojim je subjekt brisan iz registra';

CREATE UNIQUE INDEX SUBJEKTI_PK ON SUBJEKTI (MBS);
ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_PK PRIMARY KEY (MBS) USING INDEX SUBJEKTI_PK);

CREATE INDEX SUBJEKTI_OIB_I ON SUBJEKTI (OIB);
CREATE INDEX SUBJEKTI_POSTUPAK_I ON SUBJEKTI (POSTUPAK);
CREATE INDEX SUBJEKTI_STATUS_I ON SUBJEKTI (STATUS);
CREATE INDEX SUBJEKTI_SUD_ID_BRISANJA_I ON SUBJEKTI (SUD_ID_BRISANJA);
CREATE INDEX SUBJEKTI_SUD_ID_NADLEZAN_I ON SUBJEKTI (SUD_ID_NADLEZAN);
CREATE INDEX SUBJEKTI_SUD_ID_SLUZBA_I ON SUBJEKTI (SUD_ID_SLUZBA);

ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_POSTUPAK_FK FOREIGN KEY (POSTUPAK)  REFERENCES VRSTE_POSTUPAKA (POSTUPAK));
ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_STATUS_FK FOREIGN KEY (STATUS)  REFERENCES STATUSI (VRSTA));
ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_SUD_ID_BRISANJA_FK FOREIGN KEY (SUD_ID_BRISANJA)  REFERENCES SUDOVI (ID));
ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_SUD_ID_NADLEZAN_FK FOREIGN KEY (SUD_ID_NADLEZAN)  REFERENCES SUDOVI (ID));
ALTER TABLE SUBJEKTI ADD (CONSTRAINT SUBJEKTI_SUD_ID_SLUZBA_FK FOREIGN KEY (SUD_ID_SLUZBA)  REFERENCES SUDOVI (ID));





CREATE TABLE POSTUPCI
(
  MBS                 NUMBER(9)                 NOT NULL,
  POSTUPAK            NUMBER(1)                 NOT NULL,
  DATUM_STECAJA       DATE
);
COMMENT ON TABLE POSTUPCI IS 'Evidencija postupaka nad subjektima';
COMMENT ON COLUMN POSTUPCI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN POSTUPCI.POSTUPAK IS 'Šifra postupka (stečaj, likvidacija, ...)';
COMMENT ON COLUMN POSTUPCI.DATUM_STECAJA IS 'Datum donošenja rješenja stečajnog odjela suda o pokretanju stečajnog postupka, s kojim nastupaju sve pravne posljedice stečaja. Polje je prazno kod stečaja koji su uneseni prije uvođenja ovog polja.';

CREATE UNIQUE INDEX POSTUPCI_PK ON POSTUPCI (MBS);
ALTER TABLE POSTUPCI ADD (CONSTRAINT POSTUPCI_PK PRIMARY KEY (MBS) USING INDEX POSTUPCI_PK);

CREATE INDEX POSTUPCI_POSTUPAK_I ON POSTUPCI (POSTUPAK);

ALTER TABLE POSTUPCI ADD (CONSTRAINT POSTUPCI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE POSTUPCI ADD (CONSTRAINT POSTUPCI_POSTUPAK_FK FOREIGN KEY (POSTUPAK)  REFERENCES VRSTE_POSTUPAKA (POSTUPAK));





CREATE TABLE TVRTKE
(
  MBS                 NUMBER(9)                 NOT NULL,
  IME                 VARCHAR2(1024 CHAR)       NOT NULL,
  NAZNAKA_IMENA       VARCHAR2(512 CHAR)
);
COMMENT ON TABLE TVRTKE IS 'Evidencija tvrtki (naziva) subjekata';
COMMENT ON COLUMN TVRTKE.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN TVRTKE.IME IS 'Puna tvrtka/naziv subjekta upisa';
COMMENT ON COLUMN TVRTKE.NAZNAKA_IMENA IS 'Naznaka tvrtke/naziva';

CREATE UNIQUE INDEX TVRTKE_PK ON TVRTKE (MBS);
ALTER TABLE TVRTKE ADD (CONSTRAINT TVRTKE_PK PRIMARY KEY (MBS) USING INDEX TVRTKE_PK);


ALTER TABLE TVRTKE ADD (CONSTRAINT TVRTKE_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE SKRACENE_TVRTKE
(
  MBS                 NUMBER(9)                 NOT NULL,
  IME                 VARCHAR2(512 CHAR)        NOT NULL
);
COMMENT ON TABLE SKRACENE_TVRTKE IS 'Evidencija skraćenih tvrtki subjekata';
COMMENT ON COLUMN SKRACENE_TVRTKE.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN SKRACENE_TVRTKE.IME IS 'Naziv skraćene tvrtke';

CREATE UNIQUE INDEX SKRACENE_TVRTKE_PK ON SKRACENE_TVRTKE (MBS);
ALTER TABLE SKRACENE_TVRTKE ADD (CONSTRAINT SKRACENE_TVRTKE_PK PRIMARY KEY (MBS) USING INDEX SKRACENE_TVRTKE_PK);


ALTER TABLE SKRACENE_TVRTKE ADD (CONSTRAINT SKRACENE_TVRTKE_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE PRIJEVODI_TVRTKI
(
  MBS                  NUMBER(9)                NOT NULL,
  PRIJEVOD_TVRTKE_RBR  NUMBER(3)                NOT NULL,
  IME                  VARCHAR2(1024 CHAR)      NOT NULL,
  JEZIK_ID             NUMBER(12)               NOT NULL
);
COMMENT ON TABLE PRIJEVODI_TVRTKI IS 'Evidencija prijevoda tvrtki subjekata';
COMMENT ON COLUMN PRIJEVODI_TVRTKI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PRIJEVODI_TVRTKI.PRIJEVOD_TVRTKE_RBR IS 'Redni broj prijevoda';
COMMENT ON COLUMN PRIJEVODI_TVRTKI.IME IS 'Prijevod tvrtke';
COMMENT ON COLUMN PRIJEVODI_TVRTKI.JEZIK_ID IS 'ID jezika';

CREATE UNIQUE INDEX PRIJEVODI_TVRTKI_PK ON PRIJEVODI_TVRTKI (MBS, PRIJEVOD_TVRTKE_RBR);
ALTER TABLE PRIJEVODI_TVRTKI ADD (CONSTRAINT PRIJEVODI_TVRTKI_PK PRIMARY KEY (MBS, PRIJEVOD_TVRTKE_RBR) USING INDEX PRIJEVODI_TVRTKI_PK);

CREATE INDEX PRIJEVODI_TVRTKI_JEZIK_ID_I ON PRIJEVODI_TVRTKI (JEZIK_ID);

ALTER TABLE PRIJEVODI_TVRTKI ADD (CONSTRAINT PRIJEVODI_TVRTKI_JEZIK_ID_FK FOREIGN KEY (JEZIK_ID)  REFERENCES JEZICI (ID));
ALTER TABLE PRIJEVODI_TVRTKI ADD (CONSTRAINT PRIJEVODI_TVRTKI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE PRIJEVODI_SKRACENIH_TVRTKI
(
  MBS                           NUMBER(9)       NOT NULL,
  PRIJEVOD_SKRACENE_TVRTKE_RBR  NUMBER(3)       NOT NULL,
  IME                           VARCHAR2(512 CHAR),
  JEZIK_ID                      NUMBER(12)      NOT NULL
);
COMMENT ON TABLE PRIJEVODI_SKRACENIH_TVRTKI IS 'Evidencija prijevoda skraćenih tvrtki subjekata';
COMMENT ON COLUMN PRIJEVODI_SKRACENIH_TVRTKI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PRIJEVODI_SKRACENIH_TVRTKI.PRIJEVOD_SKRACENE_TVRTKE_RBR IS 'Redni broj prijevoda';
COMMENT ON COLUMN PRIJEVODI_SKRACENIH_TVRTKI.IME IS 'Prijevod skraćene tvrtke';
COMMENT ON COLUMN PRIJEVODI_SKRACENIH_TVRTKI.JEZIK_ID IS 'ID jezika';

CREATE UNIQUE INDEX PRIJEVODI_SKRACENIH_TVRTKI_PK ON PRIJEVODI_SKRACENIH_TVRTKI (MBS, PRIJEVOD_SKRACENE_TVRTKE_RBR);
ALTER TABLE PRIJEVODI_SKRACENIH_TVRTKI ADD (CONSTRAINT PRIJEVODI_SKRACENIH_TVRTKI_PK PRIMARY KEY (MBS, PRIJEVOD_SKRACENE_TVRTKE_RBR) USING INDEX PRIJEVODI_SKRACENIH_TVRTKI_PK);

CREATE INDEX PRIJEVODI_SKRACENIH_TVRTKI_JEZIK_ID_I ON PRIJEVODI_SKRACENIH_TVRTKI (JEZIK_ID);

ALTER TABLE PRIJEVODI_SKRACENIH_TVRTKI ADD (CONSTRAINT PRIJEVODI_SKRACENIH_TVRTKI_JEZIK_ID_FK FOREIGN KEY (JEZIK_ID)  REFERENCES JEZICI (ID));
ALTER TABLE PRIJEVODI_SKRACENIH_TVRTKI ADD (CONSTRAINT PRIJEVODI_SKRACENIH_TVRTKI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE INOZEMNI_REGISTRI
(
  MBS                          NUMBER(9)        NOT NULL,
  DRZAVA_ID                    NUMBER(12)       NOT NULL,
  NAZIV_REGISTRA               VARCHAR2(128 CHAR),
  REGISTARSKO_TIJELO           VARCHAR2(128 CHAR),
  BROJ_IZ_REGISTRA             VARCHAR2(128 CHAR),
  PRAVNI_OBLIK                 VARCHAR2(200 CHAR),
  BRIS_REGISTAR_IDENTIFIKATOR  VARCHAR2(15 CHAR),
  EUID                         VARCHAR2(54 CHAR),
  BRIS_PRAVNI_OBLIK_KOD        VARCHAR2(9 CHAR)
);
COMMENT ON TABLE INOZEMNI_REGISTRI IS 'Evidencija podataka o inozemnim registrima subjekata (za inozemne podružnice)';
COMMENT ON COLUMN INOZEMNI_REGISTRI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN INOZEMNI_REGISTRI.DRZAVA_ID IS 'ID države';
COMMENT ON COLUMN INOZEMNI_REGISTRI.NAZIV_REGISTRA IS 'Naziv matičnog registra subjekta';
COMMENT ON COLUMN INOZEMNI_REGISTRI.REGISTARSKO_TIJELO IS 'Naziv tijela koje vodi matični registar subjekta';
COMMENT ON COLUMN INOZEMNI_REGISTRI.BROJ_IZ_REGISTRA IS 'Broj subjekta u matičnom registru';
COMMENT ON COLUMN INOZEMNI_REGISTRI.PRAVNI_OBLIK IS 'Slobodni unos pravnog oblika za inozemne osnivače izvan EU';
COMMENT ON COLUMN INOZEMNI_REGISTRI.BRIS_REGISTAR_IDENTIFIKATOR IS 'Šifra BRIS registra';
COMMENT ON COLUMN INOZEMNI_REGISTRI.EUID IS 'EU jedinstveni registarski broj subjekta - EU unique identifier';
COMMENT ON COLUMN INOZEMNI_REGISTRI.BRIS_PRAVNI_OBLIK_KOD IS 'Šifra BRIS pravnog oblika';

CREATE UNIQUE INDEX INOZEMNI_REGISTRI_PK ON INOZEMNI_REGISTRI (MBS);
ALTER TABLE INOZEMNI_REGISTRI ADD (CONSTRAINT INOZEMNI_REGISTRI_PK PRIMARY KEY (MBS) USING INDEX INOZEMNI_REGISTRI_PK);

CREATE INDEX INOZEMNI_REGISTRI_BRIS_PRAVNI_OBLIK_KOD_I ON INOZEMNI_REGISTRI (BRIS_PRAVNI_OBLIK_KOD);
CREATE INDEX INOZEMNI_REGISTRI_BRIS_REGISTAR_IDENTIFIKATOR_I ON INOZEMNI_REGISTRI (BRIS_REGISTAR_IDENTIFIKATOR);
CREATE INDEX INOZEMNI_REGISTRI_DRZAVA_ID_I ON INOZEMNI_REGISTRI (DRZAVA_ID);

ALTER TABLE INOZEMNI_REGISTRI ADD (CONSTRAINT INOZEMNI_REGISTRI_BRIS_PRAVNI_OBLIK_KOD_FK FOREIGN KEY (BRIS_PRAVNI_OBLIK_KOD)  REFERENCES BRIS_PRAVNI_OBLICI (BRIS_KOD));
ALTER TABLE INOZEMNI_REGISTRI ADD (CONSTRAINT INOZEMNI_REGISTRI_BRIS_REGISTAR_IDENTIFIKATOR_FK FOREIGN KEY (BRIS_REGISTAR_IDENTIFIKATOR)  REFERENCES BRIS_REGISTRI (IDENTIFIKATOR));
ALTER TABLE INOZEMNI_REGISTRI ADD (CONSTRAINT INOZEMNI_REGISTRI_DRZAVA_ID_FK FOREIGN KEY (DRZAVA_ID)  REFERENCES DRZAVE (ID));
ALTER TABLE INOZEMNI_REGISTRI ADD (CONSTRAINT INOZEMNI_REGISTRI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE SJEDISTA
(
  MBS                     NUMBER(9)             NOT NULL,
  DRZAVA_ID               NUMBER(12),
  SIFRA_ZUPANIJE          NUMBER(3),
  NAZIV_ZUPANIJE          VARCHAR2(128 CHAR),
  SIFRA_OPCINE            NUMBER(5),
  NAZIV_OPCINE            VARCHAR2(128 CHAR),
  SIFRA_NASELJA           NUMBER(10),
  NAZIV_NASELJA           VARCHAR2(128 CHAR),
  NASELJE_VAN_SIFRARNIKA  VARCHAR2(128 CHAR),
  SIFRA_ULICE             NUMBER(10),
  ULICA                   VARCHAR2(512 CHAR),
  KUCNI_BROJ              NUMBER(6),
  KUCNI_PODBROJ           VARCHAR2(10 CHAR),
  POSTANSKI_BROJ          NUMBER(5)
);
COMMENT ON TABLE SJEDISTA IS 'Evidencija sjedišta i adresa subjekata';
COMMENT ON COLUMN SJEDISTA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN SJEDISTA.DRZAVA_ID IS 'ID države (za domaća sjedišta je NULL)';
COMMENT ON COLUMN SJEDISTA.SIFRA_ZUPANIJE IS 'Šifra županije';
COMMENT ON COLUMN SJEDISTA.NAZIV_ZUPANIJE IS 'Naziv županije';
COMMENT ON COLUMN SJEDISTA.SIFRA_OPCINE IS 'Šifra općine';
COMMENT ON COLUMN SJEDISTA.NAZIV_OPCINE IS 'Naziv općine';
COMMENT ON COLUMN SJEDISTA.SIFRA_NASELJA IS 'Šifra naselja';
COMMENT ON COLUMN SJEDISTA.NAZIV_NASELJA IS 'Naziv naselja';
COMMENT ON COLUMN SJEDISTA.NASELJE_VAN_SIFRARNIKA IS 'Naziv stranog naselja';
COMMENT ON COLUMN SJEDISTA.SIFRA_ULICE IS 'Šifra ulice';
COMMENT ON COLUMN SJEDISTA.ULICA IS 'Ulica';
COMMENT ON COLUMN SJEDISTA.KUCNI_BROJ IS 'Kućni broj';
COMMENT ON COLUMN SJEDISTA.KUCNI_PODBROJ IS 'Kućni podbroj';
COMMENT ON COLUMN SJEDISTA.POSTANSKI_BROJ IS 'Poštanski broj';

CREATE UNIQUE INDEX SJEDISTA_PK ON SJEDISTA (MBS);
ALTER TABLE SJEDISTA ADD (CONSTRAINT SJEDISTA_PK PRIMARY KEY (MBS) USING INDEX SJEDISTA_PK);

CREATE INDEX SJEDISTA_DRZAVA_ID_I ON SJEDISTA (DRZAVA_ID);

ALTER TABLE SJEDISTA ADD (CONSTRAINT SJEDISTA_DRZAVA_ID_FK FOREIGN KEY (DRZAVA_ID)  REFERENCES DRZAVE (ID));
ALTER TABLE SJEDISTA ADD (CONSTRAINT SJEDISTA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE EMAIL_ADRESE
(
  MBS                 NUMBER(9)                 NOT NULL,
  EMAIL_ADRESA_RBR    NUMBER(3)                 NOT NULL,
  ADRESA              VARCHAR2(256 CHAR)        NOT NULL
);
COMMENT ON TABLE EMAIL_ADRESE IS 'Evidencija e-mail adresa subjekata';
COMMENT ON COLUMN EMAIL_ADRESE.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN EMAIL_ADRESE.EMAIL_ADRESA_RBR IS 'Redni broj adrese u subjektu';
COMMENT ON COLUMN EMAIL_ADRESE.ADRESA IS 'E-mail adresa';

CREATE UNIQUE INDEX EMAIL_ADRESE_PK ON EMAIL_ADRESE (MBS, EMAIL_ADRESA_RBR);
ALTER TABLE EMAIL_ADRESE ADD (CONSTRAINT EMAIL_ADRESE_PK PRIMARY KEY (MBS, EMAIL_ADRESA_RBR) USING INDEX EMAIL_ADRESE_PK);


ALTER TABLE EMAIL_ADRESE ADD (CONSTRAINT EMAIL_ADRESE_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE PRAVNI_OBLICI
(
  MBS                      NUMBER(9)            NOT NULL,
  VRSTA_PRAVNOG_OBLIKA_ID  NUMBER(12)           NOT NULL
);
COMMENT ON TABLE PRAVNI_OBLICI IS 'Evidencija pravnih oblika subjekata';
COMMENT ON COLUMN PRAVNI_OBLICI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PRAVNI_OBLICI.VRSTA_PRAVNOG_OBLIKA_ID IS 'ID vrste pravnog oblika';

CREATE UNIQUE INDEX PRAVNI_OBLICI_PK ON PRAVNI_OBLICI (MBS);
ALTER TABLE PRAVNI_OBLICI ADD (CONSTRAINT PRAVNI_OBLICI_PK PRIMARY KEY (MBS) USING INDEX PRAVNI_OBLICI_PK);

CREATE INDEX PRAVNI_OBLICI_VRSTA_PRAVNOG_OBLIKA_ID_I ON PRAVNI_OBLICI (VRSTA_PRAVNOG_OBLIKA_ID);

ALTER TABLE PRAVNI_OBLICI ADD (CONSTRAINT PRAVNI_OBLICI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE PRAVNI_OBLICI ADD (CONSTRAINT PRAVNI_OBLICI_VRSTA_PRAVNOG_OBLIKA_ID_FK FOREIGN KEY (VRSTA_PRAVNOG_OBLIKA_ID)  REFERENCES VRSTE_PRAVNIH_OBLIKA (ID));





CREATE TABLE PRETEZITE_DJELATNOSTI
(
  MBS                                      NUMBER(9) NOT NULL,
  NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID  NUMBER(12) NOT NULL
);
COMMENT ON TABLE PRETEZITE_DJELATNOSTI IS 'Evidencija pretežitih djelatnosti subjekata';
COMMENT ON COLUMN PRETEZITE_DJELATNOSTI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PRETEZITE_DJELATNOSTI.NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID IS 'ID djelatnosti prema NKD šifrarniku';

CREATE UNIQUE INDEX PRETEZITE_DJELATNOSTI_PK ON PRETEZITE_DJELATNOSTI (MBS);
ALTER TABLE PRETEZITE_DJELATNOSTI ADD (CONSTRAINT PRETEZITE_DJELATNOSTI_PK PRIMARY KEY (MBS) USING INDEX PRETEZITE_DJELATNOSTI_PK);

CREATE INDEX PRETEZITE_DJELATNOSTI_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_I ON PRETEZITE_DJELATNOSTI (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID);

ALTER TABLE PRETEZITE_DJELATNOSTI ADD (CONSTRAINT PRETEZITE_DJELATNOSTI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE PRETEZITE_DJELATNOSTI ADD (CONSTRAINT PRETEZITE_DJELATNOSTI_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_FK FOREIGN KEY (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID)  REFERENCES NACIONALNA_KLASIFIKACIJA_DJELATNOSTI (ID));





CREATE TABLE PREDMETI_POSLOVANJA
(
  MBS                                      NUMBER(9) NOT NULL,
  DJELATNOST_RBR                           NUMBER(3) NOT NULL,
  NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID  NUMBER(12),
  DJELATNOST_TEKST                         VARCHAR2(4000 CHAR)
);
COMMENT ON TABLE PREDMETI_POSLOVANJA IS 'Evidencija predmeta poslovanja (djelatnosti) subjekata';
COMMENT ON COLUMN PREDMETI_POSLOVANJA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PREDMETI_POSLOVANJA.DJELATNOST_RBR IS 'Redni broj djelatnosti subjekta';
COMMENT ON COLUMN PREDMETI_POSLOVANJA.NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID IS 'ID djelatnosti prema NKD šifrarniku';
COMMENT ON COLUMN PREDMETI_POSLOVANJA.DJELATNOST_TEKST IS 'Naziv/opis djelatnosti';

CREATE UNIQUE INDEX PREDMETI_POSLOVANJA_PK ON PREDMETI_POSLOVANJA (MBS, DJELATNOST_RBR);
ALTER TABLE PREDMETI_POSLOVANJA ADD (CONSTRAINT PREDMETI_POSLOVANJA_PK PRIMARY KEY (MBS, DJELATNOST_RBR) USING INDEX PREDMETI_POSLOVANJA_PK);

CREATE INDEX PREDMETI_POSLOVANJA_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_I ON PREDMETI_POSLOVANJA (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID);

ALTER TABLE PREDMETI_POSLOVANJA ADD (CONSTRAINT PREDMETI_POSLOVANJA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE PREDMETI_POSLOVANJA ADD (CONSTRAINT PREDMETI_POSLOVANJA_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_FK FOREIGN KEY (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID)  REFERENCES NACIONALNA_KLASIFIKACIJA_DJELATNOSTI (ID));





CREATE TABLE EVIDENCIJSKE_DJELATNOSTI
(
  MBS                                      NUMBER(9) NOT NULL,
  DJELATNOST_RBR                           NUMBER(3) NOT NULL,
  NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID  NUMBER(12),
  DJELATNOST_TEKST                         VARCHAR2(4000 CHAR)
);
COMMENT ON TABLE EVIDENCIJSKE_DJELATNOSTI IS 'Popis evidencijskih djelatnosti subjekata';
COMMENT ON COLUMN EVIDENCIJSKE_DJELATNOSTI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN EVIDENCIJSKE_DJELATNOSTI.DJELATNOST_RBR IS 'Redni broj evidencijske djelatnosti';
COMMENT ON COLUMN EVIDENCIJSKE_DJELATNOSTI.NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID IS 'ID djelatnosti prema NKD šifrarniku';
COMMENT ON COLUMN EVIDENCIJSKE_DJELATNOSTI.DJELATNOST_TEKST IS 'Djelatnost';

CREATE UNIQUE INDEX EVIDENCIJSKE_DJELATNOSTI_PK ON EVIDENCIJSKE_DJELATNOSTI (MBS, DJELATNOST_RBR);
ALTER TABLE EVIDENCIJSKE_DJELATNOSTI ADD (CONSTRAINT EVIDENCIJSKE_DJELATNOSTI_PK PRIMARY KEY (MBS, DJELATNOST_RBR) USING INDEX EVIDENCIJSKE_DJELATNOSTI_PK);

CREATE INDEX EVIDENCIJSKE_DJELATNOSTI_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_I ON EVIDENCIJSKE_DJELATNOSTI (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID);


ALTER TABLE EVIDENCIJSKE_DJELATNOSTI ADD (CONSTRAINT EVIDENCIJSKE_DJELATNOSTI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE EVIDENCIJSKE_DJELATNOSTI ADD (CONSTRAINT EVIDENCIJSKE_DJELATNOSTI_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_FK FOREIGN KEY (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID)  REFERENCES NACIONALNA_KLASIFIKACIJA_DJELATNOSTI (ID));





CREATE TABLE TEMELJNI_KAPITALI
(
  MBS                   NUMBER(9)               NOT NULL,
  TEMELJNI_KAPITAL_RBR  NUMBER(3)               NOT NULL,
  VALUTA_ID             NUMBER(12)              NOT NULL,
  IZNOS                 NUMBER(22,2)            NOT NULL
);
COMMENT ON TABLE TEMELJNI_KAPITALI IS 'Evidencija temeljnih kapitala subjekata';
COMMENT ON COLUMN TEMELJNI_KAPITALI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN TEMELJNI_KAPITALI.TEMELJNI_KAPITAL_RBR IS 'Redni broj temeljnog kapitala';
COMMENT ON COLUMN TEMELJNI_KAPITALI.VALUTA_ID IS 'ID valute';
COMMENT ON COLUMN TEMELJNI_KAPITALI.IZNOS IS 'Iznos temeljnog kapitala';

CREATE UNIQUE INDEX TEMELJNI_KAPITALI_PK ON TEMELJNI_KAPITALI (MBS, TEMELJNI_KAPITAL_RBR);
ALTER TABLE TEMELJNI_KAPITALI ADD (CONSTRAINT TEMELJNI_KAPITALI_PK PRIMARY KEY (MBS, TEMELJNI_KAPITAL_RBR) USING INDEX TEMELJNI_KAPITALI_PK);

CREATE INDEX TEMELJNI_KAPITALI_VALUTA_ID_I ON TEMELJNI_KAPITALI (VALUTA_ID);

ALTER TABLE TEMELJNI_KAPITALI ADD (CONSTRAINT TEMELJNI_KAPITALI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE TEMELJNI_KAPITALI ADD (CONSTRAINT TEMELJNI_KAPITALI_VALUTA_ID_FK FOREIGN KEY (VALUTA_ID)  REFERENCES VALUTE (ID));





CREATE TABLE NAZIVI_PODRUZNICA
(
  MBS                 NUMBER(9)                 NOT NULL,
  PODRUZNICA_RBR      NUMBER(4)                 NOT NULL,
  IME                 VARCHAR2(1024 CHAR)       NOT NULL,
  NAZNAKA_IMENA       VARCHAR2(128 CHAR),
  POSTUPAK            NUMBER(1)                 NOT NULL,
  GLAVNA_PODRUZNICA   NUMBER(1)                 NOT NULL
);
COMMENT ON TABLE NAZIVI_PODRUZNICA IS 'Evidencija naziva podružnica subjekata';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.PODRUZNICA_RBR IS 'Redni broj podružnice u subjektu';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.IME IS 'Puni naziv podružnice';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.NAZNAKA_IMENA IS 'Naznaka imena podružnice';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.POSTUPAK IS 'Šifra postupak (stečaj, likvidacija, ...)';
COMMENT ON COLUMN NAZIVI_PODRUZNICA.GLAVNA_PODRUZNICA IS 'Da li je ovo glavna podružnica inozemnog subjekta';

CREATE UNIQUE INDEX NAZIVI_PODRUZNICA_PK ON NAZIVI_PODRUZNICA (MBS, PODRUZNICA_RBR);
ALTER TABLE NAZIVI_PODRUZNICA ADD (CONSTRAINT NAZIVI_PODRUZNICA_PK PRIMARY KEY (MBS, PODRUZNICA_RBR) USING INDEX NAZIVI_PODRUZNICA_PK);

CREATE INDEX NAZIVI_PODRUZNICA_POSTUPAK_I ON NAZIVI_PODRUZNICA (POSTUPAK);

ALTER TABLE NAZIVI_PODRUZNICA ADD (CONSTRAINT NAZIVI_PODRUZNICA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE NAZIVI_PODRUZNICA ADD (CONSTRAINT NAZIVI_PODRUZNICA_POSTUPAK_FK FOREIGN KEY (POSTUPAK)  REFERENCES VRSTE_POSTUPAKA (POSTUPAK));





CREATE TABLE SKRACENI_NAZIVI_PODRUZNICA
(
  MBS                 NUMBER(9)                 NOT NULL,
  PODRUZNICA_RBR      NUMBER(4)                 NOT NULL,
  IME                 VARCHAR2(512 CHAR)        NOT NULL
);
COMMENT ON TABLE SKRACENI_NAZIVI_PODRUZNICA IS 'Evidencija naziva podružnica subjekata';
COMMENT ON COLUMN SKRACENI_NAZIVI_PODRUZNICA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN SKRACENI_NAZIVI_PODRUZNICA.PODRUZNICA_RBR IS 'Redni broj podružnice u subjektu';
COMMENT ON COLUMN SKRACENI_NAZIVI_PODRUZNICA.IME IS 'Naziv skraćene podružnice';

CREATE UNIQUE INDEX SKRACENI_NAZIVI_PODRUZNICA_PK ON SKRACENI_NAZIVI_PODRUZNICA (MBS, PODRUZNICA_RBR);
ALTER TABLE SKRACENI_NAZIVI_PODRUZNICA ADD (CONSTRAINT SKRACENI_NAZIVI_PODRUZNICA_PK PRIMARY KEY (MBS, PODRUZNICA_RBR) USING INDEX SKRACENI_NAZIVI_PODRUZNICA_PK);


ALTER TABLE SKRACENI_NAZIVI_PODRUZNICA ADD (CONSTRAINT SKRACENI_NAZIVI_PODRUZNICA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE SJEDISTA_PODRUZNICA
(
  MBS                 NUMBER(9)                 NOT NULL,
  PODRUZNICA_RBR      NUMBER(4)                 NOT NULL,
  SIFRA_ZUPANIJE      NUMBER(3)                 NOT NULL,
  NAZIV_ZUPANIJE      VARCHAR2(128 CHAR)        NOT NULL,
  SIFRA_OPCINE        NUMBER(5)                 NOT NULL,
  NAZIV_OPCINE        VARCHAR2(128 CHAR)        NOT NULL,
  SIFRA_NASELJA       NUMBER(10)                NOT NULL,
  NAZIV_NASELJA       VARCHAR2(128 CHAR)        NOT NULL,
  SIFRA_ULICE         NUMBER(10),
  ULICA               VARCHAR2(512 CHAR),
  KUCNI_BROJ          NUMBER(6),
  KUCNI_PODBROJ       VARCHAR2(10 CHAR)
);
COMMENT ON TABLE SJEDISTA_PODRUZNICA IS 'Evidencija sjedišta i adresa podružnica subjekata';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.PODRUZNICA_RBR IS 'Redni broj podružnice u subjektu';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.SIFRA_ZUPANIJE IS 'Šifra županije';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.NAZIV_ZUPANIJE IS 'Naziv županije';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.SIFRA_OPCINE IS 'Šifra općine';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.NAZIV_OPCINE IS 'Naziv općine';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.SIFRA_NASELJA IS 'Šifra naselja';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.NAZIV_NASELJA IS 'Naziv naselja';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.SIFRA_ULICE IS 'Šifra ulice';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.ULICA IS 'Ulica';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.KUCNI_BROJ IS 'Kućni broj';
COMMENT ON COLUMN SJEDISTA_PODRUZNICA.KUCNI_PODBROJ IS 'Kućni podbroj';

CREATE UNIQUE INDEX SJEDISTA_PODRUZNICA_PK ON SJEDISTA_PODRUZNICA (MBS, PODRUZNICA_RBR);
ALTER TABLE SJEDISTA_PODRUZNICA ADD (CONSTRAINT SJEDISTA_PODRUZNICA_PK PRIMARY KEY (MBS, PODRUZNICA_RBR) USING INDEX SJEDISTA_PODRUZNICA_PK);


ALTER TABLE SJEDISTA_PODRUZNICA ADD (CONSTRAINT SJEDISTA_PODRUZNICA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE EMAIL_ADRESE_PODRUZNICA
(
  MBS                 NUMBER(9)                 NOT NULL,
  PODRUZNICA_RBR      NUMBER(4)                 NOT NULL,
  EMAIL_ADRESA_RBR    NUMBER(3)                 NOT NULL,
  ADRESA              VARCHAR2(256 CHAR)        NOT NULL
);
COMMENT ON TABLE EMAIL_ADRESE_PODRUZNICA IS 'Evidencija e-mail adresa podružnica';
COMMENT ON COLUMN EMAIL_ADRESE_PODRUZNICA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN EMAIL_ADRESE_PODRUZNICA.PODRUZNICA_RBR IS 'Redni broj podružnice u subjektu';
COMMENT ON COLUMN EMAIL_ADRESE_PODRUZNICA.EMAIL_ADRESA_RBR IS 'Redni broj adrese u podružnici';
COMMENT ON COLUMN EMAIL_ADRESE_PODRUZNICA.ADRESA IS 'E-mail adresa';

CREATE UNIQUE INDEX EMAIL_ADRESE_PODRUZNICA_PK ON EMAIL_ADRESE_PODRUZNICA (MBS, PODRUZNICA_RBR, EMAIL_ADRESA_RBR);
ALTER TABLE EMAIL_ADRESE_PODRUZNICA ADD (CONSTRAINT EMAIL_ADRESE_PODRUZNICA_PK PRIMARY KEY (MBS, PODRUZNICA_RBR, EMAIL_ADRESA_RBR) USING INDEX EMAIL_ADRESE_PODRUZNICA_PK);


ALTER TABLE EMAIL_ADRESE_PODRUZNICA ADD (CONSTRAINT EMAIL_ADRESE_PODRUZNICA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE DJELATNOSTI_PODRUZNICA
(
  MBS                                      NUMBER(9) NOT NULL,
  PODRUZNICA_RBR                           NUMBER(4) NOT NULL,
  DJELATNOST_RBR                           NUMBER(3) NOT NULL,
  NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID  NUMBER(12),
  DJELATNOST_TEKST                         VARCHAR2(4000 CHAR)
);
COMMENT ON TABLE DJELATNOSTI_PODRUZNICA IS 'Evidencija djelatnosti podružnica';
COMMENT ON COLUMN DJELATNOSTI_PODRUZNICA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN DJELATNOSTI_PODRUZNICA.PODRUZNICA_RBR IS 'Redni broj podružnice u subjektu';
COMMENT ON COLUMN DJELATNOSTI_PODRUZNICA.DJELATNOST_RBR IS 'Redni broj djelatnosti unutar podružnice';
COMMENT ON COLUMN DJELATNOSTI_PODRUZNICA.NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID IS 'ID djelatnosti prema NKD šifrarniku';
COMMENT ON COLUMN DJELATNOSTI_PODRUZNICA.DJELATNOST_TEKST IS 'Naziv djelatnosti';

CREATE UNIQUE INDEX DJELATNOSTI_PODRUZNICA_PK ON DJELATNOSTI_PODRUZNICA (MBS, PODRUZNICA_RBR, DJELATNOST_RBR);
ALTER TABLE DJELATNOSTI_PODRUZNICA ADD (CONSTRAINT DJELATNOSTI_PODRUZNICA_PK PRIMARY KEY (MBS, PODRUZNICA_RBR, DJELATNOST_RBR) USING INDEX DJELATNOSTI_PODRUZNICA_PK);

CREATE INDEX DJELATNOSTI_PODRUZNICA_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_I ON DJELATNOSTI_PODRUZNICA (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID);

ALTER TABLE DJELATNOSTI_PODRUZNICA ADD (CONSTRAINT DJELATNOSTI_PODRUZNICA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE DJELATNOSTI_PODRUZNICA ADD (CONSTRAINT DJELATNOSTI_PODRUZNICA_NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID_FK FOREIGN KEY (NACIONALNA_KLASIFIKACIJA_DJELATNOSTI_ID)  REFERENCES NACIONALNA_KLASIFIKACIJA_DJELATNOSTI (ID));





CREATE TABLE OBJAVE_PRIOPCENJA
(
  MBS                 NUMBER(9)                 NOT NULL,
  TEKST               VARCHAR2(2000 CHAR)       NOT NULL
);
COMMENT ON TABLE OBJAVE_PRIOPCENJA IS 'Evidencija načina objave priopćenja subjekata';
COMMENT ON COLUMN OBJAVE_PRIOPCENJA.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN OBJAVE_PRIOPCENJA.TEKST IS 'Tekst koji opisuje gdje subjekt objavljuje priopćenja';

CREATE UNIQUE INDEX OBJAVE_PRIOPCENJA_PK ON OBJAVE_PRIOPCENJA (MBS);
ALTER TABLE OBJAVE_PRIOPCENJA ADD (CONSTRAINT OBJAVE_PRIOPCENJA_PK PRIMARY KEY (MBS) USING INDEX OBJAVE_PRIOPCENJA_PK);


ALTER TABLE OBJAVE_PRIOPCENJA ADD (CONSTRAINT OBJAVE_PRIOPCENJA_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));





CREATE TABLE GFI
(
  MBS                   NUMBER(9)               NOT NULL,
  GFI_RBR               NUMBER(10)              NOT NULL,
  VRSTA_DOKUMENTA       NUMBER(1)               NOT NULL,
  OZNAKA_KONSOLIDACIJE  NUMBER(1)               NOT NULL,
  GODINA_IZVJESTAJA     NUMBER(4)               NOT NULL,
  DATUM_DOSTAVE         DATE                    NOT NULL,
  DATUM_OD              DATE                    NOT NULL,
  DATUM_DO              DATE                    NOT NULL
);
COMMENT ON TABLE GFI IS 'Evidencija predanih godišnjih financijskih izvješća subjekata';
COMMENT ON COLUMN GFI.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN GFI.GFI_RBR IS 'Redni broj izvješća u subjektu';
COMMENT ON COLUMN GFI.VRSTA_DOKUMENTA IS 'Vrsta dokumenta';
COMMENT ON COLUMN GFI.OZNAKA_KONSOLIDACIJE IS 'Označava da li je u pitanju konsolidirano izvješće';
COMMENT ON COLUMN GFI.GODINA_IZVJESTAJA IS 'Godina za koju je izvješće predano';
COMMENT ON COLUMN GFI.DATUM_DOSTAVE IS 'Datum dostave izvještaja';
COMMENT ON COLUMN GFI.DATUM_OD IS 'Datum početka izvještajnog perioda GFI';
COMMENT ON COLUMN GFI.DATUM_DO IS 'Datum završetka izvještajnog perioda GFI';

CREATE UNIQUE INDEX GFI_PK ON GFI (MBS, GFI_RBR);
ALTER TABLE GFI ADD (CONSTRAINT GFI_PK PRIMARY KEY (MBS, GFI_RBR) USING INDEX GFI_PK);

CREATE INDEX GFI_VRSTA_DOKUMENTA_I ON GFI (VRSTA_DOKUMENTA);

ALTER TABLE GFI ADD (CONSTRAINT GFI_MBS_FK FOREIGN KEY (MBS)  REFERENCES SUBJEKTI (MBS));
ALTER TABLE GFI ADD (CONSTRAINT GFI_VRSTA_DOKUMENTA_FK FOREIGN KEY (VRSTA_DOKUMENTA)  REFERENCES VRSTE_GFI_DOKUMENATA (VRSTA));





CREATE TABLE PROMJENE
(
  MBS          NUMBER(9)                        NOT NULL,
  ID           NUMBER(12)                       NOT NULL,
  VRIJEME      DATE                             NOT NULL,
  SCN          NUMBER(19)                       NOT NULL
);
COMMENT ON TABLE PROMJENE IS 'Popis zadnjih promjena nad subjektima';
COMMENT ON COLUMN PROMJENE.MBS IS 'Matični broj subjekta u sudskom registru';
COMMENT ON COLUMN PROMJENE.ID IS 'ID promjene (primarni ključ)';
COMMENT ON COLUMN PROMJENE.VRIJEME IS 'Datum i vrijeme promjene';
COMMENT ON COLUMN PROMJENE.SCN IS 'Sistemski broj promjene - System change number (monotono rastuća sekvenca, koristi se za detekciju promjena)';

CREATE UNIQUE INDEX PROMJENE_PK ON PROMJENE (MBS);
ALTER TABLE PROMJENE ADD (CONSTRAINT PROMJENE_PK PRIMARY KEY (MBS) USING INDEX PROMJENE_PK);

CREATE INDEX PROMJENE_SCN_I ON PROMJENE (SCN);















-- v3.0.1 dodaci

ALTER TABLE BRIS_REGISTRI
ADD (
  STATUS         NUMBER(1)                      NOT NULL
);

COMMENT ON COLUMN BRIS_REGISTRI.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';




ALTER TABLE DRZAVE
ADD (
  VRIJEDI_OD   DATE                             NOT NULL,
  VRIJEDI_DO   DATE,
  STATUS       NUMBER(1)                        NOT NULL
);

COMMENT ON COLUMN DRZAVE.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN DRZAVE.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN DRZAVE.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';





ALTER TABLE JEZICI
ADD (
  VRIJEDI_OD   DATE                             NOT NULL,
  VRIJEDI_DO   DATE,
  STATUS       NUMBER(1)                        NOT NULL
);

COMMENT ON COLUMN JEZICI.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN JEZICI.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN JEZICI.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';


ALTER TABLE NACIONALNA_KLASIFIKACIJA_DJELATNOSTI
ADD (
  VRIJEDI_OD   DATE                             NOT NULL,
  VRIJEDI_DO   DATE,
  STATUS       NUMBER(1)                        NOT NULL
);

COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN NACIONALNA_KLASIFIKACIJA_DJELATNOSTI.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';




ALTER TABLE SUDOVI
ADD (
  VRIJEDI_OD       DATE                         NOT NULL,
  VRIJEDI_DO       DATE,
  STATUS           NUMBER(1)                    NOT NULL
);

COMMENT ON COLUMN SUDOVI.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN SUDOVI.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN SUDOVI.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';




ALTER TABLE VALUTE
ADD (
  VRIJEDI_OD   DATE                             NOT NULL,
  VRIJEDI_DO   DATE,
  STATUS       NUMBER(1)                        NOT NULL
);

COMMENT ON COLUMN VALUTE.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN VALUTE.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN VALUTE.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';




ALTER TABLE VRSTE_PRAVNIH_OBLIKA
ADD (
  VRIJEDI_OD   DATE                             NOT NULL,
  VRIJEDI_DO   DATE,
  STATUS       NUMBER(1)                        NOT NULL
);

COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.VRIJEDI_OD	 IS 'Datum od kada podatak vrijedi';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.VRIJEDI_DO	 IS 'Datum do kada podatak vrijedi';
COMMENT ON COLUMN VRSTE_PRAVNIH_OBLIKA.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';






ALTER TABLE BRIS_PRAVNI_OBLICI
ADD (
  STATUS                   NUMBER(1)            NOT NULL
);

COMMENT ON COLUMN BRIS_PRAVNI_OBLICI.STATUS	 IS 'Status podatka (vidi odjeljak Standardni mehanizam povijesnosti u uputama za razvojne inženjere)';


