-- Tabela de Militantes CREATE TABLE militantes ( id INT PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(100) NOT NULL, cpf VARCHAR(14) UNIQUE, email VARCHAR(100) UNIQUE, telefone VARCHAR(15), endereco VARCHAR(255), filiado BOOLEAN DEFAULT false ); -- Tabela de Cotas Mensais CREATE TABLE cotas_mensais ( id INT PRIMARY KEY AUTO_INCREMENT, militante_id INT, valor_antigo DECIMAL(10, 2) NOT NULL, valor_novo DECIMAL(10, 2) NOT NULL, data_alteracao DATE NOT NULL, FOREIGN KEY (militante_id) REFERENCES militantes(id) ); -- Tabela de Pagamentos CREATE TABLE tipos_pagamento ( id INT PRIMARY KEY AUTO_INCREMENT, descricao VARCHAR(100) NOT NULL ); CREATE TABLE pagamentos ( id INT PRIMARY KEY AUTO_INCREMENT, militante_id INT, tipo_pagamento_id INT, valor DECIMAL(10, 2) NOT NULL, data_pagamento DATE NOT NULL, FOREIGN KEY (militante_id) REFERENCES militantes(id), FOREIGN KEY (tipo_pagamento_id) REFERENCES tipos_pagamento(id) ); -- Tabela de Tipos de Materiais CREATE TABLE tipos_materiais ( id INT PRIMARY KEY AUTO_INCREMENT, descricao VARCHAR(100) NOT NULL ); -- Tabela de Materiais Vendidos CREATE TABLE materiais_vendidos ( id INT PRIMARY KEY AUTO_INCREMENT, militante_id INT, tipo_material_id INT, descricao VARCHAR(255) NOT NULL, valor DECIMAL(10, 2) NOT NULL, data_venda DATE NOT NULL, FOREIGN KEY (militante_id) REFERENCES militantes(id), FOREIGN KEY (tipo_material_id) REFERENCES tipos_materiais(id) ); -- Tabela de Vendas de Jornais Avulsos CREATE TABLE vendas_jornais_avulsos ( id INT PRIMARY KEY AUTO_INCREMENT, militante_id INT, quantidade INT NOT NULL, valor_total DECIMAL(10, 2) NOT NULL, data_venda DATE NOT NULL, FOREIGN KEY (militante_id) REFERENCES militantes(id) ); -- Tabela de Assinaturas Anuais CREATE TABLE assinaturas_anuais ( id INT PRIMARY KEY AUTO_INCREMENT, militante_id INT, tipo_material_id INT, quantidade INT NOT NULL, valor_total DECIMAL(10, 2) NOT NULL, data_inicio DATE NOT NULL, data_fim DATE NOT NULL, FOREIGN KEY (militante_id) REFERENCES militantes(id), FOREIGN KEY (tipo_material_id) REFERENCES tipos_materiais(id) ); -- Tabela de Relatório de Cotas Mensais CREATE TABLE relatorio_cotas_mensais ( id INT PRIMARY KEY AUTO_INCREMENT, setor_id INT, comite_id INT, total_cotas DECIMAL(10, 2) NOT NULL, data_relatorio DATE NOT NULL, FOREIGN KEY (setor_id) REFERENCES setores(id), FOREIGN KEY (comite_id) REFERENCES comites_centrais(id) ); -- Tabela de Relatório de Vendas de Materiais CREATE TABLE relatorio_vendas_materiais ( id INT PRIMARY KEY AUTO_INCREMENT, setor_id INT, comite_id INT, total_vendas DECIMAL(10, 2) NOT NULL, data_relatorio DATE NOT NULL, FOREIGN KEY (setor_id) REFERENCES setores(id), FOREIGN KEY (comite_id) REFERENCES comites_centrais(id) );