-- MySQL Script generated by MySQL Workbench
-- qua 10 abr 2024 09:02:24
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema db_sanja_pet
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `db_sanja_pet` ;

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

-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_tipo_funcionario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_tipo_funcionario` (
  `cd_tipo_funcionario` INT NOT NULL AUTO_INCREMENT,
  `nm_tipo_funcionario` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`cd_tipo_funcionario`),
  UNIQUE INDEX `nm_tipo_funcionario_UNIQUE` (`nm_tipo_funcionario` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_funcionario`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_funcionario` (
  `cd_funcionario` INT NOT NULL AUTO_INCREMENT,
  `nm_funcionario` VARCHAR(60) NOT NULL,
  `dt_nascimento` DATE NOT NULL,
  `nm_email` VARCHAR(60) NOT NULL,
  `cd_senha` VARCHAR(45) NOT NULL,
  `st_funcionario` CHAR(1) NOT NULL DEFAULT '1',
  `dt_registro_funcionario` DATETIME NOT NULL DEFAULT current_timestamp,
  `id_tipo_funcionario` INT NOT NULL,
  PRIMARY KEY (`cd_funcionario`),
  UNIQUE INDEX `nm_email_UNIQUE` (`nm_email` ASC) ,
  INDEX `fk_tb_funcionario_tb_tipo_funcionario_idx` (`id_tipo_funcionario` ASC) ,
  CONSTRAINT `fk_tb_funcionario_tb_tipo_funcionario`
    FOREIGN KEY (`id_tipo_funcionario`)
    REFERENCES `db_sanja_pet`.`tb_tipo_funcionario` (`cd_tipo_funcionario`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_tipo_produto`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_tipo_produto` (
  `cd_tipo_produto` INT NOT NULL AUTO_INCREMENT,
  `nm_tipo_produto` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`cd_tipo_produto`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_produto`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_produto` (
  `cd_produto` INT NOT NULL AUTO_INCREMENT,
  `nm_produto` VARCHAR(45) NOT NULL,
  `ds_produto` TEXT NOT NULL,
  `vl_produto` DECIMAL(6,2) NOT NULL,
  `id_tipo_produto` INT NOT NULL,
  PRIMARY KEY (`cd_produto`),
  INDEX `fk_tb_produto_tb_tipo_produto1_idx` (`id_tipo_produto` ASC) ,
  CONSTRAINT `fk_tb_produto_tb_tipo_produto1`
    FOREIGN KEY (`id_tipo_produto`)
    REFERENCES `db_sanja_pet`.`tb_tipo_produto` (`cd_tipo_produto`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_tipo_servico`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_tipo_servico` (
  `cd_tipo_servico` INT NOT NULL AUTO_INCREMENT,
  `nm_tipo_servico` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`cd_tipo_servico`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_servico`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_servico` (
  `cd_servico` INT NOT NULL AUTO_INCREMENT,
  `nm_servico` VARCHAR(45) NOT NULL,
  `ds_servico` TEXT NOT NULL,
  `id_tipo_servico` INT NOT NULL,
  PRIMARY KEY (`cd_servico`),
  INDEX `fk_tb_servico_tb_tipo_servico1_idx` (`id_tipo_servico` ASC) ,
  CONSTRAINT `fk_tb_servico_tb_tipo_servico1`
    FOREIGN KEY (`id_tipo_servico`)
    REFERENCES `db_sanja_pet`.`tb_tipo_servico` (`cd_tipo_servico`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_especie`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_especie` (
  `cd_especie` INT NOT NULL,
  `nm_especie` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`cd_especie`),
  UNIQUE INDEX `nm_especie_UNIQUE` (`nm_especie` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_cliente`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_cliente` (
  `cd_cliente` INT NOT NULL AUTO_INCREMENT,
  `nm_cliente` VARCHAR(60) NOT NULL,
  `dt_nascimento` DATE NOT NULL,
  `nm_email` VARCHAR(45) NOT NULL,
  `cd_senha` VARCHAR(45) NOT NULL,
  `st_cliente` CHAR(1) NOT NULL DEFAULT '1',
  `dt_registro_cliente` DATETIME NOT NULL DEFAULT current_timestamp,
  PRIMARY KEY (`cd_cliente`),
  UNIQUE INDEX `nm_email_UNIQUE` (`nm_email` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_animal`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_animal` (
  `cd_animal` INT NOT NULL AUTO_INCREMENT,
  `nm_animal` VARCHAR(45) NULL,
  `nm_porte` CHAR(1) NOT NULL,
  `qt_peso` DECIMAL(5,2) NULL,
  `ds_animal` TEXT NULL,
  `id_especie` INT NOT NULL,
  `id_cliente` INT NOT NULL,
  PRIMARY KEY (`cd_animal`),
  INDEX `fk_tb_animal_tb_especie1_idx` (`id_especie` ASC) ,
  INDEX `fk_tb_animal_tb_cliente1_idx` (`id_cliente` ASC) ,
  CONSTRAINT `fk_tb_animal_tb_especie1`
    FOREIGN KEY (`id_especie`)
    REFERENCES `db_sanja_pet`.`tb_especie` (`cd_especie`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_tb_animal_tb_cliente1`
    FOREIGN KEY (`id_cliente`)
    REFERENCES `db_sanja_pet`.`tb_cliente` (`cd_cliente`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_agenda`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_agenda` (
  `cd_agenda` INT NOT NULL AUTO_INCREMENT,
  `dt_agenda` DATE NOT NULL,
  `hr_agenda` TIME NOT NULL,
  `id_servico` INT NOT NULL,
  `id_funcionario` INT NULL,
  `id_animal` INT NOT NULL,
  `st_agenda` CHAR(1) NOT NULL DEFAULT '2',
  `dt_registro_agenda` DATETIME NOT NULL DEFAULT current_timestamp,
  PRIMARY KEY (`cd_agenda`),
  INDEX `fk_tb_agenda_tb_servico1_idx` (`id_servico` ASC) ,
  INDEX `fk_tb_agenda_tb_funcionario1_idx` (`id_funcionario` ASC) ,
  INDEX `fk_tb_agenda_tb_animal1_idx` (`id_animal` ASC) ,
  CONSTRAINT `fk_tb_agenda_tb_servico1`
    FOREIGN KEY (`id_servico`)
    REFERENCES `db_sanja_pet`.`tb_servico` (`cd_servico`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_tb_agenda_tb_funcionario1`
    FOREIGN KEY (`id_funcionario`)
    REFERENCES `db_sanja_pet`.`tb_funcionario` (`cd_funcionario`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_tb_agenda_tb_animal1`
    FOREIGN KEY (`id_animal`)
    REFERENCES `db_sanja_pet`.`tb_animal` (`cd_animal`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_carrinho`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_carrinho` (
  `cd_carrinho` INT NOT NULL AUTO_INCREMENT,
  `dt_carrinho` DATETIME NOT NULL DEFAULT current_timestamp,
  `id_cliente` INT NOT NULL,
  `st_carrinho` CHAR(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`cd_carrinho`),
  INDEX `fk_tb_carrinho_tb_cliente1_idx` (`id_cliente` ASC) ,
  CONSTRAINT `fk_tb_carrinho_tb_cliente1`
    FOREIGN KEY (`id_cliente`)
    REFERENCES `db_sanja_pet`.`tb_cliente` (`cd_cliente`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `db_sanja_pet`.`tb_produto_carrinho`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `db_sanja_pet`.`tb_produto_carrinho` (
  `cd_item` INT NOT NULL AUTO_INCREMENT,
  `id_produto` INT NOT NULL,
  `id_carrinho` INT NOT NULL,
  `qt_produto` INT NOT NULL,
  `vl_produto` DECIMAL(6,2) NOT NULL,
  PRIMARY KEY (`cd_item`),
  INDEX `fk_tb_produto_has_tb_carrinho_tb_carrinho1_idx` (`id_carrinho` ASC) ,
  INDEX `fk_tb_produto_has_tb_carrinho_tb_produto1_idx` (`id_produto` ASC) ,
  CONSTRAINT `fk_tb_produto_has_tb_carrinho_tb_produto1`
    FOREIGN KEY (`id_produto`)
    REFERENCES `db_sanja_pet`.`tb_produto` (`cd_produto`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_tb_produto_has_tb_carrinho_tb_carrinho1`
    FOREIGN KEY (`id_carrinho`)
    REFERENCES `db_sanja_pet`.`tb_carrinho` (`cd_carrinho`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;