<?php

namespace App\Console\Commands;

use AlibabaCloud\ARMS\V20190808\Upload;
use App\Models\Agriculture;
use App\Models\agriculture_culture;
use App\Models\Animal;
use App\Models\Comuna;
use App\Models\Culture;
use App\Models\culture_livestock;
use App\Models\Extencionist;
use App\Models\Fontecredito;
use App\Models\Fonteinstrumento;
use App\Models\identificacao;
use App\Models\Livestock;
use App\Models\Manifest;
use App\Models\ManifestImage;
use App\Models\Pacote;
use App\Models\Posicao;
use App\Models\Preparacaoterra;
use App\Models\Produtor;
use App\Models\ProdutorImage;
use App\Traits\PlanoNegocio;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use App\Models\ProponentSubmission;
use App\Models\Sementeria;
use App\Models\Sistemarega;
use App\Models\Tipoamanho;
use App\Models\TipoOrganizacao;
use App\Models\Topicolheita;
use App\Models\User;
use App\Traits\UploadsFile;
use Illuminate\Http\Request;
use Exception;

class AvalicaoProponente extends Command
{
    use PlanoNegocio;
    use UploadsFile;
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'insert:avalicao-proponente';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Execute the console command.
     */
    public function handle(Request $request, Comuna $comuna)
    {
       
        //mosap_copia
        $apiBaseUrl = "https://kf.kobotoolbox.org/api/v2/assets/auGVcQ4TYyiqDJ8JnAGmdu/data.json";

        $result = $this->getData($apiBaseUrl);

        //$prefix = "begin_group_VYMjHLjJO";
       
       
        for ($i = 0; $i < count($result['results']); $i++)
        {
           
            $proponent=$result['results'][$i]['_id'];

            $proponents = Manifest::where('idManifest',  $proponent)
            //->whereNotIn('status', ['Invalido', 'Rejeitado', 'Duplicado', 'Cancelada'])
            ->first();

            
            if(!$proponents){   
                
                //try {
                    //DB::beginTransaction();
                        //////////////////////////////////////////////
                        $proponentSubmission=Manifest::create([
                            'uuid'=>$result['results'][$i]['_uuid'],
                            "idManifest"=>$result['results'][$i]['_id'],
                            'name'=>$result['results'][$i]['Nome_do_Extensionista'],
                            'extensionistId'=>$result['results'][$i]['ID_do_Extensionista'],
                            "nome_da_eca"=>$result['results'][$i]['Nome_da_ECA'],
                            "provincia"=>$result['results'][$i]['provincia'],
                            "municipio"=>$result['results'][$i]['municipio'],
                            "comuna"=>$result['results'][$i]['comuna'] ,
                            "aldeia"=>$result['results'][$i]['Aldeia'],
                            "localizao_geografica"=>$result['results'][$i]['Localiza_o_Geogr_fica'] ?? null,
                            "data_actualizacao"=>$result['results'][$i]['Data_de_actualiza_ao'],
                            "obsevacao_geral"=>$result['results'][$i]['group_ec63e95/Observa_es_gerais'] ?? null,
                            "submission_date"=>$result['results'][$i]['_submission_time'],
                            
                        ]);

                       

                        ///////////////////////////////////////////////////
                        //$_identificacao=$result['results'][$i]['Identifica_o_do_Pequeno_Produt'];
                        //$_position=$result['results'][$i]['Posi_o_Ocupada_na_EC_elo_Pequeno_Produtor'];
                        //$organizacao=$result['results'][$i]['Tipo_da_Organiza_o_a_que_o_Peq'];
                        $tipoOrganizacao=TipoOrganizacao::where("organizacao",$result['results'][$i]["Tipo_da_Organiza_o_a_que_o_Peq"])->first();
                        $identificacao=identificacao::where('identificação',$result['results'][$i]['Identifica_o_do_Pequeno_Produt'])->firstOrFail();
                        if(isset($result['results'][$i]['Posi_o_Ocupada_na_EC_elo_Pequeno_Produtor'])){
                            $position=Posicao::where('posicao',$result['results'][$i]['Posi_o_Ocupada_na_EC_elo_Pequeno_Produtor'])->first();
                        }
                       if(isset($result['results'][$i]['Fotografia_do_Pequeno_Produtor'])){
                            $produtor_foto=$this->uploadFile($request,'image', 'public/files/produtorImage/'.$result['results'][$i]['Fotografia_do_Pequeno_Produtor']);
                        }else{$produtor_foto=null;}
                        //$positionn=null;
                        if(isset($result['results'][$i]['Posi_o_Ocupada_na_EC_elo_Pequeno_Produtor']) ){
                            $positionn=$position->id;
                            }else{$positionn=null;}
                        $produtor=Produtor::create([
                            
                            "nome"=>$result['results'][$i]['Nome_do_Pequeno_Produtor_Membro_da_ECA'],
                            "dob"=>$result['results'][$i]['Data_de_Nascimento_do_Pequeno_Produtor'],
                            "genero"=>$result['results'][$i]['G_nero_do_Pequeno_Produtor'],
                            "num_agrgado"=>$result['results'][$i]['N_mero_de_Membros_do_Agregado_'],
                            "phone"=>$result['results'][$i]['N_mero_de_Telefone_do_Pequeno_Produtor'],
                            "nomeOrganização"=>$result['results'][$i]['Nome_da_Organiza_o_a_no_Produtor_Pertence'] ?? null,
                            "OtherPhoner"=>$result['results'][$i]['N_mero_de_Telefone_d_Produtor_Alternativo'] ?? null,
                            "sabe_ler"=>$result['results'][$i]['O_Pequeno_Produtor_sabe_Ler_e_Escrever'],
                            "Ano_escolar"=>$result['results'][$i]['Anos_de_Escolaridade_do_Pequeno_Produtor'] ?? null,
                            "foto"=>$produtor_foto ?? null,
                            "produtor_tem_culturas"=>$result['results'][$i]['group_yp2ei75/O_produtor_tem_culturas'],
                            "produtor_tem_animais"=>$result['results'][$i]['group_kt45t08/O_produtor_tem_animais'],
                            "pequeno_produtor_beneficiou_credito"=>$result['results'][$i]['group_ec63e95_001/Pequeno_produtor_j_beneficiou'] ?? null,
                            "qual"=>$result['results'][$i]['group_ec63e95_001/Qual'] ?? null,
                            "conclui_rembolso"=>$result['results'][$i]['group_ec63e95_001/Ja_concluiu_o_reembolso'] ?? null,
                            'manifest_id'=>$proponentSubmission->id,
                            'identificacao_id'=>$identificacao->id,
                            'tipo_organizacao_id'=>$tipoOrganizacao->id ,
                            'posicao_id'=>$positionn
                            
                        ]);

                        /*$proponentSubmission->produtor()->create([
                            "nome"=>$result['results'][$i]['Nome_do_Pequeno_Produtor_Membro_da_ECA'],
                            "dob"=>$result['results'][$i]['Data_de_Nascimento_do_Pequeno_Produtor'],
                            "genero"=>$result['results'][$i]['G_nero_do_Pequeno_Produtor'],
                            "num_agrgado"=>$result['results'][$i]['N_mero_de_Membros_do_Agregado_'],
                            "phone"=>$result['results'][$i]['N_mero_de_Telefone_do_Pequeno_Produtor'],
                            "nomeOrganização"=>$result['results'][$i]['Nome_da_Organiza_o_a_no_Produtor_Pertence'] ?? null,
                            "OtherPhoner"=>$result['results'][$i]['N_mero_de_Telefone_d_Produtor_Alternativo'] ?? null,
                            "sabe_ler"=>$result['results'][$i]['O_Pequeno_Produtor_sabe_Ler_e_Escrever'],
                            "Ano_escolar"=>$result['results'][$i]['Anos_de_Escolaridade_do_Pequeno_Produtor'] ,
                            "foto"=>$produtor_foto ?? null,
                            "produtor_tem_culturas"=>$result['results'][$i]['group_yp2ei75/O_produtor_tem_culturas'],
                            "produtor_tem_animais"=>$result['results'][$i]['group_kt45t08/O_produtor_tem_animais'],
                            "pequeno_produtor_beneficiou_credito"=>$result['results'][$i]['group_ec63e95_001/Pequeno_produtor_j_beneficiou'],
                            "qual"=>$result['results'][$i]['group_ec63e95_001/Qual'] ?? null,
                            "conclui_rembolso"=>$result['results'][$i]['group_ec63e95_001/Ja_concluiu_o_reembolso'] ?? null,
                            //'manifest_id'=>$proponentSubmission->id,
                            'identificacao_id'=>$identificacao->id,
                            'tipo_organizacao_id'=>$tipoOrganizacao->id ,
                            'posicao_id'=>$position->id
                        ]);*/

                        ////////////////////////////////////////////////////////////////////////////////////////////////////
                          //$produtor=Produtor::where('manifest_id',$proponentSubmission->id)->first();
                        if($produtor->produtor_tem_culturas == "Sim"){
                            /*if(isset($result['results'][$i]['group_yp2ei75/group_mx4ye17/Foto_da_superficie_cultivada'])){
                                $superficie_foto=$this->uploadFile($request,'image', 'public/files/produtorImage/fotocampo/'.$result['results'][$i]['group_yp2ei75/group_mx4ye17/Foto_da_superficie_cultivada']);
                            }*/

                            $agricultura=Agriculture::create([
                                "area_total_cultivada"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Total']?? null,
                                "area_total"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Total_001']?? null,
                                "area_propria"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/_rea_pr_pria']?? null,
                                "area_alugada"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/_rea_alugada']?? null,
                                "emprestimo"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Empr_stimo']?? null,
                                
                                "usa_fertilizante"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Usa_fertilizante']?? null,
                                "acesso_rega"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Aceso_a_rega']?? null,
                               
                                "distancia_font_agua"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Dist_ncia_da_fonte_de_gua']?? null,
                                "feijao_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_10/group_is3of54_row_10_column'] ?? null,
                                "feijao_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_10/group_is3of54_row_10_column_1_1'] ?? null,
                                "feijao_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_10/group_is3of54_row_10_column_2']?? null,

                                "cebola_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_6/group_is3of54_row_6_column'] ?? null ,
                                "cebola_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_6/group_is3of54_row_6_column_1_1'] ?? null,
                                "cebola_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_6/group_is3of54_row_6_column_2']?? null,

                                "batataDoce_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_4/group_is3of54_row_4_column'] ?? null,
                                "batataDoce_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_4/group_is3of54_row_4_column_1_1'] ?? null,
                                "batataDoce_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_4/group_is3of54_row_4_column_2']?? null,

                                "cenoura_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_9/group_is3of54_row_9_column']?? null,
                                "cenoura_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_9/group_is3of54_row_9_column_1_1'] ?? null,
                                "cenoura_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_9/group_is3of54_row_9_column_2']?? null,

                                "mandioca_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_3/group_is3of54_row_3_column']?? null,
                                "mandioca_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_3/group_is3of54_row_3_column_1_1']?? null,
                                "mandioca_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_3/group_is3of54_row_3_column_2']?? null,

                                "repolho_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_7/group_is3of54_row_7_column'] ?? null,
                                "repolho_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_7/group_is3of54_row_7_column_1_1'] ?? null,
                                "repolho_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_7/group_is3of54_row_7_column_2']?? null,

                                "milho_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row/group_is3of54_row_column'] ?? null,
                                "milho_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row/group_is3of54_row_column_1_1'] ?? null,
                                "milho_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row/group_is3of54_row_column_2']?? null,

                                "batataRena_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_5/group_is3of54_row_5_column']?? null,
                                "batataRena_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_5/group_is3of54_row_5_column_1_1']?? null,
                                "batataRena_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_5/group_is3of54_row_5_column_2']?? null,

                                "massango_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_1/group_is3of54_row_1_column']?? null,
                                "massango_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_1/group_is3of54_row_1_column_1_1']?? null,
                                "massango_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_1/group_is3of54_row_1_column_2']?? null,

                                "alho_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_8/group_is3of54_row_8_column']?? null,
                                "alho_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_8/group_is3of54_row_8_column_1_1']?? null,
                                "alho_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_8/group_is3of54_row_8_column_2']?? null,

                                "massambala_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_2/group_is3of54_row_2_column']?? null,
                                "massambala_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_2/group_is3of54_row_2_column_1_1']?? null,
                                "massambala_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_2/group_is3of54_row_2_column_2']?? null,

                                "outros_area"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_11/group_is3of54_row_11_column']?? null,
                                "outros_producao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_11/group_is3of54_row_11_column_1_1']?? null,
                                "outros_descricao"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/group_is3of54_row_11/group_is3of54_row_11_column_2']?? null,
                                "instrumento_insumo"=>$result['results'][$i]['group_yp2ei75/group_mx4ye17/Acesso_a_instrumentos_e_insumo'] ?? null,
                                "fotosuperficecultivada"=>$superficie_foto ?? null,
                                "produtor_id"=>$produtor->id,
                            ]);
                            
                            $_sistemas=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Sistema_de_rega'] ?? null;
                        
                            if($_sistemas != null){ 
                                $sistemas=explode(" ",$_sistemas);
                                foreach( $sistemas as $sistema){
                                
                                    $_sistemarega=Sistemarega::where('seistema', $sistema)->first();
                                    $agricultura->sistemaRega()->attach($_sistemarega->id);
                                }
                            }

                            $preparacao_terra=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Tipo_de_prepara_o_de_terra'] ?? null;
                            if($preparacao_terra != null){
                                $preparacaos=explode(" ",$preparacao_terra);
                                foreach($preparacaos as $preparacao){
                                    $_preparacaoTerra=Preparacaoterra::where('preparacao',$preparacao)->first();
                                    $agricultura->prepacaoTerra()->attach($_preparacaoTerra->id);
                                }
                            }

                            $sementeiras=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Sementeira'] ?? null;
                            if($sementeiras != null){
                                $_sementeiras=explode(" ",$sementeiras);
                                foreach($_sementeiras as $_sementeira){
                                    $sementeira=Sementeria::where('sementeira',$_sementeira)->first();
                                    $agricultura->sementeira()->attach($sementeira->id);
                                }
                            }

                            $amanhos=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Tipo_de_amanhos_culturais']?? null;
                            if($amanhos != null){
                                $_amanhos=explode(" ",$amanhos);
                                foreach($_amanhos as $_amanho){
                                    $amanho=Tipoamanho::where('tipo',$_amanho)->first();
                                    $agricultura->tipoAmanho()->attach($amanho->id);
                                }
                            }

                            
                            $fontInstrumento=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Fonte_de_instrumento_o_insumos_agricolas'] ?? null;
                            if($fontInstrumento != null){
                                $_fontInstrumentos=explode(" ",$fontInstrumento);
                                foreach($_fontInstrumentos as $_fontInstrumento){
                                    $fonteIntrumento=Fonteinstrumento::where('tipo',$_fontInstrumento)->first();
                                    $agricultura->fonteInstrumento()->attach($fonteIntrumento->id);
                                }
                            }


                            $metodocolheita=$result['results'][$i]['group_yp2ei75/group_mx4ye17/Metodo_de_colheita'] ?? null;
                            if($metodocolheita != null){
                                $_metodocolheitas=explode(" ",$metodocolheita);
                                foreach($_metodocolheitas as $_metodocolheita){
                                    $metodocolheita=Topicolheita::where('tipo',$_metodocolheita)->first();
                                    $agricultura->tipoColheita()->attach($metodocolheita->id);
                                }
                            }



                           


                        }
                      
                        if($produtor->produtor_tem_animais == "Sim"){
                            //if(isset($result['results'][$i]['group_kt45t08/group_ov2pi80/Foto_dos_animais']) ){
                               // $animal_foto=$this->uploadFile($request,'image', 'public/files/produtorImage/fotoanimal/'.$result['results'][$i]['group_kt45t08/group_ov2pi80/Foto_dos_animais']);
                            //}
                            //if(isset($result['results'][$i]['group_kt45t08/group_ov2pi80/Fonte_s_do_credito'])){
                                //$fontcredito=Fontecredito::where('tipo',$result['results'][$i]['group_kt45t08/group_ov2pi80/Fonte_s_do_credito'])->first();
                            //}

                            
                        
                            $livestock=Livestock::create([
                                "racao_animal"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/Acesso_a_ra_o_animal']?? null,
                                "conhecimento_doenca_animal"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/Conhecimento_sobre_doen_as_ani']?? null,
                                "beneficiario_credito"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/J_foi_beneficiado_com_algum_c']?? null,
                                //"fontecredito_id"=>$fontcredito->id ?? null,
                                "fotoanimais"=> $animal_foto ?? null,
                                "produtor_id"=>$produtor->id,
                                "ave_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row/group_nv3op66_row_column']?? null,
                                "ave_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row/group_nv3op66_row_column2']?? null,

                                "bovino_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_1/group_nv3op66_row_1_column'] ?? null,
                                "bovino_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_1/group_nv3op66_row_1_column2']?? null,

                                "caprino_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_2/group_nv3op66_row_2_column']?? null,
                                "caprino_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_2/group_nv3op66_row_2_column2']?? null,

                                "ovino_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_3/group_nv3op66_row_3_column']?? null,
                                "ovino_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_3/group_nv3op66_row_3_column2']?? null,

                                "suino_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_4/group_nv3op66_row_4_column']?? null,
                                "suino_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_4/group_nv3op66_row_4_column2']?? null,

                                "outros_quantos"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_5/group_nv3op66_row_5_column']?? null,
                                "outros_descricao"=>$result['results'][$i]['group_kt45t08/group_ov2pi80/group_nv3op66_row_5/group_nv3op66_row_5_column2']?? null
                            ]);

                            $fontcredito=$result['results'][$i]['group_kt45t08/group_ov2pi80/Fonte_s_do_credito'] ?? null;
                            if($fontcredito != null){
                                $_fontcreditos=explode(" ",$fontcredito);
                                foreach($_fontcreditos as $_fontcredito){
                                    $fontcredito=Fontecredito::where('tipo',$_fontcredito)->first();
                                    $livestock->fonteCredito()->attach($fontcredito->id);
                                }
                            }

                          
                        }

                        /*
                        $user=User::where('numero_extensionist',$result['results'][$i]['ID_do_Extensionista'])->first();
                        if(!$user){
                            $extensionist=explode(" ",$result['results'][$i]['Nome_do_Extensionista']);

                            $user=User::create([
                                "first_name"=>$extensionist[0],
                                "last_name"=>$extensionist[1] ?? null,
                                "numero_extensionist"=>$result['results'][$i]['ID_do_Extensionista']
                            ]);
                        }*/
                        ////////////////////////////////////
                        /*if(isset($result['results'][$i]["group_ec63e95/Foto_opcional"])){
                            $proponentImage=$this->uploadFile($request,'image', 'public/files/manifestImage/'.$result['results'][$i]['group_ec63e95/Foto_opcional']);
                            $proponentImage=Manifest::create([
                                'manifest_id'=>$proponentSubmission->id, 
                                'foto_opcional'=>$proponentImage ?? null
                            ]);
                        }*/
                        //////////////////////////////////////////////////
                        
                        
                    
                        
                        

                     
                    //DB::commit();

                //}catch(Exception $e){
                  //  DB::rollBack();
                    
                //}   
            }
                
                   
                        
                
            
            

            
        }
           
    }    
    
}
    
    


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;

