$(document).on(“click”,'[name=”required_by_date”]’,function(){ var elm = $(this).closest(‘.bsit_form’).attr(‘id’); var $input = $(‘#’+elm+’ [name=”required_by_date”]’).pickadate(); var picker = $input.pickadate(‘picker’); picker.on({ set: function(dateText) { if(typeof dateText.highlight === “undefined”) { var item = $(‘#’+elm+’ [name=”item”]’).val(); if(item==”){ var date = new Date(dateText.select); var month = date.toLocaleString(‘default’, { month: ‘long’ }); var year = date.getFullYear(); $(‘#’+elm+’ [name=”item”]’).val(month+’ ‘+year); } } } }); })
Set default Date In jquery
$(document).on(“click”,’.bsit_ahm_btn’,function(){ var elm = $(this).closest(‘.bsit-page-frame’).attr(‘id’); var date= new Date(); var twoDigitMonth = ((date.getMonth().length + 1) === 1)? (date.getMonth() + 1) : ‘0’ + (date.getMonth() +1); var twoDigitDay = ((date.getDate().length + 1) === 1)? (date.getDate() + 1) : ‘0’ + (date.getDate() ); var currentDate = date.getFullYear() + “/” + twoDigitMonth +”/” + twoDigitDay; $(‘#’+elm +’ [name=”order_date”]’).val(currentDate ); });
CHAT GPT APIS
<?php
defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);
class customview extends brain_controller {
function __construct(){
parent::__construct(0);
$this->load->model(‘core/Bsit_io’, ‘API’);
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
}
function index($data_pass){
$data_pass[‘test’] = ‘test’;
return $this->load->view(‘custom/customview’,$data_pass,true);
}
function mapped_table_footer()
{
$this->load->view(‘custom/mapped_table_footer’);
}
function ai_integration()
{
$this->load->view(‘custom/ai_integration’);
}
function getmodels($userInputs) {
$model = ”;
$api_key = ”;
$getParams = $this->getIntegrationParams();
if(!empty($getParams)){
$model = $getParams[0]->param_value;
$api_key = $getParams[1]->param_value;
}
$url = “https://api.openai.com/v1/models”;
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST,”GET”);
curl_setopt($crl, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json”,
“Authorization: Bearer $api_key”
));
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($crl);
curl_close($crl);
try {
$data = json_decode($response, true);
}
catch(Exception $e) {
$data = $e->getMessage();
}
echo “<pre>”;
print_r($data);
//echo $data;
}
function ai_integration_submit_bk()
{
$userInputs = $this->input->post();
// Call ChatGPT API
$chatGptResponse = $this->callChatGptApi($userInputs);
// Process ChatGPT response to get the table structure
$chatGptResponseData = $chatGptResponse;
// Return the table structure as a JSON object
$choices = $chatGptResponseData[“choices”];
if (count($choices) > 0) {
$chatGptResponseDataTables = $choices[0][“text”];
} else {
$chatGptResponseDataTables = array(“error” => true, “data” => “No table structure found in ChatGPT response.”);
$chatGptResponseDataTables = json_encode($chatGptResponseDataTables);
}
$result = json_decode($chatGptResponseDataTables);
if (json_last_error() === JSON_ERROR_NONE) {
$chatGptResponseDataTables = $chatGptResponseDataTables;
}else{
$chatGptResponseDataTables = array(“error” => true,”data” => $chatGptResponseDataTables);
$chatGptResponseDataTables = json_encode($chatGptResponseDataTables);
}
echo $chatGptResponseDataTables;
}
function callChatGptApi($userInputs) {
$url = “https://api.openai.com/v1/completions”;
$prompt_prefix = ‘Design a database structure based on the following user requirements: ‘;
$prompt = $userInputs[‘prompt’];
$prompt_suffix = ‘. Please provide the structure in JSON format including table names, columns, data types, and primary and foreign keys. For example:{“tables”:[{“name”:”table_name”,”columns”:[{“name”: “column_name”, “type”: “data_type”, “primary_key”: true},{“name”: “column_name2”, “type”: “data_type”, “foreign_key”:{“table”: “referenced_table”, “column”: “referenced_column”}}]}]}’;
$prompt_final = $prompt_prefix.$prompt.$prompt_suffix;
$model = ”;
$api_key = ”;
$getParams = $this->getIntegrationParams();
if(!empty($getParams)){
$model = $getParams[0]->param_value;
$api_key = $getParams[1]->param_value;
}
$data = json_encode(array(
“model”=> $model,
“prompt” => $prompt_final,
“max_tokens” => 3800,
“n” => 1,
“stop” => null,
“temperature” => 0.5
));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json”,
“Authorization: Bearer $api_key”
));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
print_r($response);
try {
$response = $response;
}
catch(Exception $e) {
$response = $e->getMessage();
}
print_r($response);
return json_decode($response, true);
}
public function getIntegrationParams()
{
$CURLDATA_SYS_API = array(‘collections’ => json_encode(
array(‘colls’ => array(array(
‘coll_name’ => ‘sys_params’,
‘filter’ => “param_name ='”.APP_CHATGPT_MODEL.”‘ or param_name ='”.APP_CHATGPT_KEY.”‘”
)))
));
$BASEURLMETHOD = API_BASEURL . API_COLLECTION_GET;
try {
$get_model_sys_api = $this->API->CallAPI(“GET”, $BASEURLMETHOD, $CURLDATA_SYS_API);
$get_model_sys_api = json_decode($get_model_sys_api);
$model = ”;
if (isset($get_model_sys_api->Data)) {
$model = $get_model_sys_api->Data[0]->Results;
}
return $model;
}
catch(Exception $e) {
return $e->getMessage();
}
}
public function generateTables()
{
$_POST[‘parameters’] = array(
‘key’ => ‘CreateTableFromJson’,
‘filters’ =>
array(
array(
‘key’ => ‘jsonData’,
‘value’ => json_encode($_POST[‘json’]),
),
),
);
$data_parameters = json_encode($_POST[‘parameters’]);
$this->BASEURLMETHOD = API_BASEURL.API_METHOD_GET;
$get_generateTables = $this->API->CallAPI(“GET”, $this->BASEURLMETHOD,$data_parameters,false);
try {
$response = $get_generateTables;
}
catch(Exception $e) {
$response = $e->getMessage();
}
echo json_encode($response ,true);
}
public function deleteGenerateTables()
{
$_POST[‘parameters’] = array(
‘key’ => ‘deletescriptforpage’,
‘filters’ =>
array(
array(
‘key’ => ‘pageTitle’,
‘value’ => $_POST[‘pageTitle’],
),
),
);
$data_parameters = json_encode($_POST[‘parameters’]);
$this->BASEURLMETHOD = API_BASEURL.API_METHOD_GET;
$delete_generateTables = $this->API->CallAPI(“GET”, $this->BASEURLMETHOD,$data_parameters,false);
try {
$response = $delete_generateTables;
}
catch(Exception $e) {
$response = $e->getMessage();
}
echo json_encode($response ,true);
}
function ai_integration_submit()
{
$userInputs = $this->input->post();
// Call ChatGPT API
//$chatGptResponse = $this->callChatGptApi($userInputs);
$chatGptResponse = $this->callChatGptApiChatBase($userInputs);
// Process ChatGPT response to get the table structure
$chatGptResponseData = $chatGptResponse;
// Return the table structure as a JSON object
$choices = $chatGptResponseData[“choices”];
//print_r($choices);
if (count($choices) > 0) {
$chatGptResponseDataTables = $choices[0][“message”][“content”];
//$chatGptResponseDataTables = array(“error” => false, “data” => $choices[0][“message”][“content”]);
//$chatGptResponseDataTables = json_encode($chatGptResponseDataTables);
} else {
$chatGptResponseDataTables = array(“error” => true, “data” => “No table structure found in ChatGPT response.”);
$chatGptResponseDataTables = json_encode($chatGptResponseDataTables);
}
$result = json_decode($chatGptResponseDataTables);
if (json_last_error() === JSON_ERROR_NONE) {
$chatGptResponseDataTables = $chatGptResponseDataTables;
}else{
$chatGptResponseDataTables = array(“error” => true,”data” => $chatGptResponseDataTables);
$chatGptResponseDataTables = json_encode($chatGptResponseDataTables);
}
echo $chatGptResponseDataTables;
}
function callChatGptApiChatBase($userInputs) {
$url = “https://api.openai.com/v1/chat/completions”;
$prompt_prefix = ‘Design a database structure based on the following user requirements: ‘;
$prompt = $userInputs[‘prompt’];
$prompt_suffix = ‘. Please provide the structure in JSON format including table names, columns, data types, and primary and foreign keys. For example:{“tables”:[{“name”:”table_name”,”columns”:[{“name”: “column_name”, “type”: “data_type”, “primary_key”: true},{“name”: “column_name2”, “type”: “data_type”, “foreign_key”:{“table”: “referenced_table”, “column”: “referenced_column”}}]}]}’;
$prompt_final = $prompt_prefix.$prompt.$prompt_suffix;
$model = ”;
$api_key = ”;
$getParams = $this->getIntegrationParams();
if(!empty($getParams)){
$model = $getParams[0]->param_value;
$api_key = $getParams[1]->param_value;
}
$data = json_encode(array(
“model”=> $model,
“messages” => [array(
“role” =>”user”,
“content” => $prompt_final
)],
//”prompt” => $prompt_final,
“max_tokens” => 3800,
“n” => 1,
“stop” => null,
“temperature” => 0.5
));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json”,
“Authorization: Bearer $api_key”
));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
//print_r($response);
try {
$response = $response;
}
catch(Exception $e) {
$response = $e->getMessage();
}
//print_r($response);
return json_decode($response, true);
}
}
On change autocomplete Event
$(document).on(“autocompletechange”,’.autoCompCollAdv’,function(){
var item_id= $(this).attr(“data-selectedid”);
});
How to find foreign key in sql server using table name
SELECT
KCU1.CONSTRAINT_NAME AS ‘FK_CONSTRAINT_NAME’
, KCU1.TABLE_NAME AS ‘FK_TABLE_NAME’
, KCU1.COLUMN_NAME AS ‘FK_COLUMN_NAME’
, KCU1.ORDINAL_POSITION AS ‘FK_ORDINAL_POSITION’
, KCU2.CONSTRAINT_NAME AS ‘UQ_CONSTRAINT_NAME’
, KCU2.TABLE_NAME AS ‘UQ_TABLE_NAME’
, KCU2.COLUMN_NAME AS ‘UQ_COLUMN_NAME’
, KCU2.ORDINAL_POSITION AS ‘UQ_ORDINAL_POSITION’
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1
ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG
AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA
AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2
ON KCU2.CONSTRAINT_CATALOG =
RC.UNIQUE_CONSTRAINT_CATALOG
AND KCU2.CONSTRAINT_SCHEMA =
RC.UNIQUE_CONSTRAINT_SCHEMA
AND KCU2.CONSTRAINT_NAME =
RC.UNIQUE_CONSTRAINT_NAME
AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION
WHERE KCU1.TABLE_NAME = ‘product_categories’
How to use transaction commit and rollback in sql server
BEGIN
BEGIN TRY
BEGIN TRANSACTION;
INSERT INTO ValueTable VALUES(‘ddd’);
IF @@TRANCOUNT > 0
COMMIT;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK;
SELECT ERROR_NUMBER() AS ErrorNumber;
SELECT ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
END;
Create Pages from tables and from Json + SQL SERVER
— EXEC [CreateTableFromJson] ‘[{“name”:”Cricket_Team”,”columns”:[{“name”:”Team_ID”,”foreign”:””,”primary”:”1″,”type”:”int”},{“name”:”Team_Name”,”foreign”:””,”primary”:”0″,”type”:”varchar”},{“name”:”Team_City”,”foreign”:””,”primary”:”0″,”type”:”varchar”}]},{“name”:”Player”,”columns”:[{“name”:”Player_ID”,”foreign”:””,”primary”:”1″,”type”:”int”},{“name”:”Player_Name”,”foreign”:””,”primary”:”0″,”type”:”varchar”},{“name”:”Team_ID”,”foreign”:”{\”table\”:\”Cricket_Team\”,\”column\”:\”Team_ID\”}”,”primary”:”0″,”type”:”int”}]}]’
— EXEC [CreateTableFromJson] ‘nojson’
ALTER PROCEDURE CreateTableFromJson
@jsonData NVARCHAR(MAX)
AS
BEGIN
— VALIDATE THE TABLE EXISTS
IF ISJSON(@jsonData) IS NULL RETURN;
DECLARE @totalTables INT, @CounterTables INT, @tableData NVARCHAR(MAX),
@tableName NVARCHAR(50), @tableColumns NVARCHAR(MAX), @CounterColumns INT, @totalColumns INT,
@tableDataColumns NVARCHAR(MAX), @createTable NVARCHAR(MAX), @columnName NVARCHAR(50),
@columnType NVARCHAR(50), @isPrimary NVARCHAR(50), @columnForeignKey NVARCHAR(50), @createTableInner NVARCHAR(MAX),
@page_url NVARCHAR(200),@menu NVARCHAR(200)
SET @createTable='';
SET @CounterTables=0
SELECT @totalTables = COUNT(1) FROM OPENJSON(@jsonData) WITH( name nvarchar(500));
WHILE ( @CounterTables < @totalTables)
BEGIN
SELECT @tableData = [value] FROM OPENJSON(@jsonData) WHERE [key] = @CounterTables
SET @CounterTables = @CounterTables + 1
SELECT @tableName=[value] FROM OPENJSON(@tableData) WHERE [key] = 'name'
SELECT @tableColumns=[value] FROM OPENJSON(@tableData) WHERE [key] = 'columns'
SELECT @totalColumns = COUNT(1) FROM OPENJSON(@tableColumns);
SET @CounterColumns=0
SET @createTableInner = ''
SET @createTableInner += 'DROP TABLE IF EXISTS '+@tableName+ '; '
SET @createTableInner += 'Create Table '+@tableName+ '( '
WHILE ( @CounterColumns < @totalColumns)
BEGIN
SELECT @tableDataColumns = [value] FROM OPENJSON(@tableColumns) WHERE [key] = @CounterColumns
SET @CounterColumns = @CounterColumns + 1
SELECT @columnName = [value] FROM OPENJSON(@tableDataColumns) WHERE [key]='name'
SELECT @columnType = [value] FROM OPENJSON(@tableDataColumns) WHERE [key]='type'
SELECT @isPrimary = [value] FROM OPENJSON(@tableDataColumns) WHERE [key]='primary'
SELECT @columnForeignKey = [value] FROM OPENJSON(@tableDataColumns) WHERE [key]='foreign'
IF(@isPrimary='1')
BEGIN
IF(@CounterColumns='1')
BEGIN
SET @columnName = '_id'
END
SET @createTableInner += @columnName+' '+@columnType+' IDENTITY(1,1) PRIMARY KEY('+@columnName+'),'
END
ELSE
BEGIN
IF(@columnType='varchar' OR @columnType='varchar(255)')
BEGIN
SET @createTableInner += @columnName+' NVARCHAR(240),'
END
ELSE
BEGIN
SET @createTableInner += @columnName+' '+@columnType+','
END
END
END
SET @createTableInner += ' create_by INT NOT NULL, update_by INT, create_date datetime NOT NULL, update_date datetime';
SET @createTableInner += ' ); '
SET @page_url = LOWER(@tableName)
SET @menu = REPLACE(@tableName,'-',' ')
EXEC SP_EXECUTESQL @createTableInner
EXEC CreatePageFromTable @tableName,NULL,@menu,@page_url,NULL,NULL
END
END
Search Data json format to Table and option also properties save etc + using jquery
$(document).ready(function(){
$(document).on(“click”,”.generateCode”,function(){
getSearchData()
});
// $(document).on(“keypress”,”.searchdata”,function(event){
// if (event.key === “Enter”) {
// getSearchData()
// }
// });
function getSearchData(){
var searchdata = $(‘.searchdata’).val();
if(searchdata==”){
$(‘.searchdata’).css(‘border’,’1px solid red’);
return false;
}
$(‘.searchdata’).css(‘border’,’1px solid #ced4da’);
$(‘.loader’).show();
$.ajax({
type: ‘POST’,
dataType: ‘json’,
//dataType: ‘text’,
url: base_url + “custom/customview/ai_integration_submit”,
data: {
prompt:searchdata,
},
success: function (data) {
$(‘.fieldproperty’).html(”);
if(data.error){
$(‘.tableContainer’).html(data.data);
$(‘.loader’).hide();
return false;
}
let dataAll = data;
// let dataAll = JSON.parse(data);
$(‘.tableContainer’).html(”);
if(dataAll.tables.length > 0 ){
for(var i=0;i<dataAll.tables.length;i++){
var tableHead = ”;
var tableBody = ”;
tableHead += ‘<div class=”col-sm-3 mb-2 no_action table_cust”><div><table id=”table’+i+'” class=”table table-hover table-border mdl-data-table” >’+
‘<thead>’+
‘<tr>’+
‘<th class=”d-flex justify-content-between align-items-center”>’+dataAll.tables[i].name+
‘<button class=”bsit_ahm_btn icon_btn bsit-column-add_ai ml-auto” table_id=”‘+i+'” id=”add-btn” data-toggle=”tooltip” data-placement=”bottom” data-original-title=”Add”><i class=”fa-solid fa-plus”></i></button><button type=”button” data-toggle=”tooltip” data-placement=”bottom” data-original-title=”Delete” class=”icon_btn removeTableBlock”><i class=”fa-regular fa-trash-can”></i></button>’+
‘</th>’+
‘</tr>’+
‘</thead>’;
tableBody += ‘<tbody>’;
$(dataAll.tables[i].columns).each(function(index,element){
var foreign_key = JSON.stringify(dataAll.tables[i].columns[index].foreign_key);
if (typeof dataAll.tables[i].columns[index].foreign_key === “undefined”) {
var foreign_key = ”;
}
var primary_key = 1;
if (typeof dataAll.tables[i].columns[index].primary_key === “undefined”) {
var primary_key = 0;
}
tableBody += “<tr data-id=’table”+i+”‘ class=’table”+i+dataAll.tables[i].columns[index].name+”‘><td class=’tableEventListner’ data-type='”+dataAll.tables[i].columns[index].type+”‘ data-primary='”+primary_key+”‘ data-foreign='”+foreign_key+”‘ data-name='”+dataAll.tables[i].columns[index].name+”‘>”+dataAll.tables[i].columns[index].name+”</td><td class=’text-right’><button type=’button’ data-toggle=’tooltip’ data-placement=’bottom’ data-original-title=’Delete’ class=’icon_btn ml-auto removeTableColumn’><i class=’fa-regular fa-trash-can’></i></button></td></tr>”;
});
tableBody += ‘</tbody></table></div></div>’;
var tableHtml = tableHead+tableBody;
$(‘.tableContainer’).append(tableHtml);
}
}
$(‘.loader’).hide();
},
error: function (jqXHR, exception) { },
});
}
$(document).on(“click”,”.tableContainer td.tableEventListner”,function(){
$(‘.loader’).show();
var fieldVal = $(this).text();
var allAttributesThis = $(this).closest(‘td[data-name=”‘+fieldVal+'”]’);
var allAttributes = $(this).closest(‘td[data-name=”‘+fieldVal+'”]’).data();
var selectedTable = $(this).parent(‘tr’).data(‘id’);
var selectedField = $(this).data(‘name’);
var propetyData = ”;
propetyData += ‘<div class=”mb-2 edit_side”>’;
propetyData += ‘<div class=”bsit-page-frame”>’;
propetyData += ‘<h6>’+fieldVal+'</h6>’;
propetyData += ‘<div class=”bsit_design_mode_info_scroll”>’;
propetyData += ‘<table id=”form_saveProperty” class=”bsit_form”>’;
propetyData += ‘<tbody>’;
var propetyDataFields = ”;
Object.keys(allAttributes).forEach(function (key, index,el) {
var value = allAttributes[key];
var valueData = $(allAttributesThis).attr(‘data-‘+key);
var attrValueArrayData = ”;
if(valueData!=”){
// var attrValueArrayData = JSON.stringify(valueData);
var attrValueArrayData = valueData;
}
propetyDataFields += ‘<tr>’;
if(key==’name’){
}else{
propetyDataFields += ‘<td class=”mdl-data-table__cell–non-numeric”>’+key+’ :</td>’;
}
if(key==’primary’){
if(attrValueArrayData==’1′ || attrValueArrayData=='”1″‘){
var attrValueArrayData_primary = true;
}else{
var attrValueArrayData_primary = false;
}
if(attrValueArrayData_primary){
propetyDataFields += “<td><div class=’mui-checkbox mui-col-md-12′><label class=’bsit_check’><input class=’form_primary_val’ type=’checkbox’ checked /><span class=’bsit_checkmark bsit_checkmark_design_mode_sidebar’></span></label></div></td>”;
}else{
propetyDataFields += “<td><div class=’mui-checkbox mui-col-md-12′><label class=’bsit_check’><input class=’form_primary_val’ type=’checkbox’ /><span class=’bsit_checkmark bsit_checkmark_design_mode_sidebar’></span></label></div></td>”;
}
}else if(key==’name’){
//name skip
propetyDataFields += ”;
}else if(key==’type’){
propetyDataFields += “<td><div class=’mui-textfield mui-col-md-12′>”;
propetyDataFields += “<select class=’form_type_val’>”;
var intSelected = ”;
var varSelected = ”;
var var255Selected = ”;
var stringSelected = ”;
if(attrValueArrayData=='”int”‘ || attrValueArrayData==’int’){
var intSelected = ‘selected’;
}
if(attrValueArrayData=='”varchar”‘ || attrValueArrayData==’varchar’){
var varSelected = ‘selected’;
}
if(attrValueArrayData=='”varchar(255)”‘ || attrValueArrayData==’varchar(255)’){
var var255Selected = ‘selected’;
}
if(attrValueArrayData=='”string”‘ || attrValueArrayData==’string’){
var stringSelected = ‘selected’;
}
propetyDataFields += “<option “+intSelected+” value=’int’>int</option>”;
propetyDataFields += “<option “+varSelected+” value=’varchar’>varchar</option>”;
propetyDataFields += “<option “+var255Selected+” value=’varchar(255)’>varchar(255)</option>”;
propetyDataFields += “<option “+stringSelected+” value=’string’>string</option>”;
propetyDataFields += “</select>”;
propetyDataFields += “</div></td>”;
}else{
propetyDataFields += “<td><div class=’mui-textfield mui-col-md-12′><input class=’form_varchar_val’ type=’text’ value='”+attrValueArrayData+”‘ /></div></td>”;
}
propetyDataFields += ‘</tr>’;
});
propetyData += propetyDataFields;
propetyData += ‘</tbody>’;
propetyData += ‘</table>’;
propetyData += ‘<button class=”btn btn-primary saveProperty” data-name=”‘+selectedField+'” data-id=”‘+selectedTable+'”>Save</button>’;
propetyData += ‘</div>’;
propetyData += ‘</div>’;
propetyData += ‘</div>’;
$(‘.fieldproperty’).html(propetyData);
$(‘.loader’).hide();
});
//save field propery
$(document).on(“click”,”.saveProperty”,function(){
var form_varchar_val = $(‘.form_varchar_val’).val();
var form_primary_val = $(‘.form_primary_val’).is(“:checked”);
var primary_value = 0;
if(form_primary_val){
var primary_value = 1;
}
var form_type_val = $(‘.form_type_val’).val();
var selectedTable =$(this).data(‘id’);
var selectedField =$(this).data(‘name’);
$(‘#’+selectedTable).find(‘.’+selectedTable+selectedField).find(‘td’).attr(‘data-foreign’,form_varchar_val);
$(‘#’+selectedTable).find(‘.’+selectedTable+selectedField).find(‘td’).attr(‘data-primary’,primary_value);
$(‘#’+selectedTable).find(‘.’+selectedTable+selectedField).find(‘td’).attr(‘data-type’,form_type_val);
});
//open popup on add icon
$(document).on(‘click’, ‘.bsit-column-add_ai’, function (e) {
//reset fields
$(‘.collection_property_add_ai’).find(“input”).val(”);
let table_id = $(this).attr(‘table_id’);
$(“#column_add_tables_id”).val(table_id);
$(‘.collection_property_add_ai’).modal();
});
//save column attributes
$(document).on(‘click’, ‘.bsit_save_column_ai’, function (e) {
let checked = 1;
let is_derived = 1;
let column_name = $(“#column_name”).val();
let column_id = “”;
let tables_id = $(“#column_add_tables_id”).val();
let is_error = false;
if (column_name == ”) {
$(‘#column_name’).addClass(‘required_border_class’);
is_error = true;
} else {
$(‘#column_name’).removeClass(‘required_border_class’);
}
var addColumn = ”;
addColumn += ‘<tr data-id=”table’+tables_id+'” class=”table’+tables_id+column_name+'”><td class=”tableEventListner” data-type=”” data-primary=”” data-foreign=”” data-name=”‘+column_name+'”>’+column_name+'</td><td class=”text-right”><button type=”button” class=”icon_btn ml-auto removeTableColumn”><i class=”fa-regular fa-trash-can”></i></button></td></td></tr>’;
if (is_error) {
return false;
}
$(‘#table’+tables_id+’ tbody’).append(addColumn);
$(‘.collection_property_add_ai’).modal(‘hide’);
// return false;
// let moduleUrl = base_url + ‘core/collectionmanager/addEditProperty’;
// let postData = {
// column_id: column_id,
// collection_id: collection_id,
// checked: checked,
// name: name,
// column_name: column_name,
// tables_id: tables_id,
// is_derived: is_derived,
// };
});
//generate json for tables
$(document).on(“click”,”.build_application”,function(){
var datas = $(‘.tableContainer table’);
var jsonArray = [];
$(datas).each(function(index,el){
var jsonArrayColumns = [];
var dataColumns = $(this).find(‘tbody tr’);
$(dataColumns).each(function(index_c,el_c){
var columndetails = $(this).find(‘td’).data();
var columndetailsThis = $(this).find(‘td’);
Object.keys(columndetails).forEach(function (key, index,el) {
// var value = columndetails[key];
// var valueData = $(columndetailsThis).attr(‘data-‘+key);
columndetails[key]= $(columndetailsThis).attr(‘data-‘+key);
});
jsonArrayColumns.push(columndetails);
});
var tableName = $(this).find(‘thead th’).text().trim();
var jsontables = {“name”:tableName,”columns”:jsonArrayColumns};
jsonArray.push(jsontables);
});
var jsonData = {“tables”:jsonArray};
console.log(jsonData);
$(‘.jsonData’).text(JSON.stringify(jsonData));
});
//remove table column
$(document).on(“click”,”.removeTableColumn”,function(){
let confirm_delete = confirm(‘Are you sure you want to delete ?’);
if (confirm_delete == true) {
$(this).closest(‘tr’).remove();
}
});
//remove table
$(document).on(“click”,”.removeTableBlock”,function(){
let confirm_delete = confirm(‘Are you sure you want to delete ?’);
if (confirm_delete == true) {
$(this).closest(‘.table_cust’).remove();
}
});
});
CHATGPT + Post search data API
function callChatGptApi($userInputs) {
$api_key = “apikey”;
$url = “https://api.openai.com/v1/completions”;
$prompt_prefix = ‘Design a database structure based on the following user requirements: ‘;
$prompt = $userInputs[‘prompt’];
$prompt_suffix = ‘. Please provide the structure in JSON format including table names, columns, data types, and primary and foreign keys. For example:{“tables”:[{“name”:”table_name”,”columns”:[{“name”: “column_name”, “type”: “data_type”, “primary_key”: true},{“name”: “column_name2”, “type”: “data_type”, “foreign_key”:{“table”: “referenced_table”, “column”: “referenced_column”}}]}]}’;
$prompt_final = $prompt_prefix.$prompt.$prompt_suffix;
$model = $this->getIntegrationModel();
$data = json_encode(array(
“model”=> $model,
“prompt” => $prompt_final,
“max_tokens” => 1000,
“n” => 1,
“stop” => null,
“temperature” => 0.5
));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json”,
“Authorization: Bearer $api_key”
));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
try {
$response = $response;
}
catch(Exception $e) {
$response = $e->getMessage();
}
return json_decode($response, true);
}
CHATGPT + Get models API
function getmodels($userInputs) {
$api_key = “apikey”;
$url = “https://api.openai.com/v1/models”;
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_FRESH_CONNECT, true);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($crl, CURLOPT_CUSTOMREQUEST,”GET”);
curl_setopt($crl, CURLOPT_HTTPHEADER, array(
“Content-Type: application/json”,
“Authorization: Bearer $api_key”
));
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($crl);
curl_close($crl);
try {
$data = json_decode($response, true);
}
catch(Exception $e) {
$data = $e->getMessage();
}
echo “<pre>”;
print_r($data);
//echo $data;
}