using Nop.Web.Framework.Mvc.ModelBinding;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Models
{
    public record ConfigureModel
    {
        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.CerebrasApiKey")]
        public string ApiKey { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.CerebrasModelName")]
        public string ModelName { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.OpenAIApiKey")]
        public string OpenAIApiKey { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.OpenAIModelName")]
        public string OpenAIModelName { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.IsEnabled")]
        public bool IsEnabled { get; set; }

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.CerebrasApiBaseUrl")]
        public string ApiBaseUrl { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.OpenAIApiBaseUrl")]
        public string OpenAIApiBaseUrl { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.MaxTokens")]
        public int MaxTokens { get; set; }

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.Temperature")]
        public decimal Temperature { get; set; }

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.RequestTimeoutSeconds")]
        public int RequestTimeoutSeconds { get; set; }

        // ── Z.ai GLM-OCR ──────────────────────────────────────────────────────────────

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.ZaiApiKey")]
        public string ZaiApiKey { get; set; } = string.Empty;

        [NopResourceDisplayName("Plugins.FruitBankPlugin.Fields.ZaiModel")]
        public string ZaiModel { get; set; } = "glm-ocr";
    }
}

