<?php
/**
 * ConfiguracaoAdminController - Configurações da marca
 * Localização: /app/controllers/ConfiguracaoAdminController.php
 */

class ConfiguracaoAdminController extends Controller
{
    public function index(): void
    {
        $this->requireAdmin();
        $config = $this->model('Configuracao')->obter();
        $this->view('admin/configuracoes/index', [
            'pageTitle' => 'Configurações',
            'config'    => $config,
        ], 'admin');
    }

    public function salvar(): void
    {
        $this->requireAdmin();
        $this->validateCsrf();

        $model = $this->model('Configuracao');
        $atual = $model->obter();

        $dados = [
            'marca_nome'       => trim($this->input('marca_nome','OFFICE')),
            'marca_slogan'     => trim($this->input('marca_slogan','')) ?: null,
            'cor_primaria'     => trim($this->input('cor_primaria','#0A0A0A')),
            'cor_secundaria'   => trim($this->input('cor_secundaria','#C9A55C')),
            'cor_texto'        => trim($this->input('cor_texto','#1A1A1A')),
            'banner_titulo'    => trim($this->input('banner_titulo','')) ?: null,
            'banner_subtitulo' => trim($this->input('banner_subtitulo','')) ?: null,
            'sobre_titulo'     => trim($this->input('sobre_titulo','')) ?: null,
            'sobre_texto'      => trim($this->input('sobre_texto','')) ?: null,
            'contato_email'    => trim($this->input('contato_email','')) ?: null,
            'contato_telefone' => trim($this->input('contato_telefone','')) ?: null,
            'contato_whatsapp' => trim($this->input('contato_whatsapp','')) ?: null,
            'contato_endereco' => trim($this->input('contato_endereco','')) ?: null,
            'instagram'        => trim($this->input('instagram','')) ?: null,
            'facebook'         => trim($this->input('facebook','')) ?: null,
            'tiktok'           => trim($this->input('tiktok','')) ?: null,
            'email_remetente'  => trim($this->input('email_remetente','')) ?: null,
            'email_notificacao'=> trim($this->input('email_notificacao','')) ?: null,
            'meta_titulo'      => trim($this->input('meta_titulo','')) ?: null,
            'meta_descricao'   => trim($this->input('meta_descricao','')) ?: null,
        ];

        // Upload logo
        if (!empty($_FILES['marca_logo']['tmp_name'])) {
            $logo = upload_imagem($_FILES['marca_logo'], 'logo');
            if ($logo) $dados['marca_logo'] = $logo;
        } else {
            $dados['marca_logo'] = $atual['marca_logo'] ?? null;
        }

        // Upload favicon
        if (!empty($_FILES['marca_favicon']['tmp_name'])) {
            $fav = upload_imagem($_FILES['marca_favicon'], 'logo');
            if ($fav) $dados['marca_favicon'] = $fav;
        } else {
            $dados['marca_favicon'] = $atual['marca_favicon'] ?? null;
        }

        // Upload banner
        if (!empty($_FILES['banner_principal']['tmp_name'])) {
            $banner = upload_imagem($_FILES['banner_principal'], 'banners');
            if ($banner) $dados['banner_principal'] = $banner;
        } else {
            $dados['banner_principal'] = $atual['banner_principal'] ?? null;
        }

        $model->salvar($dados);
        $this->setFlash('success','Configurações salvas');
        $this->redirect(admin_url('configuracoes'));
    }
}
