<?php
/**
 * =====================================================
 * OFFICE - Front Controller
 * Localização: /public/index.php
 * =====================================================
 * Todas as requisições passam por aqui (via .htaccess).
 */

require_once __DIR__ . '/../config/config.php';
require_once APP_PATH . '/core/Database.php';
require_once APP_PATH . '/core/Controller.php';
require_once APP_PATH . '/core/Router.php';
require_once APP_PATH . '/helpers/functions.php';

$router = new Router();

// =========================================
// ROTAS PÚBLICAS
// =========================================
$router->get('/',            'HomeController@index');
$router->get('/home',        'HomeController@index');
$router->get('/sobre',       'HomeController@sobre');
$router->get('/contato',     'HomeController@contato');

$router->get('/catalogo',               'CatalogoController@index');
$router->get('/produto/{slug}',         'CatalogoController@produto');

$router->get('/carrinho',                 'CarrinhoController@index');
$router->post('/carrinho/adicionar',      'CarrinhoController@adicionar');
$router->get('/carrinho/remover/{chave}', 'CarrinhoController@remover');
$router->post('/carrinho/atualizar',      'CarrinhoController@atualizar');
$router->get('/carrinho/limpar',          'CarrinhoController@limpar');

$router->get('/checkout',               'PedidoController@checkout');
$router->post('/pedido/finalizar',      'PedidoController@finalizar');
$router->get('/pedido/sucesso/{codigo}','PedidoController@sucesso');

// =========================================
// ROTAS ADMIN
// =========================================
$router->get('/admin',              'AuthController@loginForm');
$router->get('/admin/login',        'AuthController@loginForm');
$router->post('/admin/login',       'AuthController@login');
$router->get('/admin/logout',       'AuthController@logout');

$router->get('/admin/dashboard',    'DashboardController@index');

// Produtos
$router->get('/admin/produtos',                       'ProdutoAdminController@index');
$router->get('/admin/produtos/criar',                 'ProdutoAdminController@criar');
$router->post('/admin/produtos/salvar',               'ProdutoAdminController@salvar');
$router->get('/admin/produtos/editar/{id}',           'ProdutoAdminController@editar');
$router->get('/admin/produtos/excluir/{id}',          'ProdutoAdminController@excluir');
$router->get('/admin/produtos/toggle-ativo/{id}',     'ProdutoAdminController@toggleAtivo');
$router->get('/admin/produtos/toggle-destaque/{id}',  'ProdutoAdminController@toggleDestaque');
$router->get('/admin/produtos/remover-imagem/{id}',   'ProdutoAdminController@removerImagem');
$router->get('/admin/produtos/imagem-principal/{id}', 'ProdutoAdminController@definirPrincipal');
$router->post('/admin/produtos/variacao',             'ProdutoAdminController@adicionarVariacao');
$router->get('/admin/produtos/variacao/remover/{id}', 'ProdutoAdminController@removerVariacao');

// Categorias
$router->get('/admin/categorias',              'CategoriaAdminController@index');
$router->post('/admin/categorias/salvar',      'CategoriaAdminController@salvar');
$router->get('/admin/categorias/excluir/{id}', 'CategoriaAdminController@excluir');

// Coleções
$router->get('/admin/colecoes',              'ColecaoAdminController@index');
$router->post('/admin/colecoes/salvar',      'ColecaoAdminController@salvar');
$router->get('/admin/colecoes/excluir/{id}', 'ColecaoAdminController@excluir');

// Pedidos
$router->get('/admin/pedidos',             'PedidoAdminController@index');
$router->get('/admin/pedidos/ver/{id}',    'PedidoAdminController@ver');
$router->post('/admin/pedidos/status',     'PedidoAdminController@atualizarStatus');

// Configurações
$router->get('/admin/configuracoes',         'ConfiguracaoAdminController@index');
$router->post('/admin/configuracoes/salvar', 'ConfiguracaoAdminController@salvar');

// Catálogo PDF
$router->get('/admin/catalogo-pdf',             'CatalogoPdfController@index');
$router->post('/admin/catalogo-pdf/gerar',      'CatalogoPdfController@gerar');
$router->get('/admin/catalogo-pdf/baixar/{id}', 'CatalogoPdfController@baixar');
$router->get('/admin/catalogo-pdf/excluir/{id}','CatalogoPdfController@excluir');

// Despacha
$router->dispatch($_SERVER['REQUEST_URI'], $_SERVER['REQUEST_METHOD']);
