diff --git a/README.md b/README.md index 0c75456..442d300 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ OpenCand is built using: | Bem Candidato | 2022 | ✅ | | Despesas/Receitas | 2022 | ✅ | | Rede Social | 2022 | ✅ | -| Fotos | 2022 | ❌ | +| Fotos | 2022 | ✅ | | - | - | - | | Candidatos | 2020 | ✅ | | Bem Candidato | 2020 | ✅ | diff --git a/db/db.sql b/db/db.sql deleted file mode 100644 index 8a08847..0000000 --- a/db/db.sql +++ /dev/null @@ -1,136 +0,0 @@ -DROP TABLE IF EXISTS bem_candidato CASCADE; -DROP TABLE IF EXISTS candidato_mapping CASCADE; -DROP TABLE IF EXISTS rede_social CASCADE; -DROP TABLE IF EXISTS candidato CASCADE; -DROP TABLE IF EXISTS partido CASCADE; -DROP TABLE IF EXISTS despesas_candidato CASCADE; -DROP TABLE IF EXISTS receitas_candidato CASCADE; - -CREATE TABLE candidato ( - idcandidato UUID NOT NULL PRIMARY KEY, - cpf VARCHAR(11), - nome VARCHAR(255) NOT NULL, - apelido VARCHAR(255), - datanascimento TIMESTAMPTZ, - email TEXT, - sexo CHAR(15), - estadocivil VARCHAR(50), - escolaridade VARCHAR(50), - ocupacao VARCHAR(150) -); -CREATE INDEX idx_candidato_nome ON candidato (nome); -CREATE INDEX idx_candidato_apelido ON candidato (apelido); - --- Each candidato (idcandidato, cpf, nome) will be mapped to a (sqcandidato, ano, tipo_eleicao, sg_uf, cargo, resultado) -CREATE TABLE candidato_mapping ( - idcandidato UUID NOT NULL, - cpf VARCHAR(11), - nome VARCHAR(255) NOT NULL, - apelido VARCHAR(255), - sqcandidato VARCHAR(50) NOT NULL, - turno VARCHAR(2) NOT NULL, - ano INT NOT NULL, - tipoeleicao VARCHAR(50), - siglauf VARCHAR(2), - nomeue VARCHAR(100), - cargo VARCHAR(50), - sgpartido VARCHAR(50), - nrcandidato VARCHAR(20), - resultado VARCHAR(50), - CONSTRAINT pk_candidato_mapping PRIMARY KEY (idcandidato, ano, siglauf, nomeue, cargo, nrcandidato, resultado), - CONSTRAINT fk_candidato_mapping_candidato FOREIGN KEY (idcandidato) REFERENCES candidato(idcandidato) ON DELETE CASCADE ON UPDATE CASCADE -); -CREATE INDEX idx_candidato_mapping_cpf ON candidato_mapping (cpf); -CREATE INDEX idx_candidato_mapping_nome ON candidato_mapping (nome); -CREATE INDEX idx_candidato_mapping_apelido ON candidato_mapping (apelido); -CREATE INDEX idx_candidato_mapping_ano ON candidato_mapping (ano); -CREATE INDEX idx_candidato_mapping_sqcandidato ON candidato_mapping (sqcandidato); - ----- Table for storing assets of candidates -CREATE TABLE bem_candidato ( - idcandidato UUID NOT NULL, - ano INT NOT NULL, - ordembem INT, - tipobem VARCHAR(150), - descricao VARCHAR(500), - valor NUMERIC(20, 2), - CONSTRAINT fk_bem_candidato_candidato FOREIGN KEY (idcandidato) REFERENCES candidato(idcandidato) ON DELETE CASCADE ON UPDATE CASCADE -); -ALTER TABLE bem_candidato ADD CONSTRAINT pk_bem_candidato PRIMARY KEY (idcandidato, ano, ordembem); -CREATE INDEX idx_bem_candidato_idcandidato ON bem_candidato (idcandidato); -CREATE INDEX idx_bem_candidato_valor ON bem_candidato (valor); - ----- Table for storing social media links of candidates -CREATE TABLE rede_social ( - idcandidato UUID NOT NULL, - rede VARCHAR(50) NOT NULL, - siglauf VARCHAR(2), - ano INT NOT NULL, - link TEXT NOT NULL, - CONSTRAINT pk_rede_social PRIMARY KEY (idcandidato, rede, siglauf, ano), - CONSTRAINT fk_rede_social_candidato FOREIGN KEY (idcandidato) REFERENCES candidato(idcandidato) ON DELETE CASCADE ON UPDATE CASCADE -); -CREATE INDEX idx_rede_social_idcandidato ON rede_social (idcandidato); - ----- Table for storing party information -CREATE TABLE partido ( - sigla VARCHAR(50) NOT NULL PRIMARY KEY, - nome VARCHAR(255) NOT NULL, - numero INT NOT NULL -); -CREATE INDEX idx_partido_nome ON partido (nome); -CREATE INDEX idx_partido_numero ON partido (numero); - ----- Tables for storing despesas e receitas of candidacies -CREATE TABLE despesas_candidato ( - idreceita UUID NOT NULL DEFAULT gen_random_uuid(), - idcandidato UUID NOT NULL, - ano INT NOT NULL, - turno VARCHAR(2) NOT NULL, - sqcandidato VARCHAR(50) NOT NULL, - sgpartido VARCHAR(50) NOT NULL, - tipofornecedor VARCHAR(150), - cnpjfornecedor VARCHAR(14), - cpffornecedor VARCHAR(11), - nomefornecedor VARCHAR(255), - nomefornecedorrfb VARCHAR(255), - municipiofornecedor VARCHAR(100), - tipodocumento VARCHAR(50), - datadespesa TIMESTAMPTZ, - descricao TEXT, - origemdespesa TEXT, - valor NUMERIC(20, 2), - CONSTRAINT pk_despesas_candidato PRIMARY KEY (idreceita), - CONSTRAINT fk_despesas_candidato_candidato FOREIGN KEY (idcandidato) REFERENCES candidato(idcandidato) ON DELETE CASCADE ON UPDATE CASCADE -); -CREATE INDEX idx_despesas_candidato_idcandidato ON despesas_candidato (idcandidato); -CREATE INDEX idx_despesas_candidato_ano ON despesas_candidato (ano); -CREATE INDEX idx_despesas_candidato_sqcandidato ON despesas_candidato (sqcandidato); -CREATE INDEX idx_despesas_candidato_sgpartido ON despesas_candidato (sgpartido); - -CREATE TABLE receitas_candidato ( - idreceita UUID NOT NULL DEFAULT gen_random_uuid(), - idcandidato UUID NOT NULL, - ano INT NOT NULL, - turno VARCHAR(2) NOT NULL, - sqcandidato VARCHAR(50) NOT NULL, - sgpartido VARCHAR(50) NOT NULL, - fontereceita VARCHAR(150), - origemreceita VARCHAR(250), - naturezareceita VARCHAR(250), - especiereceita VARCHAR(250), - cnpjdoador VARCHAR(14), - cpfdoador VARCHAR(11), - nomedoador VARCHAR(255), - nomedoadorrfb VARCHAR(255), - municipiodoador VARCHAR(100), - datareceita TIMESTAMPTZ, - descricao TEXT, - valor NUMERIC(20, 2), - CONSTRAINT pk_receitas_candidato PRIMARY KEY (idreceita), - CONSTRAINT fk_receitas_candidato_candidato FOREIGN KEY (idcandidato) REFERENCES candidato(idcandidato) ON DELETE CASCADE ON UPDATE CASCADE -); -CREATE INDEX idx_receitas_candidato_idcandidato ON receitas_candidato (idcandidato); -CREATE INDEX idx_receitas_candidato_ano ON receitas_candidato (ano); -CREATE INDEX idx_receitas_candidato_sqcandidato ON receitas_candidato (sqcandidato); -CREATE INDEX idx_receitas_candidato_sgpartido ON receitas_candidato (sgpartido); \ No newline at end of file