<?php

namespace GravityKit\GravityExport\Save\Addon;

/**
 * This class holds the default variables for the GFFeedAddOn
 *
 * @since 1.0
 */
abstract class SaveAddonVariables extends \GFFeedAddOn {
	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_min_gravityforms_version = '2.0';

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_slug = 'gravityexport-save';

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_full_path = __FILE__;

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_title = 'GravityExport Save';

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_short_title = 'GravityExport Save';

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	protected $_capabilities = [ 'gravityforms_export_entries' ];

	/**
	 * @inheritdoc
	 * @since 1.0
	 */
	public function minimum_requirements() {

		$slug = 'gf-entries-in-excel';

		if ( defined( 'GFEXCEL_PLUGIN_VERSION' ) ) {
			$slug = version_compare( '2.0.0', GFEXCEL_PLUGIN_VERSION, '>' ) ? 'gf-entries-in-excel' : 'gravityexport-lite';
		}

		return [
			'php' => [
				'extensions' => [
					'fileinfo',
				],
			],
			'add-ons' => [
				$slug => [
					'version' => '1.9',
					'name' => strtr( esc_html__( 'GravityExport requires [url]GravityExport Lite[/url] version [version] or newer.', 'gk-gravityexport' ), [
						'[url]'     => '',
						'[/url]'    => '',
						'[version]' => GK_GRAVITYEXPORT_MIN_LITE_VERSION
					]
					),
				],
			],
		];
	}

	/**
	 * The columns for the feed list.
	 *
	 * @since 1.0
	 * @return string[]
	 */
	public function feed_list_columns(): array {
		return [
			SaveAddon::STORAGE_TITLE  => esc_html__( 'Title', 'gk-gravityexport' ),
			SaveAddon::STORAGE_TYPE   => esc_html__( 'Type', 'gk-gravityexport' ),
			SaveAddon::FILE_TYPE      => esc_html__( 'Contains', 'gk-gravityexport' ),
			SaveAddon::EXPORT_TRIGGER => esc_html__( 'Trigger', 'gk-gravityexport' ),
		];
	}
}
