<?php
/**
 * Language-keyed UI/prompt strings for AI prompts and user-facing messages.
 *
 * Every string that appears in an AI prompt, suggestion button, or user-facing
 * error message MUST come from this map. To add a new language, add a key
 * to the array in get() — no caller changes required.
 *
 * @since 1.8.0
 */
class BoostBot_Prompt_Strings {

	/**
	 * Get prompt/UI strings for the given language.
	 * Falls back to English for unknown languages.
	 *
	 * @param string $language Two-letter language code.
	 * @return array Associative array of string keys => values.
	 */
	public static function get( string $language = 'he' ): array {
		$map = array(
			'he' => array(
				// Brand card labels (AI prompt)
				'brand_company'       => 'חברה',
				'brand_tagline'       => 'משפט קצר',
				'brand_about'         => 'אודות',
				'brand_phone'         => 'טלפון',
				'brand_whatsapp'      => 'וואטסאפ',
				'brand_cta'           => 'קריאה לפעולה',
				'brand_cta_see_link'  => '(ראו קישור)',
				'brand_services'      => 'שירותים',
				'brand_default_table' => 'רשימה',

				// Service catalog section headers (AI prompt)
				'catalog_business_desc'     => '=== תיאור העסק ===',
				'catalog_services'          => '=== שירותים זמינים ===',
				'catalog_products'          => '=== מוצרים זמינים ===',
				'catalog_key_pages'         => '=== עמודים חשובים ===',
				'catalog_services_compact'  => '=== שירותים (שמות + קישורים) ===',
				'catalog_products_compact'  => '=== מוצרים (שמות + קישורים) ===',

				// Key page type labels (AI prompt)
				'page_about'    => 'אודות',
				'page_contact'  => 'יצירת קשר',
				'page_services' => 'שירותים',
				'page_pricing'  => 'מחירון',
				'page_faq'      => 'שאלות נפוצות',
				'page_terms'    => 'תנאי שימוש',
				'page_privacy'  => 'מדיניות פרטיות',

				// RAG context
				'rag_evidence_header' => "ראיות רלוונטיות מהאתר (ציטוטים קצרים):\n\n",
				'rag_link_label'      => 'קישור',

				// User-facing error messages
				'error_generic'     => 'מצטער, אירעה שגיאה. אנא נסה שוב מאוחר יותר.',
				'error_no_api_key'  => 'מפתח ה-API לא מוגדר. אנא הגדר מפתח Claude בהגדרות התוסף.',
				'error_rate_limit'  => 'יותר מדי בקשות. אנא המתן מספר שניות ונסה שוב.',
				'error_invalid_key' => 'מפתח ה-API אינו תקין. אנא בדוק את ההגדרות.',

				// Rate limit messages (retrieval endpoint)
				'rate_hourly'   => 'הגעת למגבלת ההודעות לשעה זו. נסה שוב בעוד %d דקות.',
				'rate_daily'    => 'הגעת למגבלת ההודעות היומית. נסה שוב מחר.',
				'rate_cooldown' => 'אנא המתן %d שניות לפני שליחת הודעה נוספת.',

				// Suggestion buttons
				'suggest_price_quote' => 'אשמח לקבל הצעת מחיר',
				'suggest_question'    => 'יש לי שאלה נוספת',
				'suggest_leave_details' => 'אשמח להשאיר פרטים',
				'suggest_tell_more'   => 'ספר לי עוד',

				// Widget name mappings (AI prompt)
				'widget_form'          => 'טופס יצירת קשר',
				'widget_form_alt'      => 'טופס יצירת קשר',
				'widget_calendar_meet' => 'תאריכון לקביעת פגישה',
				'widget_calendar_call' => 'תאריכון לתיאום שיחה',
				'widget_youtube'       => 'סרטון YouTube',
				'widget_gallery'       => 'גלריית תמונות',
				'widget_whatsapp'      => 'וואטסאפ',
				'widget_contact_card'  => 'כרטיס קשר',
				'widget_survey'        => 'סקר שביעות רצון',

				// AI prompt widget mention examples
				'prompt_form_example'      => 'אתם יכולים להשאיר פרטים בטופס שמופיע למטה',
				'prompt_calendar_example'  => 'אתם יכולים לתאם פגישה דרך התאריכון שמופיע למטה',
				'prompt_youtube_example'   => 'הנה סרטון שיכול לעזור לכם',
				'prompt_youtube_alt'       => 'מצורף סרטון רלוונטי',
				'prompt_gallery_example'   => 'הנה כמה דוגמאות מהגלריה שלנו',
				'prompt_whatsapp_example'  => 'אתם יכולים לפנות אלינו גם דרך הוואטסאפ',
				'prompt_exhausted_example' => 'אלו כל החבילות שיש לי מידע עליהן',

				// Greeting patterns (language-specific)
				'greeting_pattern' => '/^(שלום|היי|הי|בוקר טוב|ערב טוב|צהריים טובים)\s*[?!.,]*$/u',

				// Lead/calendar intent keywords (language-specific)
				'lead_keywords' => array( 'להשאיר פרטים', 'השאיר פרטים', 'ליצור קשר', 'צור קשר', 'יצירת קשר', 'שיתקשרו אלי', 'שיחזרו', 'להתקשר', 'טלפון', 'מספר טלפון', 'לדבר עם נציג', 'שיחזרו אלי', 'פרטים ליצירת קשר' ),
				'calendar_keywords' => array( 'לקבוע פגישה', 'קביעת פגישה', 'לתאם פגישה', 'תיאום פגישה', 'לתאם שיחה', 'לקבוע שיחה', 'זמן פנוי', 'תאריך פנוי' ),
				'form_response_indicators' => array( 'טופס', 'פרטים', 'נחזור', 'ניצור קשר', 'השאר' ),

				// Suggestion trigger keywords
				'trigger_price'    => array( 'מחיר', 'עלות' ),
				'trigger_question' => array( 'שאלות' ),
				'trigger_details'  => array( 'פרטים', 'צור קשר' ),
				'trigger_service'  => array( 'שירות', 'מוצר' ),

				// Vague follow-up indicators
				'vague_indicators' => array( 'מידע נוסף', 'עוד מידע', 'לדעת יותר', 'להרחיב', 'פרטים נוספים', 'more info', 'tell me more', 'details' ),

				// Default lead form config
				'default_form_title'          => 'השאירו פרטים',
				'default_form_success'        => 'נחזור אליך בהקדם',
				'default_form_name_label'     => 'שם',
				'default_form_email_label'    => 'אימייל',
				'default_form_phone_label'    => 'טלפון',
				'default_form_message_label'  => 'הודעה',
				'default_form_submit'         => 'שלחו',

				// Lead extraction note
				'lead_extraction_note' => 'פרטים חולצו אוטומטית מטקסט חופשי (רמת ביטחון: %d%%): "%s"',

				// Extended lead form keywords
				'extended_lead_keywords' => array( 'שיתקשרו אלי', 'שיחזרו', 'שיחזרו אלי', 'שיחזרו אליי', 'פרטים ליצירת קשר', 'להשאיר פרטים', 'פרטי יצירת קשר', 'הפרטים שלי', 'פרטיי', 'לקבל שיחה', 'שיחת ייעוץ', 'ייעוץ חינם', 'ייעוץ', 'נציג שירות', 'נציג מכירות', 'לדבר עם מישהו', 'אשאיר פרטים', 'רוצה להשאיר', 'רוצה למלא' ),

				// Contact/widget inclusion keywords
				'contact_inclusion_keywords' => array( 'טלפון', 'וואטסאפ', 'מייל', 'ליצור קשר', 'איש קשר', 'כרטיס', 'נציג', 'לדבר עם', 'להתקשר', 'שיחה' ),
				'widget_inclusion_keywords'  => array( 'מוצר', 'מוצרים', 'לקנות', 'מחיר', 'כרטיס', 'טופס', 'פגישה', 'לקבוע', 'וידאו', 'סרטון', 'גלריה', 'תמונות', 'להציג', 'תראה לי', 'הראה' ),

				// Price-related stop words
				'price_stop_words' => array( '₪', 'מחיר', 'מחירים', 'עלות', 'תמחור', 'חבילה', 'חבילות' ),

				// Product recommendation labels (AI prompt)
				'recommended_products_header' => 'מוצרים מומלצים',
				'on_sale_badge'               => '(במבצע!)',
			),

			'en' => array(
				'brand_company'       => 'Company',
				'brand_tagline'       => 'Tagline',
				'brand_about'         => 'About',
				'brand_phone'         => 'Phone',
				'brand_whatsapp'      => 'WhatsApp',
				'brand_cta'           => 'Call to action',
				'brand_cta_see_link'  => '(see link)',
				'brand_services'      => 'Services',
				'brand_default_table' => 'List',

				'catalog_business_desc'     => '=== Business Description ===',
				'catalog_services'          => '=== Available Services ===',
				'catalog_products'          => '=== Available Products ===',
				'catalog_key_pages'         => '=== Important Pages ===',
				'catalog_services_compact'  => '=== Services (names + links) ===',
				'catalog_products_compact'  => '=== Products (names + links) ===',

				'page_about'    => 'About',
				'page_contact'  => 'Contact',
				'page_services' => 'Services',
				'page_pricing'  => 'Pricing',
				'page_faq'      => 'FAQ',
				'page_terms'    => 'Terms of Service',
				'page_privacy'  => 'Privacy Policy',

				'rag_evidence_header' => "Relevant evidence from the website (short quotes):\n\n",
				'rag_link_label'      => 'Link',

				'error_generic'     => 'Sorry, an error occurred. Please try again later.',
				'error_no_api_key'  => 'API key is not configured. Please set up your API key in the plugin settings.',
				'error_rate_limit'  => 'Too many requests. Please wait a few seconds and try again.',
				'error_invalid_key' => 'The API key is invalid. Please check your settings.',

				'rate_hourly'   => 'You\'ve reached the hourly message limit. Try again in %d minutes.',
				'rate_daily'    => 'You\'ve reached the daily message limit. Try again tomorrow.',
				'rate_cooldown' => 'Please wait %d seconds before sending another message.',

				'suggest_price_quote'   => 'I\'d like to get a price quote',
				'suggest_question'      => 'I have another question',
				'suggest_leave_details' => 'I\'d like to leave my details',
				'suggest_tell_more'     => 'Tell me more',

				'widget_form'          => 'Contact form',
				'widget_form_alt'      => 'Contact form',
				'widget_calendar_meet' => 'Calendar for booking a meeting',
				'widget_calendar_call' => 'Calendar for scheduling a call',
				'widget_youtube'       => 'YouTube video',
				'widget_gallery'       => 'Image gallery',
				'widget_whatsapp'      => 'WhatsApp',
				'widget_contact_card'  => 'Contact card',
				'widget_survey'        => 'Satisfaction survey',

				'prompt_form_example'      => 'You can leave your details in the form below',
				'prompt_calendar_example'  => 'You can schedule a meeting through the calendar below',
				'prompt_youtube_example'   => 'Here\'s a video that can help you',
				'prompt_youtube_alt'       => 'Here\'s a relevant video',
				'prompt_gallery_example'   => 'Here are some examples from our gallery',
				'prompt_whatsapp_example'  => 'You can also contact us via WhatsApp',
				'prompt_exhausted_example' => 'These are all the packages I have information about',

				'greeting_pattern' => '/^(hello|hi|hey|good morning|good evening|good afternoon)\s*[?!.,]*$/iu',

				'lead_keywords' => array( 'leave details', 'leave my details', 'contact me', 'get in touch', 'call me', 'call back', 'phone number', 'speak to someone', 'talk to someone', 'representative', 'contact info' ),
				'calendar_keywords' => array( 'book a meeting', 'schedule a meeting', 'book an appointment', 'schedule an appointment', 'book a call', 'schedule a call', 'available time', 'available date' ),
				'form_response_indicators' => array( 'form', 'details', 'get back', 'contact you', 'leave' ),

				'trigger_price'    => array( 'price', 'cost' ),
				'trigger_question' => array( 'question' ),
				'trigger_details'  => array( 'details', 'contact' ),
				'trigger_service'  => array( 'service', 'product' ),

				'vague_indicators' => array( 'more info', 'more information', 'know more', 'expand on', 'additional details', 'tell me more', 'details' ),

				'default_form_title'          => 'Leave your details',
				'default_form_success'        => 'We\'ll get back to you soon',
				'default_form_name_label'     => 'Name',
				'default_form_email_label'    => 'Email',
				'default_form_phone_label'    => 'Phone',
				'default_form_message_label'  => 'Message',
				'default_form_submit'         => 'Send',

				'lead_extraction_note' => 'Details extracted automatically from free text (confidence level: %d%%): "%s"',

				'extended_lead_keywords' => array( 'call me', 'call me back', 'call back', 'get back to me', 'contact details', 'leave details', 'my details', 'receive a call', 'consultation', 'free consultation', 'speak to someone', 'talk to someone', 'representative', 'I\'ll leave details', 'want to leave', 'want to fill' ),

				'contact_inclusion_keywords' => array( 'phone', 'whatsapp', 'email', 'contact', 'representative', 'card', 'speak to', 'call', 'talk to' ),
				'widget_inclusion_keywords'  => array( 'product', 'products', 'buy', 'price', 'card', 'form', 'meeting', 'schedule', 'video', 'gallery', 'photos', 'show', 'show me' ),

				'price_stop_words' => array( '$', '€', '£', 'price', 'prices', 'cost', 'pricing', 'package', 'packages' ),

				// Product recommendation labels (AI prompt)
				'recommended_products_header' => 'Recommended Products',
				'on_sale_badge'               => '(On Sale!)',
			),
		);

		$lang = strtolower( substr( $language, 0, 2 ) );
		return $map[ $lang ] ?? $map['en'];
	}
}
