<?php

namespace App\Controllers;

use function MongoDB\BSON\toJSON;

class Home extends BaseController
{


    public function index(): string
    {
        $data['label_env'] =  $this->what_env();
        $data["hanging_list"] = $this->getProvisionList(15, 6);
        $data["completed_list"] = $this->getProvisionList(15, 7);
        $data["starting_list"] = $this->getProvisionList(15, 1);
        return view('welcome_message',$data);
    }

    public function what_env(): string
    {
        $curr_env = env('CONFIG_NAME','undefined?');
      //  echo env('CI_ENVIRONMENT');
        return $curr_env;
    }

    private function getProvisionList($limit,$status){
        $mysql ="SELECT * FROM members_products WHERE status = $status ORDER BY id DESC LIMIT $limit";
        $query = $this->db->query($mysql);
        return $query->getResult();
    }
//    public function provision(): string
//    {
//        $public_path  = FCPATH;
//        $ansible_folder = str_replace("public/", "ANSIBLE", $public_path);
//        $partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
//        if (!is_dir($ansible_folder."/parts") ){
//            mkdir($ansible_folder."/parts", 0700);
//        }
//
//        $mysql =  "SELECT id, uid, internal_url,product_id,status,provision_port FROM members_products WHERE provision_port = 0 ";
//        $query = $this->db->query($mysql);
//       // $num = $query->num_rows();
//        $provision_list= $query->getResult();
//        //$provision_list =[];
//        foreach ($provision_list as $pr){
//            $provisionPort = $pr->provision_port;
//            $productId = $pr->product_id;
//            $provisionUID = $pr->uid;
//            $ContainerName= $productId.str_pad( $pr->id, 10, "0", STR_PAD_LEFT);
//            $partFolder = $ansible_folder."/parts/".$provisionUID;
//
//            $allocatedPort = 8011;
//
//            if (!is_dir($partFolder) ){
//                mkdir($partFolder, 0700);
//            }
//
//
//            // THIS PROVISONING COMPOSERS
//            $composer_template_path =  $ansible_folder."/templates/composers/".$productId."/docker-compose.yml";
//            $composer_template_path_local =  $partMachineLocal.$provisionUID;
//
//            $prov_name = str_replace(".", "_", $pr->internal_url).".yml";
//            $template_file = $ansible_folder ."/templates/".$pr->product_id.".yml";
//            //Get the domposer template file
//            $composer_template_contents = file_get_contents($composer_template_path);
//            // Do the processing
//            $composer_template_contents = str_replace("WHAT_CONTAINER_NAME", $ContainerName, $composer_template_contents);
//            $destinationHomeFolder = "/home/chiefsoft/SITES/".$ContainerName;
//            $composer_template_contents = str_replace("DESTINATION_FOLDER", $destinationHomeFolder, $composer_template_contents);
//            $composer_template_contents = str_replace("ALLOCATED_PORT", $allocatedPort, $composer_template_contents);
//            $composer_template_contents = str_replace("CNT_DB_NAME", $ContainerName, $composer_template_contents);
//            $composer_template_contents = str_replace("CNT_DB_PASS", $provisionUID, $composer_template_contents);
//            $composer_template_contents = str_replace("PROVISION_UID_REPLACE", $provisionUID, $composer_template_contents);
//            //Save to the specific path
//            $destination_composer_path =  $ansible_folder."/parts/".$provisionUID."/docker-compose.yml";
//            $composerFile = fopen( $destination_composer_path, "w") or die("Unable to open file!");
//            fwrite($composerFile, $composer_template_contents);
//            fclose($composerFile);
//
//            // GET THE TEMPLATE FOR THIS PROVISIONING
//            $template_content = file_get_contents($template_file);
//            $template_content_processed = str_replace("WHAT_HOST_IN_USE", $productId."_SERVER", $template_content);
//            $template_content_processed = str_replace("WHAT_PART_FOLDER", $partFolder, $template_content_processed);
//            $template_content_processed = str_replace("DESTINATION_FOLDER", $destinationHomeFolder, $template_content_processed);
//            $template_content_processed = str_replace("WHAT_PART_LOCAL", $composer_template_path_local, $template_content_processed); // depends on the local machine
//            // CREATE PROVISOINING FILE
//            $myfile = fopen( $ansible_folder ."/".$prov_name, "w") or die("Unable to open file!");
//            fwrite($myfile, $template_content_processed);
//            fclose($myfile);
//        }
//
//       // echo (__dir__);
//
//
//
//        $data['label_env'] =  "Olusesan";
//
//        return view('welcome_message',$data);
//    }

}
