-- ============================================================
-- CMS Multi-Layout - Schema Inicial
-- Compatível com MySQL 5.7+ / MariaDB 10.3+
-- ============================================================

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Usuários administradores
-- ----------------------------
CREATE TABLE IF NOT EXISTS `users` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(120) NOT NULL,
  `email` VARCHAR(180) NOT NULL UNIQUE,
  `password_hash` VARCHAR(255) NOT NULL,
  `role` ENUM('admin','editor') NOT NULL DEFAULT 'admin',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Configurações globais do site (chave/valor)
-- ----------------------------
CREATE TABLE IF NOT EXISTS `settings` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `key_name` VARCHAR(80) NOT NULL UNIQUE,
  `value` LONGTEXT NULL,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Paletas de cores (pré-definidas + custom)
-- ----------------------------
CREATE TABLE IF NOT EXISTS `palettes` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(80) NOT NULL,
  `primary_color` VARCHAR(20) NOT NULL,
  `secondary_color` VARCHAR(20) NOT NULL,
  `accent_color` VARCHAR(20) NOT NULL,
  `bg_color` VARCHAR(20) NOT NULL DEFAULT '#ffffff',
  `text_color` VARCHAR(20) NOT NULL DEFAULT '#111827',
  `is_custom` TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Páginas dinâmicas (produtos/serviços/sobre/contato)
