-- MySQL Script generated by MySQL Workbench
-- 12/22/16 15:12:10
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering


-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema escolaidiomas
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema escolaidiomas
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `escolaidiomas` DEFAULT CHARACTER SET utf8 ;
USE `escolaidiomas` ;

-- -----------------------------------------------------
-- Table `escolaidiomas`.`estados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`estados` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `sigla` CHAR(3) CHARACTER SET 'utf8' NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `codigo_ibge` INT(10) UNSIGNED NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `estados_sigla_unique` (`sigla` ASC),
  UNIQUE INDEX `estados_nome_unique` (`nome` ASC))
ENGINE = InnoDB
AUTO_INCREMENT = 28
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`cidades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`cidades` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `estado_id` INT(10) UNSIGNED NOT NULL,
  `codigo_ibge` INT(10) UNSIGNED NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `cidades_estado_id_foreign` (`estado_id` ASC),
  CONSTRAINT `cidades_estado_id_foreign`
    FOREIGN KEY (`estado_id`)
    REFERENCES `escolaidiomas`.`estados` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 5589
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`empresas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`empresas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `razao_social` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `fantasia` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `cnpj` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `telefone` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `logradouro` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `endereco_numero` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `complemento_endereco` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `bairro` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `cep` VARCHAR(9) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `cidade_id` INT(10) UNSIGNED NOT NULL,
  `numero_titulo` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  INDEX `empresas_cidade_id_foreign` (`cidade_id` ASC),
  CONSTRAINT `empresas_cidade_id_foreign`
    FOREIGN KEY (`cidade_id`)
    REFERENCES `escolaidiomas`.`cidades` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`pessoas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`pessoas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `email` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `password` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `remember_token` VARCHAR(100) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `empresa_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `tipo` ENUM('A', 'P', 'I', 'U') CHARACTER SET 'utf8' NOT NULL,
  `email_contato` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `email_secundario` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `telefone` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `telefone_secundario` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `data_nascimento` DATE NULL DEFAULT NULL,
  `imagem` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `tipo_pessoa` ENUM('F', 'J') CHARACTER SET 'utf8' NOT NULL,
  `cpf_cnpj` VARCHAR(25) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `logradouro` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `endereco_numero` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `complemento_endereco` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `bairro` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `cep` VARCHAR(9) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `ativo` ENUM('S', 'N') CHARACTER SET 'utf8' NOT NULL,
  `cidade_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `responsavel` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `pessoas_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `pessoas_cidade_id_foreign` (`cidade_id` ASC),
  CONSTRAINT `pessoas_cidade_id_foreign`
    FOREIGN KEY (`cidade_id`)
    REFERENCES `escolaidiomas`.`cidades` (`id`),
  CONSTRAINT `pessoas_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 80
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`aluno_matricula`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`aluno_matricula` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `pessoa_aluno_id` INT(10) UNSIGNED NOT NULL,
  `data` DATE NOT NULL,
  `entregue_para` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `aluno_matricula_pessoa_aluno_id_unique` (`pessoa_aluno_id` ASC),
  CONSTRAINT `aluno_matricula_pessoa_aluno_id_foreign`
    FOREIGN KEY (`pessoa_aluno_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`)
    ON DELETE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 15
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`niveis`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`niveis` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `niveis_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `niveis_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 4
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`salas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`salas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `capacidade_alunos` INT(10) UNSIGNED NULL DEFAULT NULL,
  `tv_interativa` ENUM('S', 'N') CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `cor` VARCHAR(7) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `salas_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `salas_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`turmas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`turmas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `descricao` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `turmas_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `turmas_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`aulas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`aulas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `sala_id` INT(10) UNSIGNED NOT NULL,
  `turma_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `pessoa_aluno_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `data` DATE NOT NULL,
  `hora_ini` VARCHAR(5) CHARACTER SET 'utf8' NOT NULL,
  `hora_fim` VARCHAR(5) CHARACTER SET 'utf8' NOT NULL,
  `pessoa_profissional_id` INT(10) UNSIGNED NOT NULL,
  `aula_original_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `nivel_id` INT(10) UNSIGNED NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `aulas_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `aulas_sala_id_foreign` (`sala_id` ASC),
  INDEX `aulas_turma_id_foreign` (`turma_id` ASC),
  INDEX `aulas_pessoa_aluno_id_foreign` (`pessoa_aluno_id` ASC),
  INDEX `aulas_pessoa_profissional_id_foreign` (`pessoa_profissional_id` ASC),
  INDEX `aulas_aula_original_id_foreign` (`aula_original_id` ASC),
  INDEX `aulas_nivel_id_foreign` (`nivel_id` ASC),
  CONSTRAINT `aulas_aula_original_id_foreign`
    FOREIGN KEY (`aula_original_id`)
    REFERENCES `escolaidiomas`.`aulas` (`id`)
    ON DELETE CASCADE,
  CONSTRAINT `aulas_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`),
  CONSTRAINT `aulas_nivel_id_foreign`
    FOREIGN KEY (`nivel_id`)
    REFERENCES `escolaidiomas`.`niveis` (`id`),
  CONSTRAINT `aulas_pessoa_aluno_id_foreign`
    FOREIGN KEY (`pessoa_aluno_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `aulas_pessoa_profissional_id_foreign`
    FOREIGN KEY (`pessoa_profissional_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `aulas_sala_id_foreign`
    FOREIGN KEY (`sala_id`)
    REFERENCES `escolaidiomas`.`salas` (`id`),
  CONSTRAINT `aulas_turma_id_foreign`
    FOREIGN KEY (`turma_id`)
    REFERENCES `escolaidiomas`.`turmas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 205
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`bancos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`bancos` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `codigo_compensacao` CHAR(3) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 101
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`contas_bancarias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`contas_bancarias` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `banco_id` INT(10) UNSIGNED NOT NULL,
  `conta` INT(10) UNSIGNED NOT NULL,
  `conta_digito` SMALLINT(5) UNSIGNED NULL DEFAULT NULL,
  `agencia` INT(10) UNSIGNED NOT NULL,
  `agencia_digito` SMALLINT(5) UNSIGNED NULL DEFAULT NULL,
  `convenio` INT(10) UNSIGNED NULL DEFAULT NULL,
  `carteira` INT(10) UNSIGNED NULL DEFAULT NULL,
  `boleto_mensagem_1` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `boleto_mensagem_2` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `boleto_mensagem_3` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `boleto_instrucao_1` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `boleto_instrucao_2` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `boleto_especie` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `convenio_digito` SMALLINT(5) UNSIGNED NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `contas_bancarias_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `contas_bancarias_banco_id_foreign` (`banco_id` ASC),
  CONSTRAINT `contas_bancarias_banco_id_foreign`
    FOREIGN KEY (`banco_id`)
    REFERENCES `escolaidiomas`.`bancos` (`id`),
  CONSTRAINT `contas_bancarias_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`empresa_configuracoes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`empresa_configuracoes` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `email` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `func_email_aniversario_mensagem` TEXT CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `func_email_aniversario_imagem` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `email_assinatura` TEXT CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `email_assinatura_imagem` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `logo_escola` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `logo_franquia` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `func_email_aniversario_data_ultimo_envio` DATETIME NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `empresa_configuracoes_empresa_id_unique` (`empresa_id` ASC),
  CONSTRAINT `empresa_configuracoes_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`formas_pagamento`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`formas_pagamento` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `gerar_pgto` ENUM('S', 'N') CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `conta_bancaria_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `formas_pagamento_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `formas_pagamento_conta_bancaria_id_foreign` (`conta_bancaria_id` ASC),
  CONSTRAINT `formas_pagamento_conta_bancaria_id_foreign`
    FOREIGN KEY (`conta_bancaria_id`)
    REFERENCES `escolaidiomas`.`contas_bancarias` (`id`),
  CONSTRAINT `formas_pagamento_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 27
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`idiomas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`idiomas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `idiomas_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `idiomas_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 7
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`interessado_contatos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`interessado_contatos` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `pessoa_interessado_id` INT(10) UNSIGNED NOT NULL,
  `data` DATE NOT NULL,
  `observacoes` TEXT CHARACTER SET 'utf8' NOT NULL,
  `pessoa_registro_id` INT(10) UNSIGNED NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `interessado_contatos_pessoa_interessado_id_foreign` (`pessoa_interessado_id` ASC),
  INDEX `interessado_contatos_pessoa_registro_id_foreign` (`pessoa_registro_id` ASC),
  CONSTRAINT `interessado_contatos_pessoa_interessado_id_foreign`
    FOREIGN KEY (`pessoa_interessado_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`)
    ON DELETE CASCADE,
  CONSTRAINT `interessado_contatos_pessoa_registro_id_foreign`
    FOREIGN KEY (`pessoa_registro_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 16
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`materiais`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`materiais` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `descricao` VARCHAR(255) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `quantidade` INT(11) NOT NULL DEFAULT '0',
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `materiais_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `materiais_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`material_movimentacoes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`material_movimentacoes` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `material_id` INT(10) UNSIGNED NOT NULL,
  `pessoa_aluno_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `pessoa_profissional_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `data` DATE NOT NULL,
  `quantidade` INT(11) NOT NULL,
  `tipo` ENUM('E', 'S') CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `material_movimentacoes_material_id_foreign` (`material_id` ASC),
  INDEX `material_movimentacoes_pessoa_aluno_id_foreign` (`pessoa_aluno_id` ASC),
  INDEX `material_movimentacoes_pessoa_profissional_id_foreign` (`pessoa_profissional_id` ASC),
  CONSTRAINT `material_movimentacoes_material_id_foreign`
    FOREIGN KEY (`material_id`)
    REFERENCES `escolaidiomas`.`materiais` (`id`)
    ON DELETE CASCADE,
  CONSTRAINT `material_movimentacoes_pessoa_aluno_id_foreign`
    FOREIGN KEY (`pessoa_aluno_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `material_movimentacoes_pessoa_profissional_id_foreign`
    FOREIGN KEY (`pessoa_profissional_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`migrations`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`migrations` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `migration` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `batch` INT(11) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 576
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`password_resets`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`password_resets` (
  `email` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `token` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  INDEX `password_resets_email_index` (`email` ASC),
  INDEX `password_resets_token_index` (`token` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`profissional_horarios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`profissional_horarios` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `pessoa_profissional_id` INT(10) UNSIGNED NOT NULL,
  `dia_semana` INT(10) UNSIGNED NOT NULL,
  `hora_ini` VARCHAR(5) CHARACTER SET 'utf8' NOT NULL,
  `hora_fim` VARCHAR(5) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `profissional_horarios_pessoa_profissional_id_foreign` (`pessoa_profissional_id` ASC),
  CONSTRAINT `profissional_horarios_pessoa_profissional_id_foreign`
    FOREIGN KEY (`pessoa_profissional_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`)
    ON DELETE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 15
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`profissional_idiomas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`profissional_idiomas` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `pessoa_profissional_id` INT(10) UNSIGNED NOT NULL,
  `idioma_id` INT(10) UNSIGNED NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `profissional_idiomas_pessoa_profissional_id_foreign` (`pessoa_profissional_id` ASC),
  INDEX `profissional_idiomas_idioma_id_foreign` (`idioma_id` ASC),
  CONSTRAINT `profissional_idiomas_idioma_id_foreign`
    FOREIGN KEY (`idioma_id`)
    REFERENCES `escolaidiomas`.`idiomas` (`id`)
    ON DELETE CASCADE,
  CONSTRAINT `profissional_idiomas_pessoa_profissional_id_foreign`
    FOREIGN KEY (`pessoa_profissional_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`)
    ON DELETE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 33
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`recados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`recados` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `pessoa_remetente_id` INT(10) UNSIGNED NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `mensagem` TEXT CHARACTER SET 'utf8' NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `recados_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `recados_pessoa_remetente_id_foreign` (`pessoa_remetente_id` ASC),
  CONSTRAINT `recados_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`)
    ON DELETE CASCADE,
  CONSTRAINT `recados_pessoa_remetente_id_foreign`
    FOREIGN KEY (`pessoa_remetente_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 8
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`sessions`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`sessions` (
  `id` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `user_id` INT(11) NULL DEFAULT NULL,
  `ip_address` VARCHAR(45) CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `user_agent` TEXT CHARACTER SET 'utf8' NULL DEFAULT NULL,
  `payload` TEXT CHARACTER SET 'utf8' NOT NULL,
  `last_activity` INT(11) NOT NULL,
  UNIQUE INDEX `sessions_id_unique` (`id` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`tipos_cobranca`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`tipos_cobranca` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `nome` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `tipos_cobranca_empresa_id_foreign` (`empresa_id` ASC),
  CONSTRAINT `tipos_cobranca_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 6
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`titulos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`titulos` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `empresa_id` INT(10) UNSIGNED NOT NULL,
  `forma_pagamento_id` INT(10) UNSIGNED NOT NULL,
  `valor` DOUBLE(8,2) UNSIGNED NOT NULL,
  `data_vencimento` DATE NOT NULL,
  `data_emissao` DATE NOT NULL,
  `pessoa_aluno_id` INT(10) UNSIGNED NOT NULL,
  `situacao` ENUM('A', 'P', 'C') CHARACTER SET 'utf8' NOT NULL DEFAULT 'A',
  `data_pagamento` DATE NULL DEFAULT NULL,
  `nro_remessa` INT(10) UNSIGNED NULL DEFAULT NULL,
  `nro_parcelas` INT(10) UNSIGNED NULL DEFAULT NULL,
  `data_cancelamento` DATE NULL DEFAULT NULL,
  `tipo_cobranca_id` INT(10) UNSIGNED NOT NULL,
  `pessoa_registro_id` INT(10) UNSIGNED NOT NULL,
  `titulo_original_id` INT(10) UNSIGNED NULL DEFAULT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  `numero_titulo` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  INDEX `titulos_empresa_id_foreign` (`empresa_id` ASC),
  INDEX `titulos_forma_pagamento_id_foreign` (`forma_pagamento_id` ASC),
  INDEX `titulos_pessoa_aluno_id_foreign` (`pessoa_aluno_id` ASC),
  INDEX `titulos_tipo_cobranca_id_foreign` (`tipo_cobranca_id` ASC),
  INDEX `titulos_pessoa_registro_id_foreign` (`pessoa_registro_id` ASC),
  INDEX `titulos_titulo_original_id_foreign` (`titulo_original_id` ASC),
  CONSTRAINT `titulos_empresa_id_foreign`
    FOREIGN KEY (`empresa_id`)
    REFERENCES `escolaidiomas`.`empresas` (`id`),
  CONSTRAINT `titulos_forma_pagamento_id_foreign`
    FOREIGN KEY (`forma_pagamento_id`)
    REFERENCES `escolaidiomas`.`formas_pagamento` (`id`),
  CONSTRAINT `titulos_pessoa_aluno_id_foreign`
    FOREIGN KEY (`pessoa_aluno_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `titulos_pessoa_registro_id_foreign`
    FOREIGN KEY (`pessoa_registro_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `titulos_tipo_cobranca_id_foreign`
    FOREIGN KEY (`tipo_cobranca_id`)
    REFERENCES `escolaidiomas`.`tipos_cobranca` (`id`),
  CONSTRAINT `titulos_titulo_original_id_foreign`
    FOREIGN KEY (`titulo_original_id`)
    REFERENCES `escolaidiomas`.`titulos` (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 219
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `escolaidiomas`.`turma_alunos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`turma_alunos` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `turma_id` INT(10) UNSIGNED NOT NULL,
  `pessoa_aluno_id` INT(10) UNSIGNED NOT NULL,
  `created_at` TIMESTAMP NULL DEFAULT NULL,
  `updated_at` TIMESTAMP NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `turma_alunos_turma_id_foreign` (`turma_id` ASC),
  INDEX `turma_alunos_pessoa_aluno_id_foreign` (`pessoa_aluno_id` ASC),
  CONSTRAINT `turma_alunos_pessoa_aluno_id_foreign`
    FOREIGN KEY (`pessoa_aluno_id`)
    REFERENCES `escolaidiomas`.`pessoas` (`id`),
  CONSTRAINT `turma_alunos_turma_id_foreign`
    FOREIGN KEY (`turma_id`)
    REFERENCES `escolaidiomas`.`turmas` (`id`)
    ON DELETE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;

USE `escolaidiomas` ;

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_aluno_cursos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_aluno_cursos` (`aluno_id` INT, `profissional_id` INT, `nivel_id` INT, `data_ini` INT, `data_fim` INT, `tempo_total` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_alunos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_alunos` (`id` INT, `nome` INT, `email` INT, `password` INT, `remember_token` INT, `created_at` INT, `updated_at` INT, `empresa_id` INT, `tipo` INT, `email_contato` INT, `email_secundario` INT, `telefone` INT, `telefone_secundario` INT, `data_nascimento` INT, `imagem` INT, `tipo_pessoa` INT, `cpf_cnpj` INT, `logradouro` INT, `endereco_numero` INT, `complemento_endereco` INT, `bairro` INT, `cep` INT, `ativo` INT, `cidade_id` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_alunos_aulas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_alunos_aulas` (`id` INT, `empresa_id` INT, `sala_id` INT, `turma_id` INT, `pessoa_aluno_id` INT, `data` INT, `hora_ini` INT, `hora_fim` INT, `pessoa_profissional_id` INT, `aula_original_id` INT, `nivel_id` INT, `created_at` INT, `updated_at` INT, `aula_id` INT, `aluno_id` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_disponibilidade_profissionais`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_disponibilidade_profissionais` (`empresa_id` INT, `pessoa_profissional_id` INT, `dia_semana` INT, `hora_ini` INT, `hora_fim` INT, `idioma_id` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_interessados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_interessados` (`id` INT, `nome` INT, `email` INT, `password` INT, `remember_token` INT, `created_at` INT, `updated_at` INT, `empresa_id` INT, `tipo` INT, `email_contato` INT, `email_secundario` INT, `telefone` INT, `telefone_secundario` INT, `data_nascimento` INT, `imagem` INT, `tipo_pessoa` INT, `cpf_cnpj` INT, `logradouro` INT, `endereco_numero` INT, `complemento_endereco` INT, `bairro` INT, `cep` INT, `ativo` INT, `cidade_id` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_profissionais`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_profissionais` (`id` INT, `nome` INT, `email` INT, `password` INT, `remember_token` INT, `created_at` INT, `updated_at` INT, `empresa_id` INT, `tipo` INT, `email_contato` INT, `email_secundario` INT, `telefone` INT, `telefone_secundario` INT, `data_nascimento` INT, `imagem` INT, `tipo_pessoa` INT, `cpf_cnpj` INT, `logradouro` INT, `endereco_numero` INT, `complemento_endereco` INT, `bairro` INT, `cep` INT, `ativo` INT, `cidade_id` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_titulos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_titulos` (`id` INT, `empresa_id` INT, `forma_pagamento_id` INT, `valor` INT, `data_vencimento` INT, `data_emissao` INT, `pessoa_aluno_id` INT, `situacao` INT, `data_pagamento` INT, `nro_remessa` INT, `nro_parcelas` INT, `data_cancelamento` INT, `tipo_cobranca_id` INT, `pessoa_registro_id` INT, `titulo_original_id` INT, `created_at` INT, `updated_at` INT, `descricao_situacao` INT);

-- -----------------------------------------------------
-- Placeholder table for view `escolaidiomas`.`view_usuarios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `escolaidiomas`.`view_usuarios` (`id` INT, `nome` INT, `email` INT, `password` INT, `remember_token` INT, `created_at` INT, `updated_at` INT, `empresa_id` INT, `tipo` INT, `email_contato` INT, `email_secundario` INT, `telefone` INT, `telefone_secundario` INT, `data_nascimento` INT, `imagem` INT, `tipo_pessoa` INT, `cpf_cnpj` INT, `logradouro` INT, `endereco_numero` INT, `complemento_endereco` INT, `bairro` INT, `cep` INT, `ativo` INT, `cidade_id` INT);

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_aluno_cursos`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_aluno_cursos` AS select `aluno`.`id` AS `aluno_id`,`profissional`.`id` AS `profissional_id`,`escolaidiomas`.`niveis`.`id` AS `nivel_id`,min(`view_alunos_aulas`.`data`) AS `data_ini`,max(`view_alunos_aulas`.`data`) AS `data_fim`,(sum((((substr(`view_alunos_aulas`.`hora_fim`,1,2) * 60) + substr(`view_alunos_aulas`.`hora_fim`,4,2)) - ((substr(`view_alunos_aulas`.`hora_ini`,1,2) * 60) + substr(`view_alunos_aulas`.`hora_ini`,4,2)))) / 60) AS `tempo_total` from (((`escolaidiomas`.`view_alunos_aulas` join `escolaidiomas`.`view_profissionais` `profissional` on((`profissional`.`id` = `view_alunos_aulas`.`pessoa_profissional_id`))) join `escolaidiomas`.`view_alunos` `aluno` on((`aluno`.`id` = `view_alunos_aulas`.`aluno_id`))) join `escolaidiomas`.`niveis` on((`escolaidiomas`.`niveis`.`id` = `view_alunos_aulas`.`nivel_id`))) group by `aluno`.`id`,`profissional`.`id`,`escolaidiomas`.`niveis`.`id`;

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_alunos`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_alunos` AS select `escolaidiomas`.`pessoas`.`id` AS `id`,`escolaidiomas`.`pessoas`.`nome` AS `nome`,`escolaidiomas`.`pessoas`.`email` AS `email`,`escolaidiomas`.`pessoas`.`password` AS `password`,`escolaidiomas`.`pessoas`.`remember_token` AS `remember_token`,`escolaidiomas`.`pessoas`.`created_at` AS `created_at`,`escolaidiomas`.`pessoas`.`updated_at` AS `updated_at`,`escolaidiomas`.`pessoas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`pessoas`.`tipo` AS `tipo`,`escolaidiomas`.`pessoas`.`email_contato` AS `email_contato`,`escolaidiomas`.`pessoas`.`email_secundario` AS `email_secundario`,`escolaidiomas`.`pessoas`.`telefone` AS `telefone`,`escolaidiomas`.`pessoas`.`telefone_secundario` AS `telefone_secundario`,`escolaidiomas`.`pessoas`.`data_nascimento` AS `data_nascimento`,`escolaidiomas`.`pessoas`.`imagem` AS `imagem`,`escolaidiomas`.`pessoas`.`tipo_pessoa` AS `tipo_pessoa`,`escolaidiomas`.`pessoas`.`cpf_cnpj` AS `cpf_cnpj`,`escolaidiomas`.`pessoas`.`logradouro` AS `logradouro`,`escolaidiomas`.`pessoas`.`endereco_numero` AS `endereco_numero`,`escolaidiomas`.`pessoas`.`complemento_endereco` AS `complemento_endereco`,`escolaidiomas`.`pessoas`.`bairro` AS `bairro`,`escolaidiomas`.`pessoas`.`cep` AS `cep`,`escolaidiomas`.`pessoas`.`ativo` AS `ativo`,`escolaidiomas`.`pessoas`.`cidade_id` AS `cidade_id` from `escolaidiomas`.`pessoas` where (`escolaidiomas`.`pessoas`.`tipo` = 'A');

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_alunos_aulas`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_alunos_aulas` AS select `escolaidiomas`.`aulas`.`id` AS `id`,`escolaidiomas`.`aulas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`aulas`.`sala_id` AS `sala_id`,`escolaidiomas`.`aulas`.`turma_id` AS `turma_id`,`escolaidiomas`.`aulas`.`pessoa_aluno_id` AS `pessoa_aluno_id`,`escolaidiomas`.`aulas`.`data` AS `data`,`escolaidiomas`.`aulas`.`hora_ini` AS `hora_ini`,`escolaidiomas`.`aulas`.`hora_fim` AS `hora_fim`,`escolaidiomas`.`aulas`.`pessoa_profissional_id` AS `pessoa_profissional_id`,`escolaidiomas`.`aulas`.`aula_original_id` AS `aula_original_id`,`escolaidiomas`.`aulas`.`nivel_id` AS `nivel_id`,`escolaidiomas`.`aulas`.`created_at` AS `created_at`,`escolaidiomas`.`aulas`.`updated_at` AS `updated_at`,`escolaidiomas`.`aulas`.`id` AS `aula_id`,`aluno`.`id` AS `aluno_id` from (`escolaidiomas`.`aulas` join `escolaidiomas`.`pessoas` `aluno` on(((`escolaidiomas`.`aulas`.`pessoa_aluno_id` = `aluno`.`id`) and (`aluno`.`tipo` = 'A')))) where (`escolaidiomas`.`aulas`.`pessoa_aluno_id` is not null) union select `escolaidiomas`.`aulas`.`id` AS `id`,`escolaidiomas`.`aulas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`aulas`.`sala_id` AS `sala_id`,`escolaidiomas`.`aulas`.`turma_id` AS `turma_id`,`escolaidiomas`.`aulas`.`pessoa_aluno_id` AS `pessoa_aluno_id`,`escolaidiomas`.`aulas`.`data` AS `data`,`escolaidiomas`.`aulas`.`hora_ini` AS `hora_ini`,`escolaidiomas`.`aulas`.`hora_fim` AS `hora_fim`,`escolaidiomas`.`aulas`.`pessoa_profissional_id` AS `pessoa_profissional_id`,`escolaidiomas`.`aulas`.`aula_original_id` AS `aula_original_id`,`escolaidiomas`.`aulas`.`nivel_id` AS `nivel_id`,`escolaidiomas`.`aulas`.`created_at` AS `created_at`,`escolaidiomas`.`aulas`.`updated_at` AS `updated_at`,`escolaidiomas`.`aulas`.`id` AS `aula_id`,`aluno`.`id` AS `aluno_id` from (((`escolaidiomas`.`aulas` join `escolaidiomas`.`turmas` on((`escolaidiomas`.`aulas`.`turma_id` = `escolaidiomas`.`turmas`.`id`))) join `escolaidiomas`.`turma_alunos` on((`escolaidiomas`.`turmas`.`id` = `escolaidiomas`.`turma_alunos`.`turma_id`))) join `escolaidiomas`.`pessoas` `aluno` on(((`escolaidiomas`.`turma_alunos`.`pessoa_aluno_id` = `aluno`.`id`) and (`aluno`.`tipo` = 'A')))) where (`escolaidiomas`.`aulas`.`turma_id` is not null);

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_disponibilidade_profissionais`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_disponibilidade_profissionais` AS select `escolaidiomas`.`pessoas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`pessoas`.`id` AS `pessoa_profissional_id`,`escolaidiomas`.`profissional_horarios`.`dia_semana` AS `dia_semana`,`escolaidiomas`.`profissional_horarios`.`hora_ini` AS `hora_ini`,`escolaidiomas`.`profissional_horarios`.`hora_fim` AS `hora_fim`,`escolaidiomas`.`profissional_idiomas`.`idioma_id` AS `idioma_id` from ((`escolaidiomas`.`pessoas` join `escolaidiomas`.`profissional_horarios` on((`escolaidiomas`.`profissional_horarios`.`pessoa_profissional_id` = `escolaidiomas`.`pessoas`.`id`))) join `escolaidiomas`.`profissional_idiomas` on((`escolaidiomas`.`profissional_idiomas`.`pessoa_profissional_id` = `escolaidiomas`.`pessoas`.`id`))) where (`escolaidiomas`.`pessoas`.`tipo` = 'P');

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_interessados`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_interessados` AS select `escolaidiomas`.`pessoas`.`id` AS `id`,`escolaidiomas`.`pessoas`.`nome` AS `nome`,`escolaidiomas`.`pessoas`.`email` AS `email`,`escolaidiomas`.`pessoas`.`password` AS `password`,`escolaidiomas`.`pessoas`.`remember_token` AS `remember_token`,`escolaidiomas`.`pessoas`.`created_at` AS `created_at`,`escolaidiomas`.`pessoas`.`updated_at` AS `updated_at`,`escolaidiomas`.`pessoas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`pessoas`.`tipo` AS `tipo`,`escolaidiomas`.`pessoas`.`email_contato` AS `email_contato`,`escolaidiomas`.`pessoas`.`email_secundario` AS `email_secundario`,`escolaidiomas`.`pessoas`.`telefone` AS `telefone`,`escolaidiomas`.`pessoas`.`telefone_secundario` AS `telefone_secundario`,`escolaidiomas`.`pessoas`.`data_nascimento` AS `data_nascimento`,`escolaidiomas`.`pessoas`.`imagem` AS `imagem`,`escolaidiomas`.`pessoas`.`tipo_pessoa` AS `tipo_pessoa`,`escolaidiomas`.`pessoas`.`cpf_cnpj` AS `cpf_cnpj`,`escolaidiomas`.`pessoas`.`logradouro` AS `logradouro`,`escolaidiomas`.`pessoas`.`endereco_numero` AS `endereco_numero`,`escolaidiomas`.`pessoas`.`complemento_endereco` AS `complemento_endereco`,`escolaidiomas`.`pessoas`.`bairro` AS `bairro`,`escolaidiomas`.`pessoas`.`cep` AS `cep`,`escolaidiomas`.`pessoas`.`ativo` AS `ativo`,`escolaidiomas`.`pessoas`.`cidade_id` AS `cidade_id` from `escolaidiomas`.`pessoas` where (`escolaidiomas`.`pessoas`.`tipo` = 'I');

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_profissionais`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_profissionais` AS select `escolaidiomas`.`pessoas`.`id` AS `id`,`escolaidiomas`.`pessoas`.`nome` AS `nome`,`escolaidiomas`.`pessoas`.`email` AS `email`,`escolaidiomas`.`pessoas`.`password` AS `password`,`escolaidiomas`.`pessoas`.`remember_token` AS `remember_token`,`escolaidiomas`.`pessoas`.`created_at` AS `created_at`,`escolaidiomas`.`pessoas`.`updated_at` AS `updated_at`,`escolaidiomas`.`pessoas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`pessoas`.`tipo` AS `tipo`,`escolaidiomas`.`pessoas`.`email_contato` AS `email_contato`,`escolaidiomas`.`pessoas`.`email_secundario` AS `email_secundario`,`escolaidiomas`.`pessoas`.`telefone` AS `telefone`,`escolaidiomas`.`pessoas`.`telefone_secundario` AS `telefone_secundario`,`escolaidiomas`.`pessoas`.`data_nascimento` AS `data_nascimento`,`escolaidiomas`.`pessoas`.`imagem` AS `imagem`,`escolaidiomas`.`pessoas`.`tipo_pessoa` AS `tipo_pessoa`,`escolaidiomas`.`pessoas`.`cpf_cnpj` AS `cpf_cnpj`,`escolaidiomas`.`pessoas`.`logradouro` AS `logradouro`,`escolaidiomas`.`pessoas`.`endereco_numero` AS `endereco_numero`,`escolaidiomas`.`pessoas`.`complemento_endereco` AS `complemento_endereco`,`escolaidiomas`.`pessoas`.`bairro` AS `bairro`,`escolaidiomas`.`pessoas`.`cep` AS `cep`,`escolaidiomas`.`pessoas`.`ativo` AS `ativo`,`escolaidiomas`.`pessoas`.`cidade_id` AS `cidade_id` from `escolaidiomas`.`pessoas` where (`escolaidiomas`.`pessoas`.`tipo` = 'P');

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_titulos`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_titulos` AS select `escolaidiomas`.`titulos`.`id` AS `id`,`escolaidiomas`.`titulos`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`titulos`.`forma_pagamento_id` AS `forma_pagamento_id`,`escolaidiomas`.`titulos`.`valor` AS `valor`,`escolaidiomas`.`titulos`.`data_vencimento` AS `data_vencimento`,`escolaidiomas`.`titulos`.`data_emissao` AS `data_emissao`,`escolaidiomas`.`titulos`.`pessoa_aluno_id` AS `pessoa_aluno_id`,`escolaidiomas`.`titulos`.`situacao` AS `situacao`,`escolaidiomas`.`titulos`.`data_pagamento` AS `data_pagamento`,`escolaidiomas`.`titulos`.`nro_remessa` AS `nro_remessa`,`escolaidiomas`.`titulos`.`nro_parcelas` AS `nro_parcelas`,`escolaidiomas`.`titulos`.`data_cancelamento` AS `data_cancelamento`,`escolaidiomas`.`titulos`.`tipo_cobranca_id` AS `tipo_cobranca_id`,`escolaidiomas`.`titulos`.`pessoa_registro_id` AS `pessoa_registro_id`,`escolaidiomas`.`titulos`.`titulo_original_id` AS `titulo_original_id`,`escolaidiomas`.`titulos`.`created_at` AS `created_at`,`escolaidiomas`.`titulos`.`updated_at` AS `updated_at`,(case when (`escolaidiomas`.`titulos`.`situacao` = 'C') then 'Cancelado' when (`escolaidiomas`.`titulos`.`situacao` = 'P') then 'Pago' when ((`escolaidiomas`.`titulos`.`situacao` = 'A') and (`escolaidiomas`.`titulos`.`data_vencimento` < curdate())) then 'Vencido' else 'Em aberto' end) AS `descricao_situacao` from `escolaidiomas`.`titulos`;

-- -----------------------------------------------------
-- View `escolaidiomas`.`view_usuarios`
-- -----------------------------------------------------
USE `escolaidiomas`;
CREATE  OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `escolaidiomas`.`view_usuarios` AS select `escolaidiomas`.`pessoas`.`id` AS `id`,`escolaidiomas`.`pessoas`.`nome` AS `nome`,`escolaidiomas`.`pessoas`.`email` AS `email`,`escolaidiomas`.`pessoas`.`password` AS `password`,`escolaidiomas`.`pessoas`.`remember_token` AS `remember_token`,`escolaidiomas`.`pessoas`.`created_at` AS `created_at`,`escolaidiomas`.`pessoas`.`updated_at` AS `updated_at`,`escolaidiomas`.`pessoas`.`empresa_id` AS `empresa_id`,`escolaidiomas`.`pessoas`.`tipo` AS `tipo`,`escolaidiomas`.`pessoas`.`email_contato` AS `email_contato`,`escolaidiomas`.`pessoas`.`email_secundario` AS `email_secundario`,`escolaidiomas`.`pessoas`.`telefone` AS `telefone`,`escolaidiomas`.`pessoas`.`telefone_secundario` AS `telefone_secundario`,`escolaidiomas`.`pessoas`.`data_nascimento` AS `data_nascimento`,`escolaidiomas`.`pessoas`.`imagem` AS `imagem`,`escolaidiomas`.`pessoas`.`tipo_pessoa` AS `tipo_pessoa`,`escolaidiomas`.`pessoas`.`cpf_cnpj` AS `cpf_cnpj`,`escolaidiomas`.`pessoas`.`logradouro` AS `logradouro`,`escolaidiomas`.`pessoas`.`endereco_numero` AS `endereco_numero`,`escolaidiomas`.`pessoas`.`complemento_endereco` AS `complemento_endereco`,`escolaidiomas`.`pessoas`.`bairro` AS `bairro`,`escolaidiomas`.`pessoas`.`cep` AS `cep`,`escolaidiomas`.`pessoas`.`ativo` AS `ativo`,`escolaidiomas`.`pessoas`.`cidade_id` AS `cidade_id` from `escolaidiomas`.`pessoas` where (`escolaidiomas`.`pessoas`.`tipo` = 'U');
USE `escolaidiomas`;

DELIMITER $$
USE `escolaidiomas`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `escolaidiomas`.`trigger_movimentacao_material_adicionar`
AFTER INSERT ON `escolaidiomas`.`material_movimentacoes`
FOR EACH ROW
BEGIN
                IF NEW.tipo = "S" THEN
                    UPDATE materiais 
                        SET quantidade = quantidade - NEW.quantidade
                    WHERE id = NEW.material_id;
                END IF;
                
                IF NEW.tipo = "E" THEN
                    UPDATE materiais 
                        SET quantidade = quantidade + NEW.quantidade
                    WHERE id = NEW.material_id;
                END IF;   
            END$$

USE `escolaidiomas`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `escolaidiomas`.`trigger_movimentacao_material_excluir`
BEFORE DELETE ON `escolaidiomas`.`material_movimentacoes`
FOR EACH ROW
BEGIN
                IF OLD.tipo = "S" THEN
                    UPDATE materiais
                        SET quantidade = materiais.quantidade + OLD.quantidade
                    WHERE materiais.id = OLD.material_id;
                END IF;
                
                IF OLD.tipo = "E" THEN
                    UPDATE materiais
                        SET quantidade = materiais.quantidade - OLD.quantidade
                    WHERE materiais.id = OLD.material_id;
                END IF;
            END$$

USE `escolaidiomas`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `escolaidiomas`.`trigger_numero_titulo`
BEFORE INSERT ON `escolaidiomas`.`titulos`
FOR EACH ROW
BEGIN
                UPDATE empresas
                    SET numero_titulo = numero_titulo + 1
                WHERE empresas.id = NEW.empresa_id;

				SET NEW.numero_titulo = (select empresas.numero_titulo from empresas where empresas.id = NEW.empresa_id);
            END$$


DELIMITER ;

