Modelagem Pagamentos

Projeto desenvolvido no quarto semestre na disciplina de Banco de dados e internet II.
Professor: Me. Alciano Gustavo G. de Oliveira


O objetivo da disciplina foi desenvolver e implementar a modelagem de um Banco de Dados no segmento de mercado de preferência do aluno, neste caso, denominado de "Modelagem Pagamentos". O projeto foi elaborado com o MySQL Workbench, desenvolvido pela Oracle Corporation, que é uma ferramenta de design de dados visual que integra desenvolvimento SQL, modelagem de dados, design de banco de dados e administração para banco de dados MySQL.

Modelagem do Banco de Dados
Implementação do banco de dados

									### CRIA E SELECIONA O BANCO DE DADOS
									CREATE DATABASE  IF NOT EXISTS `alciano_db`;
									USE `alciano_db`;

									### CRIA A TABELA merchants
									CREATE TABLE `merchants` (
										`id` int NOT NULL AUTO_INCREMENT,
										`customers_id` int NOT NULL,
										`mid` varchar(45) DEFAULT NULL,
										`cessionario` int DEFAULT '0',
										`vendors_id` int DEFAULT NULL,
										`rates_id` int DEFAULT '0',
										`rates_inserted_at` timestamp NULL DEFAULT NULL,
										`wallet_id` varchar(60) DEFAULT NULL,
										`account_type` varchar(45) DEFAULT NULL,
										`document_number` varchar(45) DEFAULT NULL,
										`social_reason` text,
										`name` varchar(150) DEFAULT NULL,
										`soft_descriptor` varchar(60) DEFAULT NULL,
										`inscricaoEstadual` varchar(100) DEFAULT NULL,
										`inscricaoFazenda` varchar(100) DEFAULT NULL,
										`dataFundacao` date DEFAULT NULL,
										`horarioFuncionamento` int DEFAULT NULL,
										`shopping` tinyint DEFAULT NULL,
										`shopping_descricao` varchar(150) DEFAULT NULL,
										`faturamentoMensal` varchar(45) DEFAULT NULL,
										`valorPatrimonio` varchar(45) DEFAULT NULL,
										`tipoEmpresa` varchar(5) DEFAULT NULL,
										`email` varchar(45) DEFAULT NULL,
										`site` varchar(100) DEFAULT NULL,
										`telefone` varchar(45) DEFAULT NULL,
										`transferenciaAutomatica` tinyint DEFAULT NULL,
										`transferenciaValorMinimo` varchar(45) DEFAULT NULL,
										`transferenciaPeriodicidade` varchar(45) DEFAULT NULL,
										`antecipacaoRecebiveis` tinyint DEFAULT '0',
										`anteciparApos` int DEFAULT '0',
										`limiteAntecipacao` varchar(45) DEFAULT NULL,
										`periodoCarencia` tinyint DEFAULT '0',
										`ordemAntecipacao` varchar(10) DEFAULT 'start',
										`descricao` text,
										`ofac` int DEFAULT '0',
										`motivo_ofac` text,
										`inclusao_ofac` datetime DEFAULT NULL,
										`status` int DEFAULT NULL,
										`created_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										`deleted_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`)
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

									### CRIA A TABELA bulk_anticipations
									CREATE TABLE `bulk_anticipations` (
										`id` int NOT NULL AUTO_INCREMENT,
										`customers_id` int DEFAULT NULL,
										`merchants_id` int NOT NULL,
										`identifier` varchar(45) DEFAULT NULL,
										`amount` varchar(45) DEFAULT NULL,
										`fee` varchar(45) DEFAULT NULL,
										`mdr` varchar(45) DEFAULT NULL,
										`days` varchar(45) DEFAULT NULL,
										`status` varchar(45) DEFAULT NULL,
										`timeframe` varchar(45) DEFAULT NULL,
										`type` varchar(45) DEFAULT NULL,
										`approved_date` varchar(45) DEFAULT NULL,
										`approval_limit` varchar(45) DEFAULT NULL,
										`created_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`),
										CONSTRAINT `fk_bulk_anticipations_merchants1` FOREIGN KEY (`merchants_id`) REFERENCES `merchants` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

									### CRIA A TABELA banks
									CREATE TABLE `banks` (
										`id` int NOT NULL AUTO_INCREMENT,
										`customers_id` int DEFAULT NULL,
										`code` varchar(80) DEFAULT NULL,
										`name` varchar(45) DEFAULT NULL,
										`fee` varchar(45) DEFAULT NULL,
										`status` varchar(45) DEFAULT NULL,
										`created_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										`deleted_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`)
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

									### CRIA A TABELA bank_accounts
									CREATE TABLE `bank_accounts` (
										`id` int NOT NULL AUTO_INCREMENT,
										`customers_id` int DEFAULT NULL,
										`merchants_id` int NOT NULL,
										`banks_id` int NOT NULL,
										`tarifa` decimal(10,2) DEFAULT NULL,
										`tipo_conta` varchar(45) DEFAULT NULL,
										`favorecido` varchar(100) DEFAULT NULL,
										`cpfCnpj` varchar(45) DEFAULT NULL,
										`agencia` varchar(45) DEFAULT NULL,
										`agencia_digito` varchar(45) DEFAULT NULL,
										`conta` varchar(45) DEFAULT NULL,
										`conta_digito` varchar(45) DEFAULT NULL,
										`percentual` int DEFAULT NULL,
										`verify` int DEFAULT NULL,
										`status` varchar(45) DEFAULT NULL,
										`created_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										`deleted_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`),
										KEY `fk_bank_accounts_merchants1_idx` (`merchants_id`),
										KEY `fk_bank_accounts_bank_codes1_idx` (`banks_id`),
										CONSTRAINT `fk_bank_accounts_bank_codes1` FOREIGN KEY (`banks_id`) REFERENCES `banks` (`id`),
										CONSTRAINT `fk_bank_accounts_merchants1` FOREIGN KEY (`merchants_id`) REFERENCES `merchants` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

									### CRIA A TABELA splits
									CREATE TABLE `splits` (
										`id` int NOT NULL AUTO_INCREMENT,
										`customers_id` int DEFAULT NULL,
										`merchants_id` int NOT NULL,
										`recebedor` int DEFAULT NULL,
										`hash` varchar(80) DEFAULT NULL,
										`dividir_custos` varchar(45) DEFAULT NULL,
										`risco_chargeback` varchar(45) DEFAULT NULL,
										`percentual` varchar(45) DEFAULT NULL,
										`valor` varchar(45) DEFAULT NULL,
										`numero_serie` varchar(45) DEFAULT NULL,
										`situacao` int DEFAULT NULL,
										`created_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										`deleted_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`),
										KEY `fk_splits_merchants1_idx` (`merchants_id`),
										CONSTRAINT `fk_splits_merchants1` FOREIGN KEY (`merchants_id`) REFERENCES `merchants` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

									### CRIA A TABELA users
									CREATE TABLE `users` (
										`id` int unsigned NOT NULL AUTO_INCREMENT,
										`customers_id` int DEFAULT NULL,
										`merchant_id` int NOT NULL,
										`document_type` varchar(45) DEFAULT NULL,
										`document_number` varchar(45) DEFAULT NULL,
										`birthday` date DEFAULT NULL,
										`username` varchar(70) DEFAULT NULL,
										`first_name` varchar(100) NOT NULL,
										`last_name` varchar(100) DEFAULT NULL,
										`phone` varchar(45) DEFAULT NULL,
										`email` varchar(255) NOT NULL,
										`password` varchar(255) NOT NULL,
										`remember_token` varchar(100) DEFAULT NULL,
										`status` int DEFAULT '1',
										`created_at` timestamp NULL DEFAULT NULL,
										`deleted_at` timestamp NULL DEFAULT NULL,
										`updated_at` timestamp NULL DEFAULT NULL,
										PRIMARY KEY (`id`),
										KEY `fk_users_merchant1_idx` (`merchant_id`),
										CONSTRAINT `fk_users_merchant1` FOREIGN KEY (`merchant_id`) REFERENCES `merchants` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
									) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

								
Banco de dados implementado