<?php

namespace App\Http\Controllers;

use App\Models\Turma;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class TurmasController extends Controller
{
    public function index()
    {

        $turmas = Turma::all();

        return view('escolas.turmas', compact('turmas'));
    }

    public function createOrUpdate(Request $request)
    {
        $turma = Turma::where('nome', '=', $request->turma_nome)->count();
        if ($turma == 0) {
            try {
                $turma = new Turma();
                $turma->id_escola = $request->id_escola;
                $turma->nome = $request->turma_nome;
                $turma->descricao = $request->turma_descricao;
                $turma->id_whatsapp = $request->id_whatsapp;
                $turma->save();
                return redirect()->route('turmas')->with('success', 'Turma Criada|Atualizada com sucesso.');
            } catch (\Throwable $th) {
                dd($th);
            }
        } else {
            try {
                Turma::where('nome', $request->turma_nome)->update([
                    'nome' => $request->turma_nome,
                    'descricao' => $request->turma_descricao,
                    'id_escola' => $request->id_escola,
                    'id_whatsapp' => $request->id_whatsapp,
                ]);
                return redirect()->route('turmas')->with('success', 'Turma Criada|Atualizada com sucesso.');
            } catch (\Throwable $th) {
                //throw $th;
            }
        }
    }

    public function detalhes($id)
    {
        $turma = Turma::findOrFail($id);
        return view('escolas.Turma_detalhes', compact('turma'));
    }

    public function byEscola(Request $request, $escolaId)
    {
        // Se você tem multi-tenant e o usuário NÃO é super admin,
        // é boa prática garantir que ele só consulte escola permitida.
        $user = auth()->user();

        if (!$user->is_super_admin) {
            // se você usa pivot user_escolas:
            $allowed = $user->escolas()->where('escolas.id', $escolaId)->exists();
            if (!$allowed) {
                abort(403);
            }
        }

        $turmas = Turma::query()
            ->where('id_escola', $escolaId)
            ->orderBy('nome')
            ->get(['id', 'nome']);

        return response()->json($turmas);
    }
}
