<?php

namespace ZenoChatbot\Services\LLMService\AIClient\Providers;

if (!defined('ABSPATH')) {
    exit;
}

class OpenAI implements ProviderInterface
{
    /** API base URLs and endpoint paths */
    public const API_BASE = 'https://api.openai.com';
    public const API_V1 = 'https://api.openai.com/v1';
    public const RESPONSES_PATH = '/responses';

    public const MODEL_GPT_4O = 'gpt-4o';
    public const MODEL_GPT_4O_MINI = 'gpt-4o-mini';
    public const MODEL_CHATGPT_4O_LATEST = 'chatgpt-4o-latest';
    public const MODEL_GPT_4_1 = 'gpt-4.1';
    public const MODEL_GPT_4_1_MINI = 'gpt-4.1-mini';
    public const MODEL_GPT_4_1_NANO = 'gpt-4.1-nano';
    public const MODEL_GPT_3_5_TURBO = 'gpt-3.5-turbo';
    public const MODEL_GPT_3_5_TURBO_16K = 'gpt-3.5-turbo-16k';
    public const MODEL_GPT_4 = 'gpt-4';
    public const MODEL_GPT_4_TURBO = 'gpt-4-turbo';

    public const MODEL_GPT_5_5 = 'gpt-5.5';
    public const MODEL_GPT_5_4 = 'gpt-5.4';
    public const MODEL_GPT_5_4_MINI = 'gpt-5.4-mini';
    public const MODEL_GPT_5_4_NANO = 'gpt-5.4-nano';
    public const MODEL_GPT_5 = 'gpt-5';
    public const MODEL_GPT_5_MINI = 'gpt-5-mini';
    public const MODEL_GPT_5_NANO = 'gpt-5-nano';


    public function text(): \ZenoChatbot\Services\LLMService\AIClient\Providers\Adapters\AdapterInterface
    {
        return new \ZenoChatbot\Services\LLMService\AIClient\Providers\Adapters\OpenAITextModel();
    }

}

