<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Persona;
use Carbon\Carbon;

class PersonaController extends Controller
{
    function guardar($data){
        $numDoc = $data["documento"];
        $arrFnl = [];
        
        //El nombre de la key/clave del array debe ser igual al nombre de la columna en la base de datos (incluye mayusculas y minusculas)
        $infoEncpsld = [
            'id_banner' => $data['id_estud'],
            'nombre' => $data['nombre_completo'],
            'tipo_documento' => (empty($data['otro_tipo_documento'])) ? $data['tipo_documento'] : $data['otro_tipo_documento'],
            'fecha_expedicion' => $data['fecha_expedicion'],
            'documento' => $numDoc,
            'fecha_nacimiento' => $data['fecha_nacimiento'],
            'edad' => $data['edad'],
            'genero' => $data['genero'],
            'correo' => $data['correo_pers'],
            'celular' => $data['num_cel'],
            'numero_whatsapp' => $data['num_whatsapp'],
            'direccion' => $data['direccion'],
            'barrio' => $data['barrio'],
            'estrato' => $data['estrato'],
            'ciudadania' => $data['ciudadania'],
            'pais_nacimiento' => $data['pais'],
            'ciudad_residencia' => $data['ciudad'],
            'direccion_residencia' => $data['direccion_residencia'],
            'estado_civil' => $data['estado_civil'],
            'religion' => $data['religion'],
            'etnia' => $data['etnia'],
            'eps' => $data['eps'],
            'discapacidad' => (empty($data['cual_discapacidad'])) ? $data['discapacidad'] : $data['cual_discapacidad'],
            'nombre_contacto_1' => $data['nombre_emergencia_1'],
            'telefono_contacto_1' => $data['num_emergencia_1'],
            'parentesco_contacto_1' => $data['parentesco_1'],
            'nombre_contacto_2' => $data['nombre_emergencia_2'],
            'telefono_contacto_2' => $data['num_emergencia_2'],
            'parentesco_contacto_2' => $data['parentesco_2'],
        ];


        $condBusc = $this->buscarValdr($numDoc);

        // dd($condBusc);
        
        if ($condBusc == true) {
            $arrFnl = $this->actualizar($numDoc, $infoEncpsld);
            
        } elseif ($condBusc == false) {
            
            $numpk = null;
            $cond = true;
            
            try {
                // Inscripcion::insert($data);
                $numpk = Persona::insertGetId($infoEncpsld);
                // dd($numpk);
            } catch (\Throwable $th) {
                $cond = false;
                // dd($th);
            }

            $arrFnl = [
                'numRegistro' => $numpk,
                'condicion' => $cond
            ];


        } else {
            $condFnl = false;
        }

        return $arrFnl;
    }

    function buscarValdr($doc){
        try {
            $contRecb = Persona::where('documento', $doc)
                ->count('id');
            
            if ($contRecb == 0) {
                $exist = false;
            } else {
                $exist = true;
            }
            
        } catch (\Throwable $th) {
            $exist = 'error';
        }
        
        return $exist;
    }

    function actualizar($doc, $data){
        $cond = true;
        $infoActlzr = $data;
        $fecha = Carbon::now('America/Bogota')->toDateTimeString();
        $infoActlzr["fecha_modificacion"] = $fecha;

        try {
            $request = Persona::where('documento', $doc)
                ->update($infoActlzr);

        } catch (\Throwable $th) {
            $cond = false;

        }
        if ($request ==1) {
            $numpk = Persona::where('documento', $doc)->value('id');

        } elseif ($request == 0) {
            $cond = false;

        }

        $arrPersAct = [
            "numRegistro" => $numpk,
            "condicion" => $cond
        ];

        return $arrPersAct;
    }
}
