<?php
/**
 * Theme setting defaults and reusable portfolio content.
 *
 * @package Gustavo_Portfolio
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Return default settings without writing options to the database.
 *
 * @return array<string, mixed>
 */
function gustavoo_portfolio_get_defaults() {
	$defaults = array(
		'hero_eyebrow'          => __( 'Desenvolvimento de ponta a ponta', 'gustavoo-portfolio' ),
		'hero_title'            => __( 'Transformo ideias em produtos digitais sólidos.', 'gustavoo-portfolio' ),
		'hero_description'      => __( 'Gustavo, Desenvolvedor Full Stack Sênior. Web, mobile, infraestrutura e automação para tirar projetos do papel e fazê-los crescer.', 'gustavoo-portfolio' ),
		'hero_primary_label'    => __( 'Ver projetos', 'gustavoo-portfolio' ),
		'hero_primary_url'      => '#projetos',
		'hero_secondary_label'  => __( 'Fale comigo', 'gustavoo-portfolio' ),
		'hero_secondary_url'    => '#contato',
		'about_eyebrow'         => __( 'Sobre mim', 'gustavoo-portfolio' ),
		'about_title'           => __( 'Responsabilidade técnica do planejamento à produção.', 'gustavoo-portfolio' ),
		'about_text'            => __( 'Mais do que escrever código, meu objetivo é garantir que seu projeto saia do papel e funcione exatamente como planejado. Assumo a responsabilidade técnica de ponta a ponta para que você foque no que importa: crescer.', 'gustavoo-portfolio' ),
		'about_secondary_text'  => __( 'Já participei do desenvolvimento e lançamento de múltiplos projetos digitais, atuando da arquitetura técnica à divulgação e ao crescimento das plataformas. Essa combinação de visão técnica e entendimento de mercado orienta cada entrega.', 'gustavoo-portfolio' ),
		'services_eyebrow'      => __( 'Como posso ajudar', 'gustavoo-portfolio' ),
		'services_title'        => __( 'Soluções completas para produtos digitais.', 'gustavoo-portfolio' ),
		'services_description'  => __( 'Estratégia, código e infraestrutura trabalhando juntos para criar experiências rápidas, seguras e preparadas para evoluir.', 'gustavoo-portfolio' ),
		'projects_eyebrow'      => __( 'Portfólio', 'gustavoo-portfolio' ),
		'projects_title'        => __( 'Projetos selecionados', 'gustavoo-portfolio' ),
		'projects_text'         => __( 'Uma seleção de produtos, experiências e soluções que ajudei a colocar no mundo.', 'gustavoo-portfolio' ),
		'projects_limit'        => 6,
		'blog_eyebrow'          => __( 'Blog', 'gustavoo-portfolio' ),
		'blog_title'            => __( 'Código, produto e bastidores', 'gustavoo-portfolio' ),
		'blog_text'             => __( 'Análises práticas sobre desenvolvimento, infraestrutura, automação e crescimento de produtos digitais.', 'gustavoo-portfolio' ),
		'blog_limit'            => 4,
		'contact_eyebrow'       => __( 'Vamos conversar', 'gustavoo-portfolio' ),
		'contact_heading'       => __( 'Tem um projeto em mente?', 'gustavoo-portfolio' ),
		'contact_text'          => __( 'Conte o que você precisa construir ou melhorar. Responderei com os próximos passos para transformar a ideia em uma entrega concreta.', 'gustavoo-portfolio' ),
		'contact_form_id'       => 0,
		'newsletter_eyebrow'    => __( 'Newsletter', 'gustavoo-portfolio' ),
		'newsletter_heading'    => __( 'Ideias úteis, direto na sua caixa de entrada.', 'gustavoo-portfolio' ),
		'newsletter_text'       => __( 'Receba conteúdos sobre desenvolvimento, produto, infraestrutura e automação. Sem ruído e sem spam.', 'gustavoo-portfolio' ),
		'newsletter_form_id'    => 0,
		'email'                 => (string) get_option( 'admin_email', '' ),
		'whatsapp'              => '',
		'whatsapp_message'      => __( 'Olá! Gostaria de falar sobre um projeto.', 'gustavoo-portfolio' ),
		'github_url'            => '',
		'linkedin_url'          => '',
		'instagram_url'         => '',
		'projects_archive_url'  => '',
		'availability_label'    => __( 'Disponível para novos projetos', 'gustavoo-portfolio' ),
	);

	/**
	 * Filter theme defaults before saved settings are merged.
	 *
	 * @param array<string, mixed> $defaults Default settings.
	 */
	return apply_filters( 'gustavoo_portfolio_defaults', $defaults );
}

