<?php

namespace App\Http\Controllers\DirectorCurso;

use App\Http\Controllers\Controller;
use App\Model\Curso;
use App\Model\Especialidad;
use App\Model\Periodo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class CursoController extends Controller
{
    public function getIndex(){
        return view('pages.directorcarrera.cursos.index');
    }

    public function postIndex(Request $request){
        $cursos = Curso::join('ciclo_malla','ciclo_malla.id_curso','=','curso.id')
            ->join('malla','malla.id','=','ciclo_malla.id_malla')
            ->join('especialidad_periodo','especialidad_periodo.id','=','malla.id_especialidad_periodo')
            ->join('profesor','profesor.id_usuario','=','especialidad_periodo.id_director')
            ->where([
                ['profesor.id_usuario','=',Auth::user()->id],
                ['especialidad_periodo.id_especialidad','=',$request->id_especialidad],
                ['especialidad_periodo.id_periodo','=',$request->id_periodo]
            ])

            ->select('curso.nombre as nombre',
                'curso.codigo as codigo',
                'curso.temas as temas',
                'curso.creditos as creditos'
                )
            ->get();

        return response()->json(['data' => $cursos],200);

    }

    public function getPeriodo(){
        $periodo = Periodo::select('id','nombre')->get();
        $valid_tags = [];
        foreach ($periodo as $id => $tag) {
            $valid_tags[] = ['id' => $tag['id'], 'text' => $tag['nombre']];
        }
        return response()->json(['result' => $valid_tags],200);
    }

    public function postEspecialidades(Request $request)
    {
        try {

            $id = $request->id;

            $especialidades = Especialidad::join('especialidad_periodo', function ($join) use ($id) {
                $join->on('especialidad_periodo.id_especialidad', '=', 'especialidad.id')
                    ->where('especialidad_periodo.id_periodo', '=', $id);
            })->orderBy('especialidad.nombre')->select('especialidad.nombre', 'especialidad.id')->get();

            $valid_tags = [];
            foreach ($especialidades as $id => $tag) {
                $valid_tags[] = ['id' => $tag['id'], 'text' => $tag['nombre']];
            }
            return response()->json(['result' => $valid_tags], 200);

        } catch (\Exception $e) {
            return response()->json(['result' => ""], 500);
        }
    }
}
