<?php
/**
 * PufferGo Footer Data — 所有 footer 模板的数据入口。
 *
 * 将 puffergo_get_footer_context() 返回的关联数组映射为强类型公共属性，
 * footer 模板只通过 $data 访问数据，不直接调用 WordPress API。
 *
 * @package PufferGo
 */

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

class PufferGo_Footer_Data {

	/** @var array 导航菜单解析出的 sections [{title, links: [{name, url}]}] */
	public $sections = array();

	/** @var string 版权文本 */
	public $copyright_text = '';

	/** @var string 首页 URL */
	public $home_url = '';

	/** @var string 当前年份 */
	public $year = '';

	/** @var string 品牌名称 */
	public $brand_name = '';

	/** @var int Logo 附件 ID */
	public $logo_id = 0;

	/** @var string Logo URL */
	public $logo_url = '';

	/** @var string Logo alt 文本 */
	public $logo_alt = '';

	/** @var string 联系邮箱 */
	public $contact_email = '';

	/** @var string 联系电话 */
	public $contact_phone = '';

	/** @var string 联系地址 */
	public $contact_address = '';

	/** @var array 联系渠道 [{type, value, href, icon}] */
	public $contact_channels = array();

	/** @var string 微信号 */
	public $wechat_value = '';

	/** @var string 站点描述 */
	public $site_description = '';

	/**
	 * 从全局上下文构建 Footer 数据。
	 *
	 * @return self
	 */
	public static function from_global_context() {
		return new self();
	}

	/**
	 * 构造函数：委托给 puffergo_get_footer_context() 获取数据并映射属性。
	 */
	public function __construct() {
		$ctx = puffergo_get_footer_context();

		$this->sections         = $ctx['sections'] ?? array();
		$this->copyright_text   = $ctx['copyright_text'] ?? '';
		$this->home_url         = $ctx['home_url'] ?? '';
		$this->year             = $ctx['year'] ?? gmdate( 'Y' );
		$this->brand_name       = $ctx['brand_name'] ?? '';
		$this->logo_id          = $ctx['logo_id'] ?? 0;
		$this->logo_url         = $ctx['logo_url'] ?? '';
		$this->logo_alt         = $ctx['logo_alt'] ?? '';
		$this->contact_email    = $ctx['contact_email'] ?? '';
		$this->contact_phone    = $ctx['contact_phone'] ?? '';
		$this->contact_address  = $ctx['contact_address'] ?? '';
		$this->contact_channels = $ctx['contact_channels'] ?? array();
		$this->wechat_value     = $ctx['wechat_value'] ?? '';

		$this->site_description = get_bloginfo( 'description' );
	}
}