/**
 * Return the saved theme settings merged with safe local defaults.
 *
 * @return array<string, mixed>
 */
function gustavoo_portfolio_get_settings() {
	$settings = get_option( 'gustavoo_portfolio_settings', array() );

	if ( ! is_array( $settings ) ) {
		$settings = array();
	}

	return wp_parse_args( $settings, gustavoo_portfolio_get_defaults() );
}

/**
 * Read one theme setting. A few aliases preserve compatibility with early builds.
 *
 * @param string $key      Setting key.
 * @param mixed  $fallback Optional fallback.
 * @return mixed
 */
function gustavoo_portfolio_get_setting( $key, $fallback = null ) {
	$customizer_key    = 'gustavoo_portfolio_' . $key;
	$customizer_values = get_theme_mods();

	if ( is_array( $customizer_values ) && array_key_exists( $customizer_key, $customizer_values ) ) {
		return $customizer_values[ $customizer_key ];
	}

	$settings = gustavoo_portfolio_get_settings();
	$aliases  = array(
		'hero_eyebrow'       => array( 'hero_kicker' ),
		'hero_description'   => array( 'hero_text' ),
		'contact_form_id'    => array( 'fluent_contact_form_id', 'lead_form_id' ),
		'newsletter_form_id' => array( 'fluent_newsletter_form_id', 'fluentcrm_form_id' ),
		'contact_heading'    => array( 'contact_title' ),
		'newsletter_heading' => array( 'newsletter_title' ),
	);

	if ( array_key_exists( $key, $settings ) && '' !== $settings[ $key ] && null !== $settings[ $key ] ) {
		return $settings[ $key ];
	}

	if ( isset( $aliases[ $key ] ) ) {
		foreach ( $aliases[ $key ] as $alias ) {
			if ( array_key_exists( $alias, $settings ) && '' !== $settings[ $alias ] && null !== $settings[ $alias ] ) {
				return $settings[ $alias ];
			}
		}
	}

	if ( null !== $fallback ) {
		return $fallback;
	}

	$defaults = gustavoo_portfolio_get_defaults();

	return $defaults[ $key ] ?? '';
}

/**
 * Return the service cards used by the front page.
 *
 * @return array<int, array<string, string>>
 */
function gustavoo_portfolio_get_services() {
	$services = array(
		array(
			'number'      => '01',
			'title'       => __( 'Web, Mobile e E-commerce', 'gustavoo-portfolio' ),
			'description' => __( 'Sites institucionais, aplicações para iOS e Android, softwares desktop, lojas e marketplaces personalizados com foco em experiência e conversão.', 'gustavoo-portfolio' ),
		),
		array(
			'number'      => '02',
			'title'       => __( 'WordPress avançado', 'gustavoo-portfolio' ),
			'description' => __( 'Temas e plugins sob medida, integrações específicas, recuperação de sites e otimização para Core Web Vitals.', 'gustavoo-portfolio' ),
		),
		array(
			'number'      => '03',
			'title'       => __( 'Infraestrutura e servidores', 'gustavoo-portfolio' ),
			'description' => __( 'Ambientes Linux, VPS e servidores dedicados configurados para manter aplicações estáveis, rápidas, seguras e escaláveis.', 'gustavoo-portfolio' ),
		),
		array(
			'number'      => '04',
			'title'       => __( 'Automação e integrações', 'gustavoo-portfolio' ),
			'description' => __( 'APIs e fluxos com n8n para conectar sistemas, organizar dados e eliminar tarefas operacionais repetitivas.', 'gustavoo-portfolio' ),
		),
		array(
			'number'      => '05',
			'title'       => __( 'Games e experiências interativas', 'gustavoo-portfolio' ),
			'description' => __( 'Jogos 2D e 3D para celulares, computadores e navegadores, incluindo ranking, multiplayer e compras dentro do jogo.', 'gustavoo-portfolio' ),
		),
		array(
			'number'      => '06',
			'title'       => __( 'Divulgação e crescimento', 'gustavoo-portfolio' ),
			'description' => __( 'Estratégias de conteúdo, comunidades, parcerias e mídia paga para aproximar produtos digitais do público certo.', 'gustavoo-portfolio' ),
		),
	);

	/**
	 * Filter the service cards shown on the front page.
	 *
	 * @param array<int, array<string, string>> $services Service cards.
	 */
	return apply_filters( 'gustavoo_portfolio_services', $services );
}
