<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Inertia\Inertia;
use App\Models\User;
use App\Models\Tenant;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Str;


class TenantController extends Controller
{

    public function create()
    {
        // Renderiza a view Vue (vamos criar no passo 4)
        return Inertia::render('Admin/Tenants/Create');
    }
    /**
     * Processa o salvamento
     */
    public function store(Request $request)
    {
        if (Auth::user()->role !== 'admin') {
            abort(401, 'Não autorizado a realizar tal ação.');
        }
        $request->validate([
            'name' => 'required|string|max:255|unique:tenants,name',
        ]);

        do {
            $apiKey = 'sk_' . Str::random(60);
        } while (Tenant::where('api_key', $apiKey)->exists());

        Tenant::create([
            'name' => $request->name,
            'api_key' => $apiKey,
        ]);

        // MUDANÇA AQUI: back() em vez de route('dashboard')
        // O preserveScroll no Vue garante que a tela não pule.
        return back()->with('message', 'Tenant criado com sucesso! Chave gerada.');
    }
}
