<?php
require_once "./Controller/Database.php";
require_once "./Controller/Setting.php";

class Tecnologia extends BD {

    private $PARM;
    function __construct() {
        $this->PARM = new Setting();
    }

    public function GET() {
        $this->Permission();
        if($this->id==0){
            if($this->admin){
                $query = $this->consult("SELECT * FROM vunidades");
                $query->execute();    
            } else {
                $query = $this->consult("SELECT * FROM vunidades WHERE userid=? OR userid_organizacion=?");
                $query->execute([$this->userid,$this->userid]);
            }
            $result = $query->fetchAll(PDO::FETCH_ASSOC);
            $this->data = array(
                'result' => $result,
            );
            $this->httpHeaders = 200;
        } else {
            $query = $this->consult("SELECT * FROM vtic_equipamiento WHERE unidad=?");
            $query->execute([$this->id]);
            $equipamiento = $query->fetchAll(PDO::FETCH_ASSOC);
            $query = $this->consult("SELECT * FROM vtic_especializado WHERE unidad=?");
            $query->execute([$this->id]);
            $especializado = $query->fetchAll(PDO::FETCH_ASSOC);
            $this->data = array(
                'equipamiento' => $equipamiento,
                'especializado' => $especializado,
                'tipo_conexion' => $this->PARM->tipo_conexion(),
                'tipo_estacion_trabjo' => $this->PARM->tipo_estacion_trabjo(),
                'tipo_sistema_operativo' => $this->PARM->tipo_sistema_operativo(),
                'tipo_antiguedad' => $this->PARM->tipo_antiguedad(),
                'condicion_unidad' => $this->PARM->condicion_unidad(),               
            );
            $this->httpHeaders = 200;
        }
    }

    public function POST() {
        $this->Permission();
        $input = $this->input;
        switch ($input->caso) {
            case 'equipamiento':
                $dat = array(
                    ':unidad' => $input->unidad,
                    ':estacion_trabjo' => $input->estacion_trabjo->id,
                    ':sistema_operativo' => $input->sistema_operativo->id,
                    ':antiguedad' => $input->antiguedad->id,
                    ':conexion' => $input->conexion->id,
                    ':cantidad' => $input->cantidad,
                    ':created_by' => $this->userid,
                ); 
                $query = $this->consult('INSERT INTO tic_equipamiento 
                (unidad,estacion_trabjo,sistema_operativo,antiguedad,conexion,cantidad,created_by,created_at) 
                VALUES (:unidad,:estacion_trabjo,:sistema_operativo,:antiguedad,:conexion,:cantidad,:created_by,now())');
                if($query->execute($dat)){
                    $this->httpHeaders = 200;
                }
                break;
            case 'especializado':
                $dat = array(
                    ':unidad' => $input->unidad,
                    ':nombre' => $input->nombre,
                    ':marca' => $input->marca,
                    ':modelo' => $input->modelo,
                    ':cantidad' => $input->cantidad,
                    ':condicion' => $input->condicion->id,
                    ':created_by' => $this->userid,
                ); 
                $query = $this->consult('INSERT INTO tic_especializado 
                (unidad,nombre,marca,modelo,condicion,cantidad,created_by,created_at) 
                VALUES (:unidad,:nombre,:marca,:modelo,:condicion,:cantidad,:created_by,now())');
                if($query->execute($dat)){
                    $this->httpHeaders = 200;
                }
                break;
        }
            
    }

    public function Del() {
        $this->Permission();
        $input = $this->input;
        switch ($input->caso) {
            case 'equipamiento':
                $query = $this->consult('UPDATE tic_equipamiento SET edited_by=?, deleted_at=now() WHERE id=?');
                if($query->execute([$this->userid,$this->input->id])){ $this->httpHeaders = 200; }
                break;
            case 'especializado':
                $query = $this->consult('UPDATE tic_especializado SET edited_by=?, deleted_at=now() WHERE id=?');
                if($query->execute([$this->userid,$this->input->id])){ $this->httpHeaders = 200; }
                break;
        }
    }

}