Files
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00

71 lines
2.4 KiB
PHP

<?php
/*+***********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*************************************************************************************/
class Settings_SMSNotifier_ProviderField_Model extends Settings_SMSNotifier_Field_Model {
/**
* Function to get all provider field models
* @return <Array> field models list
*/
public static function getAll() {
$providers = SMSNotifier_Provider_Model::getAll();
$providersFieldModelsList = array();
foreach($providers as $provider){
$fieldsInfo = self::getInstanceByProvider($provider);
$fieldModelsList = array();
foreach ($fieldsInfo as $fieldRow) {
$fieldModelsList[$fieldRow['name']] = self::getInstanceByRow($fieldRow);
}
$providersFieldModelsList[$provider->getName()] = $fieldModelsList;
}
return $providersFieldModelsList;
}
/**
* Function to get all provider field models
* @param <Object> provider instance
* @return <Array> field Info
*/
public static function getInstanceByProvider($provider) {
$fieldsInfo = $provider->getRequiredParams();
if(!is_array($fieldsInfo[0])){
$newFieldInfo = array();
foreach($fieldsInfo as $key) {
array_push($newFieldInfo,array('name' => $key, 'label' => ucfirst($key), 'type' => 'text'));
}
return $newFieldInfo;
} else {
return $fieldsInfo;
}
}
/**
* Function returns all the field instance for a provider
* @param <Object> $provider
* @return <Array of Objects>
*/
public static function getFieldInstanceByProvider($provider) {
$fieldsInfo = self::getInstanceByProvider($provider);
$fieldModelsList = array();
foreach ($fieldsInfo as $fieldRow) {
$fieldModelsList[$fieldRow['name']] = self::getInstanceByRow($fieldRow);
}
return $fieldModelsList;
}
public static function getEditFieldTemplateName($providerName) {
$providerInstance = SMSNotifier_Provider_Model::getInstance($providerName);
if(method_exists($providerInstance,'getProviderEditFieldTemplateName')) {
return $providerInstance->getProviderEditFieldTemplateName();
} else{
return 'ProviderEditFields.tpl';
}
}
}