DROP TABLE IF EXISTS tipos_de_vinculos_profissionais;
DROP TABLE IF EXISTS projetos;
DROP TABLE IF EXISTS programas; 


CREATE TABLE programas (
				id_chave_programa INT AUTO_INCREMENT PRIMARY KEY,
				nome_programa VARCHAR(300),
				descricao VARCHAR(300),
				id_entity INT,
				UNIQUE(nome_programa),
        			FOREIGN KEY (id_entity) REFERENCES entities(id_chave_entity)
			       );

CREATE TABLE projetos_institucionais (
				id_chave_projeto_institucional INT AUTO_INCREMENT PRIMARY KEY,
				nome_projeto_institucional VARCHAR(300),
				descricao VARCHAR(300),
				id_programa INT,
				UNIQUE(nome_projeto_institucional),
        			FOREIGN KEY (id_programa) REFERENCES programas(id_chave_programa)
			       );

CREATE TABLE projetos_individuais (
				id_chave_projeto_individual INT AUTO_INCREMENT PRIMARY KEY,
				nome_projeto_individual VARCHAR(300),
				descricao VARCHAR(300),
				id_projeto_institucional INT,
				UNIQUE(nome_projeto_individual),
        			FOREIGN KEY (id_projeto_institucional) REFERENCES projetos_institucionais(id_chave_projeto_institucional)
			       );


CREATE TABLE tipos_de_vinculos_profissionais (
				id_chave_tipo_de_vinculo_profissional INT AUTO_INCREMENT PRIMARY KEY,
				nome_tipo_de_vinculo_profissional VARCHAR(300),
				descricao VARCHAR(300),
				UNIQUE(nome_tipo_de_vinculo_profissional)
			       );

INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Servidor(a)");
INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Bolsista");
INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Estagiário(a)");
INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Visitante");
INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Colaborador(a) externo(a)");
INSERT INTO tipos_de_vinculos_profissionais(nome_tipo_de_vinculo_profissional) VALUES ("Pesquisador(a) Sênior");

INSERT INTO programas(nome_programa, descricao, id_entity) VALUES ("PBFunda", "Programa de Bolsas Fundacentro", (SELECT id_chave_entity FROM entities WHERE nome_entity = "Fundação Jorge Duprat Figueiredo de Segurança e Medicina do Trabalho"));
INSERT INTO programas(nome_programa, descricao, id_entity) VALUES ("Programa Fundacentro-CNPq", "Programa de Bolsas Fundacentro-CNPq", (SELECT id_chave_entity FROM entities WHERE nome_entity = "Fundação Jorge Duprat Figueiredo de Segurança e Medicina do Trabalho"));

CREATE TABLE vinculos_profissionais (
        id_chave_vinculo_profissional INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        nome_vinculo_profissional varchar(200),
        acentuada varchar(200),
        id_pessoa int,
        id_tipo_de_vinculo_profissional int,
        id_entity int,
	inicio_vinculo DATE,
        fim_vinculo DATE,
        time_stamp TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
        unique(nome_vinculo_profissional),
        FOREIGN KEY (id_pessoa) REFERENCES pessoas(id_chave_pessoa),
        FOREIGN KEY (id_tipo_de_vinculo_profissional) REFERENCES tipos_de_vinculos_profissionais(id_chave_tipo_de_vinculo_profissional),
        FOREIGN KEY (id_entity) REFERENCES entities(id_chave_entity)
);


