Category: Other

Pickadate on set date + jquery

$(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&#8221;;

      $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&#8221;;

      $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&#8221;;

      $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);

    }

}

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’

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&#8221;;

      $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&#8221;;

      $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;

    }