# -*- coding: utf-8 -*-
from odoo import api, fields, models

SYSTEM_PROMPT_KEY = 'jb_ai_assistant.system_prompt'


class ResConfigSettings(models.TransientModel):
    _inherit = 'res.config.settings'

    ai_openai_api_key = fields.Char(
        string='OpenAI API Key',
        config_parameter='jb_ai_assistant.openai_api_key',
        help='Global API key used for all users. Only administrators can view this.',
    )
    ai_openai_base_url = fields.Char(
        string='OpenAI Base URL',
        config_parameter='jb_ai_assistant.openai_base_url',
        default='https://api.openai.com/v1',
        help='Override for Azure OpenAI or compatible proxies.',
    )
    ai_temperature = fields.Float(
        string='Temperature',
        config_parameter='jb_ai_assistant.temperature',
        default=0.7,
    )
    ai_max_tokens = fields.Integer(
        string='Max Tokens',
        config_parameter='jb_ai_assistant.max_tokens',
        default=2048,
    )
    # Text fields cannot use config_parameter in Odoo — load/save manually.
    ai_system_prompt = fields.Text(
        string='System Prompt',
        help='Base instructions sent with every chat message. Card rails are appended after this.',
    )

    @api.model
    def get_values(self):
        res = super().get_values()
        res['ai_system_prompt'] = self.env['ir.config_parameter'].sudo().get_param(
            SYSTEM_PROMPT_KEY, ''
        )
        return res

    def set_values(self):
        super().set_values()
        self.env['ir.config_parameter'].sudo().set_param(
            SYSTEM_PROMPT_KEY,
            self.ai_system_prompt or '',
        )
