<?php

namespace WPDRMS\ASP\AI\ORM;

use WPDRMS\AdminUI\Data\AbstractOptionDataSiteOption;
use WPDRMS\AdminUI\Options\BoolOption;
use WPDRMS\AdminUI\Options\LanguageSelectOption;

if ( !defined( 'ABSPATH' ) ) {
	die( '-1' );
}

final class AIOptions extends AbstractOptionDataSiteOption {
	public BoolOption $diagnostic;
	public BoolOption $synonym_discover;
	public BoolOption $quality_report;
	public BoolOption $config_wizard;
	public BoolOption $priorities_advisor;
	public BoolOption $stopword_detector;
	public BoolOption $ai_suggestions;
	public LanguageSelectOption $content_language;

	protected const OPTION_NAME = 'asp_ai_settings';

	protected const OPTIONS = array(
		'diagnostic'         => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'synonym_discover'   => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'quality_report'     => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'config_wizard'      => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'priorities_advisor' => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'stopword_detector'  => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		'ai_suggestions'     => array(
			'type'         => 'bool',
			'default_args' => array( 'value' => false ),
		),
		// Language (ISO code) the AI writes synonyms in. '' = site default (let the
		// AI infer from context). Uses the shared LanguageSelectOption — a broad
		// language set, independent of the Index Table stemmer languages.
		'content_language'   => array(
			'type'         => 'language_select',
			'default_args' => array( 'value' => '' ),
		),
	);
}
