Files
Odoo-Modules/fusion_clock_ai/models/res_config_settings.py
gsinghpal e56974d46f update
2026-03-16 08:14:56 -04:00

99 lines
3.5 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2026 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
from odoo import models, fields
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
fclk_ai_openai_api_key = fields.Char(
string='OpenAI API Key',
config_parameter='fusion_clock_ai.openai_api_key',
)
fclk_ai_openai_model = fields.Selection([
('gpt-4o', 'GPT-4o (Best quality, higher cost)'),
('gpt-4o-mini', 'GPT-4o Mini (Good quality, low cost)'),
('gpt-3.5-turbo', 'GPT-3.5 Turbo (Basic, lowest cost)'),
], string='AI Model',
config_parameter='fusion_clock_ai.openai_model',
default='gpt-4o-mini',
)
fclk_ai_max_response_tokens = fields.Integer(
string='Max Response Tokens',
config_parameter='fusion_clock_ai.max_response_tokens',
default=1024,
)
fclk_ai_monthly_budget_usd = fields.Float(
string='Monthly Budget (USD)',
config_parameter='fusion_clock_ai.monthly_budget_usd',
default=50.0,
help="Set to 0 for unlimited. AI requests stop when budget is reached.",
)
fclk_ai_cache_ttl_minutes = fields.Integer(
string='Cache TTL (minutes)',
config_parameter='fusion_clock_ai.cache_ttl_minutes',
default=15,
)
fclk_ai_enable_manager_chat = fields.Boolean(
string='Enable Manager AI Chat',
config_parameter='fusion_clock_ai.enable_manager_chat',
default=True,
)
fclk_ai_enable_employee_chat = fields.Boolean(
string='Enable Employee AI Assistant',
config_parameter='fusion_clock_ai.enable_employee_chat',
default=True,
)
fclk_ai_enable_narrative_reports = fields.Boolean(
string='Enable AI Narrative Reports',
config_parameter='fusion_clock_ai.enable_narrative_reports',
default=True,
)
fclk_ai_enable_anomaly_detection = fields.Boolean(
string='Enable Payroll Anomaly Detection',
config_parameter='fusion_clock_ai.enable_anomaly_detection',
default=True,
)
fclk_ai_enable_coach = fields.Boolean(
string='Enable Attendance Coach',
config_parameter='fusion_clock_ai.enable_coach',
default=True,
)
fclk_ai_enable_correction_advisor = fields.Boolean(
string='Enable Correction Review Advisor',
config_parameter='fusion_clock_ai.enable_correction_advisor',
default=True,
)
fclk_ai_enable_predictions = fields.Boolean(
string='Enable Predictive Alerts',
config_parameter='fusion_clock_ai.enable_predictions',
default=False,
)
fclk_ai_enable_shift_suggestions = fields.Boolean(
string='Enable Shift Optimization',
config_parameter='fusion_clock_ai.enable_shift_suggestions',
default=False,
)
fclk_ai_enable_compliance = fields.Boolean(
string='Enable Compliance Checks',
config_parameter='fusion_clock_ai.enable_compliance',
default=False,
)
fclk_ai_enable_smart_config = fields.Boolean(
string='Enable Natural Language Config',
config_parameter='fusion_clock_ai.enable_smart_config',
default=False,
)
fclk_ai_enable_geofence_tuning = fields.Boolean(
string='Enable Geofence Tuning',
config_parameter='fusion_clock_ai.enable_geofence_tuning',
default=False,
)
fclk_ai_enable_incident_explain = fields.Boolean(
string='Enable Incident Auto-Explain',
config_parameter='fusion_clock_ai.enable_incident_explain',
default=True,
)