-- Migration 5: Product Master / Catalogo Inteligente
-- Source: backend/db/dump/19052026_nextbar.sql

-- -------------------------------------------------------- 5. Product Master / Catalogo Inteligente
--
-- Estrutura para tabela `unidades_medida`
--

CREATE TABLE `unidades_medida` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  code VARCHAR(50) NOT NULL,
  name VARCHAR(100) NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
--
-- Estrutura para tabela `categorias_produtos_globais`
--

CREATE TABLE `categorias_produtos_globais` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  parent_category_id INT,
  name VARCHAR(200) NOT NULL,
  normalized_name VARCHAR(200) NOT NULL,
  category_type VARCHAR(200) NOT NULL,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0,
  FOREIGN KEY (parent_category_id) REFERENCES categorias_produtos_globais(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
--
-- Estrutura para tabela `marcas_produto`
--

CREATE TABLE `marcas_produto` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(200) NOT NULL,
  normalized_name VARCHAR(200) NOT NULL,
  photo VARCHAR(200),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
--
-- Estrutura para tabela `conceitos_produtos`
--

CREATE TABLE `conceitos_produtos` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  canonical_name VARCHAR(200) NOT NULL,
  concept_type VARCHAR(200) NOT NULL,
  category_id INT NOT NULL,
  brand_id INT NOT NULL,
  description VARCHAR(200),
  origin VARCHAR(200),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0,
  FOREIGN KEY (category_id) REFERENCES categorias_produtos_globais(id),
  FOREIGN KEY (brand_id) REFERENCES marcas_produto(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
--
-- Estrutura para tabela `variantes_produtos`
--

CREATE TABLE `variantes_produtos` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  concept_id INT NOT NULL,
  variant_name VARCHAR(200) NOT NULL,
  size_value DECIMAL(10,2),
  size_unit INT(11),
  packaging_type INT(11),
  flavor VARCHAR(200),
  bar_code VARCHAR(200),
  gtin VARCHAR(200),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0,
  FOREIGN KEY (concept_id) REFERENCES conceitos_produtos(id),
  FOREIGN KEY (size_unit) REFERENCES unidades_medida(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
--
-- Estrutura para tabela `aliases_produto`
--

CREATE TABLE `aliases_produto` (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  product_concept_id INT NOT NULL,
  product_variant_id INT NOT NULL,
  alias VARCHAR(200) NOT NULL,
  origin VARCHAR(200),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  status TINYINT(1) NOT NULL DEFAULT 1,
  trash TINYINT(1) NOT NULL DEFAULT 0,
  FOREIGN KEY (product_variant_id) REFERENCES variantes_produtos(id),
  FOREIGN KEY (product_concept_id) REFERENCES conceitos_produtos(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
