<?php
/**
 * Customize the vehicle admin list table.
 *
 * Orchestrator. Delegates to per-concern collaborators under
 * `Admin/ListTable/`: columns, sorting, quick-edit, bulk actions. Holds
 * the per-request `SpecsRowCache` so collaborators that read the same
 * specs row don't issue duplicate queries.
 *
 * @package ThemeREX\AutoDealer
 */

declare(strict_types=1);

namespace ThemeREX\AutoDealer\Admin;

defined( 'ABSPATH' ) || exit;

use ThemeREX\AutoDealer\Admin\ListTable\BulkActions;
use ThemeREX\AutoDealer\Admin\ListTable\Columns;
use ThemeREX\AutoDealer\Admin\ListTable\QuickEdit;
use ThemeREX\AutoDealer\Admin\ListTable\Sorting;
use ThemeREX\AutoDealer\Admin\ListTable\SpecsRowCache;

class AdminListTable {

	public function register(): void {
		$specsCache = new SpecsRowCache();

		( new Columns( $specsCache ) )->register();
		( new Sorting() )->register();
		( new QuickEdit() )->register();
		( new BulkActions() )->register();
	}
}
