<?php
/**
 * Base.
 *
 * @package MadeByAura\Prime
 * @author  MadeByAura.com
 */

namespace MadeByAura\Prime;

use MadeByAura\Prime\Customizer\Modules\Value as ModValue;
use MadeByAura\Prime\Helpers\ACF;
use MadeByAura\Prime\Helpers\Theme;

defined( 'ABSPATH' ) || die();

/**
 * Base.
 */
class Base {
	/**
	 * Get theme information.
	 *
	 * @param string $id  ID.
	 * @return string
	 */
	public static function get_info( $id ) {
		return Theme::get_info( $id );
	}

	/**
	 * Wrapper for `view()`.
	 *
	 * @param string $path  Path of view.
	 * @param array  $args  Optional. Arguments passed to view.
	 */
	public static function view( $path, $args = [] ) {
		return Theme::view( $path, $args );
	}

	/**
	 * Wrapper for `get_template_part()`.
	 *
	 * @param string $slug  Slug of template part.
	 * @param array  $args  Optional. Arguments passed to template part.
	 */
	public static function get_template_part( $slug, $args = [] ) {
		return Theme::get_template_part( $slug, $args );
	}

	/**
	 * Proxy function for `get_field()` method of `ACF` class.
	 *
	 * @param string $group    Group.
	 * @param string $id       ID.
	 * @param int    $post_id  Post ID.
	 * @param mixed  $fallback  Fallback value.
	 * @return mixed
	 */
	public static function get_acf( $group, $id, $post_id = null, $fallback = null ) {
		return ACF::get_field( 'aura', $group, $id, $post_id, $fallback );
	}

	/**
	 * Proxy function for `get()` method of `ModValue` class.
	 *
	 * @param string $section  Section ID.
	 * @param string $id       ID.
	 * @return mixed
	 */
	public static function get_mod( $section, $id ) {
		return ModValue::get( $section, $id );
	}
}
