<?php
/**
 * The Event Taxonomy Service Provider.
 *
 * @since   5.16.0
 * @package Tribe\Events\Taxonomy
 */

namespace Tribe\Events\Taxonomy;

use WP_Term;
use TEC\Common\Contracts\Service_Provider;


/**
 * Class Taxonomy_Provider
 *
 * @since   5.16.0
 *
 * @package Tribe\Events\Taxonomy
 */
class Taxonomy_Provider extends Service_Provider {


	/**
	 * Binds and sets up implementations.
	 *
	 * @since 5.16.0
	 */
	public function register() {
		// Register the SP on the container
		$this->container->singleton( 'events.taxonomy.provider', $this );

		$this->add_filters();
	}

	/**
	 * Adds the filters required for taxonomies.
	 *
	 * @since 5.16.0
	 */
	protected function add_filters() {
		add_filter( 'post_tag_row_actions', [ $this, 'event_tag_actions' ], 10, 2 );
	}

	/**
	 * Filters the post tag action links displayed for each term in the terms list table.
	 *
	 * @since 5.16.0
	 *
	 * @param array<string|string> $actions An array of action links to be displayed.
	 * @param WP_Term              $tag     Term object.
	 *
	 * @return array<string|string> An array of action links to be displayed
	 */
	public function event_tag_actions( $actions, WP_Term $tag ) {
		return $this->container->make( Event_Tag::class )->event_tag_actions( $actions, $tag );
	}
}