-- ----------------------------
CREATE TABLE IF NOT EXISTS `pages` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(200) NOT NULL,
  `slug` VARCHAR(220) NOT NULL UNIQUE,
  `type` ENUM('page','product','service') NOT NULL DEFAULT 'page',
  `excerpt` VARCHAR(300) NULL,
  `content` LONGTEXT NULL,
  `image` VARCHAR(255) NULL,
  `meta_title` VARCHAR(200) NULL,
  `meta_description` VARCHAR(300) NULL,
  `is_published` TINYINT(1) NOT NULL DEFAULT 1,
  `show_in_menu` TINYINT(1) NOT NULL DEFAULT 1,
  `sort_order` INT NOT NULL DEFAULT 0,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  INDEX `idx_pages_type_pub` (`type`,`is_published`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Posts do Blog
-- ----------------------------
CREATE TABLE IF NOT EXISTS `posts` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(200) NOT NULL,
  `slug` VARCHAR(220) NOT NULL UNIQUE,
  `excerpt` VARCHAR(300) NULL,
  `content` LONGTEXT NULL,
  `image` VARCHAR(255) NULL,
  `meta_title` VARCHAR(200) NULL,
  `meta_description` VARCHAR(300) NULL,
  `is_published` TINYINT(1) NOT NULL DEFAULT 1,
  `published_at` DATETIME NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  INDEX `idx_posts_pub` (`is_published`,`published_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Mensagens do formulário de contato
-- ----------------------------
CREATE TABLE IF NOT EXISTS `contacts` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(120) NOT NULL,
  `email` VARCHAR(180) NOT NULL,
  `phone` VARCHAR(40) NULL,
  `subject` VARCHAR(200) NULL,
  `message` TEXT NOT NULL,
  `is_read` TINYINT(1) NOT NULL DEFAULT 0,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Diferenciais (ícones + título + texto)
-- ----------------------------
CREATE TABLE IF NOT EXISTS `features` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `icon` VARCHAR(60) NOT NULL DEFAULT 'star',
  `title` VARCHAR(160) NOT NULL,
  `description` TEXT NULL,
  `sort_order` INT NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ----------------------------
-- Depoimentos
-- ----------------------------
CREATE TABLE IF NOT EXISTS `testimonials` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `author` VARCHAR(120) NOT NULL,
  `role` VARCHAR(120) NULL,
  `message` TEXT NOT NULL,
  `rating` TINYINT NOT NULL DEFAULT 5,
  `avatar` VARCHAR(255) NULL,
  `sort_order` INT NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SET FOREIGN_KEY_CHECKS = 1;

-- ============================================================
-- Seeds iniciais
-- ============================================================

-- Usuário admin padrão (senha: admin123)  >>> ALTERE APÓS O 1º LOGIN <<<
INSERT INTO `users` (`name`,`email`,`password_hash`,`role`) VALUES
('Administrador','admin@admin.com','$2y$10$Q3qO0E5e0w7w9wQk1Yk0Qe6mQpL5o7gJ1Q9q1Q9q1Q9q1Q9q1Q9q1',
 'admin');
-- Hash acima é placeholder; o instalador (install.php) cria com password_hash() real.

-- Paletas pré-definidas
INSERT INTO `palettes` (`name`,`primary_color`,`secondary_color`,`accent_color`,`bg_color`,`text_color`,`is_custom`) VALUES
('Oceano',        '#0EA5E9','#0F172A','#22D3EE','#FFFFFF','#0F172A',0),
('Floresta',      '#16A34A','#064E3B','#84CC16','#F8FAFC','#111827',0),
('Sunset',        '#F97316','#7C2D12','#FACC15','#FFFFFF','#1F2937',0),
('Corporativo',   '#1D4ED8','#0F172A','#3B82F6','#FFFFFF','#0F172A',0),
('Elegante',      '#111827','#374151','#C9A227','#FFFFFF','#111827',0),
('Vibrante',      '#DB2777','#7C3AED','#F472B6','#FFFFFF','#1F2937',0);

-- Configurações iniciais
INSERT INTO `settings` (`key_name`,`value`) VALUES
('site_name','Minha Empresa'),
('site_tagline','Soluções que transformam o seu negócio'),
('site_description','Site institucional desenvolvido com a Plataforma CMS Multi-Layout.'),
('logo',''),
('hero_image',''),
('hero_title','Bem-vindo à nossa empresa'),
('hero_subtitle','Construímos soluções sob medida para o seu sucesso.'),
('hero_cta_text','Fale conosco'),
('hero_cta_link','/contato'),
('layout','classic'),
('palette_id','1'),
('custom_primary',''),
('custom_secondary',''),
('custom_accent',''),
('whatsapp_number',''),
('whatsapp_message','Olá! Tenho interesse em saber mais.'),
('contact_email','contato@empresa.com'),
('contact_phone','(00) 0000-0000'),
('contact_address','Rua Exemplo, 123 - Cidade/UF'),
('maps_embed',''),
('head_tracking_codes',''),
('footer_text','© Minha Empresa - Todos os direitos reservados'),
('social_facebook',''),
('social_instagram',''),
('social_linkedin','');

-- Páginas iniciais
INSERT INTO `pages` (`title`,`slug`,`type`,`excerpt`,`content`,`show_in_menu`,`sort_order`) VALUES
('Sobre','sobre','page','Conheça nossa história',
 '<p>Somos uma empresa comprometida com a excelência. Edite este conteúdo no painel administrativo.</p>',1,1),
('Contato','contato','page','Entre em contato',
 '<p>Use o formulário ou os canais de contato abaixo.</p>',1,99);

-- Serviços de exemplo
INSERT INTO `pages` (`title`,`slug`,`type`,`excerpt`,`content`,`show_in_menu`,`sort_order`) VALUES
('Consultoria','consultoria','service','Consultoria especializada','<p>Detalhes do serviço.</p>',0,1),
('Desenvolvimento','desenvolvimento','service','Desenvolvimento sob medida','<p>Detalhes do serviço.</p>',0,2),
('Suporte','suporte','service','Suporte contínuo','<p>Detalhes do serviço.</p>',0,3);

-- Diferenciais
INSERT INTO `features` (`icon`,`title`,`description`,`sort_order`) VALUES
('shield','Segurança','Proteção de dados em todos os processos.',1),
('zap','Agilidade','Entregamos rápido sem perder qualidade.',2),
('award','Qualidade','Padrão premium em todos os serviços.',3),
('users','Atendimento','Equipe dedicada ao seu sucesso.',4);

-- Depoimentos
INSERT INTO `testimonials` (`author`,`role`,`message`,`rating`,`sort_order`) VALUES
('João Silva','Diretor - Empresa X','Atendimento impecável e resultados acima do esperado.',5,1),
('Maria Souza','CEO - Empresa Y','Profissionais de altíssimo nível, recomendo!',5,2);

-- Posts iniciais
INSERT INTO `posts` (`title`,`slug`,`excerpt`,`content`,`is_published`,`published_at`) VALUES
('Bem-vindo ao nosso blog','bem-vindo-ao-nosso-blog','Primeiro post de boas-vindas.',
 '<p>Este é o primeiro post do blog. Edite ou exclua no painel administrativo.</p>',1,NOW());