class ImageController extends Controller
{
    public function uploadImage(Request $request)
    {
        // Endpoint da API do KoboToolbox que fornece os dados em JSON
        $koboApiUrl = 'URL_DA_API_DO_KOBOTOOLBOX';

        // Autenticação (se necessário)
        $response = Http::withHeaders([
            'Authorization' => 'Token SEU_TOKEN_AQUI'
        ])->get($koboApiUrl);

        // Verifica se a resposta contém os dados JSON
        if ($response->successful()) {
            $data = $response->json(); // Obtém os dados JSON

            // Supondo que a URL da imagem está contida no campo 'image_url'
            if (isset($data['image_url'])) {
                $imageUrl = $data['image_url'];
                $imageContent = file_get_contents($imageUrl);

                // Gera um nome único para a imagem
                $imageName = time() . '.jpg';

                // Salva a imagem no sistema de arquivos
                Storage::disk('public')->put('images/' . $imageName, $imageContent);

                return response()->json(['message' => 'Imagem salva com sucesso!', 'image_name' => $imageName], 200);
            }

            // Se a imagem estiver codificada em base64 no campo 'image_base64'
            if (isset($data['image_base64'])) {
                $imageBase64 = $data['image_base64'];
                $imageContent = base64_decode($imageBase64);

                // Gera um nome único para a imagem
                $imageName = time() . '.jpg';

                // Salva a imagem no sistema de arquivos
                Storage::disk('public')->put('images/' . $imageName, $imageContent);

                return response()->json(['message' => 'Imagem salva com sucesso!', 'image_name' => $imageName], 200);
            }

            return response()->json(['message' => 'Imagem não encontrada no JSON'], 400);
        }

        return response()->json(['message' => 'Falha ao obter os dados da API'], 500);
    }
}