<?php

namespace App\Http\Historico;

// Controladores
use App\Http\Controllers\RolController;
use App\Http\Controllers\LaboratorioController;
use App\Http\Controllers\SuperUsuarioController;
use App\Http\Controllers\UsuarioController;

// Historico
use App\Http\Historico\Historico;

class SuperUsuarioHistorico extends Historico {

    public function store($accion, $obj){

        $this->SetInformacionLog($accion, $obj);
        
        switch($this->accion){
            case "store":
                $name = $this->req->name;
                $num_user = $this->req->num_user;
                $num_project = $this->req->num_project;
                $this->tableLog->titulo = "Registro";
                $this->tableLog->descripcion = "super usuario: $name, numero usuario: $num_user, numero proyecto: $num_project";
                break;

            case "storePass":
                $nom_usuario = UsuarioController::listItem($this->req->id)->nom_usuario;
                $this->tableLog->titulo = "Actualización de contraseña";
                $this->tableLog->descripcion = "usuario: $nom_usuario";
                break;

            case "update":
                $client = SuperUsuarioController::listItem($this->req->id)->name;
                switch($this->req->campo){
                    case "imagen_cliente":
                        $this->tableLog->titulo = "Modificación de imagen cliente";
                        $this->tableLog->descripcion = "Para el usuario $client se actualiza la imagen";
                        break;
                    case "name":
                        $this->tableLog->titulo = "Modificación de nombres";
                        $nombres = $this->req->name;
                        $this->tableLog->descripcion = "Para el usuario $client se actualiza el nombre a: $nombres";
                    break;
                    case "num_user":
                        $this->tableLog->titulo = "Modificación numero de usuarios";
                        $apellidos = $this->req->num_user;
                        $this->tableLog->descripcion = "Para el usuario $client se actualiza el numero de usuarios a: $apellidos";
                    break;
                    case "num_project":
                        $this->tableLog->titulo = "Modificación numero de proyectos";
                        $correo = $this->req->num_project;
                        $this->tableLog->descripcion = "Para el usuario $client se actualiza el numero de proyectos a: $correo";
                    break;
                }
                break;

            case "destroy":
                $nom_usuario = SuperUsuarioController::listItem($this->req->id)->name;
                $this->tableLog->titulo = "Eliminación";
                $this->tableLog->descripcion = "usuario: $nom_usuario";
                break;

            case "status":
                $nom_usuario = SuperUsuarioController::listItem($this->req->id)->name;
                $statusNow = SuperUsuarioController::listItem($this->req->id)->active;
                if($statusNow == 1){
                    $this->tableLog->titulo = "Inactivación";
                    $this->tableLog->descripcion = "usuario: $nom_usuario";
                } else {
                    $this->tableLog->titulo = "Reactivación";
                    $this->tableLog->descripcion = "usuario: $nom_usuario";
                }

                break;

            case "destroyAsignationLab":
                $no_laboratorio = LaboratorioController::listByAsignacionUsuario($this->req->id)->no_laboratorio;
                $nom_laboratorio = LaboratorioController::listByAsignacionUsuario($this->req->id)->nom_laboratorio;
                $nom_usuario = UsuarioController::listByAsignacionUsuario($this->req->id)->nom_usuario;
                $this->tableLog->titulo = "Desvinculación de laboratorio";
                $this->tableLog->descripcion = "Para usuario: $nom_usuario se desvincula el laboratorio: $no_laboratorio - $nom_laboratorio";
                break;

            case "storeAsignationLab":
                $nom_usuario = UsuarioController::listItem($this->req->id_usuario)->nom_usuario;
                $cadenaLabs = "";

                for($i=0; $i<sizeof($this->req->id_laboratorio); $i++){
                    $no_laboratorio = LaboratorioController::listItem($this->req->id_laboratorio[$i])->no_laboratorio;
                    $nom_laboratorio = LaboratorioController::listItem($this->req->id_laboratorio[$i])->nom_laboratorio;
                    if($i == 0){ // Si es la primera vuelta
                        $cadenaLabs = $no_laboratorio . " - " . $nom_laboratorio;
                    } else {
                        $cadenaLabs = $cadenaLabs . ",  " . $no_laboratorio . " - " . $nom_laboratorio;
                    }
                }
                $this->tableLog->titulo = "Vinculación de laboratorio";
                $this->tableLog->descripcion = "Para usuario: $nom_usuario se vincula: $cadenaLabs";
                break;
        }


        $this->tableLog->tabla = 'Usuario';
        $this->tableLog->save();
    }
}
