<?php

use App\Http\Controllers\Saude\Fibromialgia\{
  FibromialgiaController,
  FibromialgiaDadosPessoaisController,
  FibromialgiaArquivoController,
  FibromialgiaEnderecoController,
  FibromialgiaDocumentosController,
  FibromialgiaCarteirinhaController,
  FibromialgiaObservacoesController,
  FibromialgiaChamadosAbertosController,
  FibromialgiaChamadosFechadosController,
  Perfil\FibromialgiaPerfilController,
  Perfil\FibromialgiaPerfilDadosUsuarioController,
  Perfil\FibromialgiaPerfilDadosPessoaisController,
  Perfil\FibromialgiaPerfilDocumentosController,
  Perfil\FibromialgiaPerfilEnderecoController,
  Perfil\FibromialgiaPerfilArquivosController,
  Perfil\FibromialgiaPerfilCarteirinhaController,
};

use Illuminate\Support\Facades\Route;

Route::view('pacientes/fibromialgia', "paginas.saude.fibromialgia")->name("saude.fibromialgia");
Route::view('cadastro/fibromialgia', "paginas.saude.fibromialgia")->name("saude.fibromialgia");

Route::group(['prefix' => 'conta-angra/fibromialgia', 'as' => 'admin.saude.', 'middleware' => ['auth']], function () {
    Route::resource('/', FibromialgiaPerfilController::class)->names('fibromialgia.perfil')
            ->parameters(['' => 'fibromialgia']);

    Route::get('/dados/usuario', [FibromialgiaPerfilDadosUsuarioController::class, "index"])
            ->name('fibromialgia.perfil.dadosUsuario');
    Route::post('/dados/{fibromialgia}/usuario/{user}', [FibromialgiaPerfilDadosUsuarioController::class, "update"])
            ->name('fibromialgia.perfil.dadosUsuarioUpdate');

    Route::get('/dados/pessoais', [FibromialgiaPerfilDadosPessoaisController::class, "index"])
            ->name('fibromialgia.perfil.dadosPessoais');
    Route::post('/dados/{fibromialgia}/pessoais/{pessoa}', [FibromialgiaPerfilDadosPessoaisController::class, "update"])
            ->name('fibromialgia.perfil.dadosPessoaisUpdate');

    Route::get('/meus/documentos', [FibromialgiaPerfilDocumentosController::class, "index"])
            ->name('fibromialgia.perfil.documentos');
    Route::post('/{fibromialgia}/meus/documentos', [FibromialgiaPerfilDocumentosController::class, "update"])
            ->name('fibromialgia.perfil.documentosUpdate');

    Route::get('/meu/endereco', [FibromialgiaPerfilEnderecoController::class, "index"])
            ->name('fibromialgia.perfil.endereco');
    Route::post('/meu/{fibromialgia}/endereco/{endereco}', [FibromialgiaPerfilEnderecoController::class, "update"])
            ->name('fibromialgia.perfil.enderecoUpdate');

    Route::get('/meus/arquivos', [FibromialgiaPerfilArquivosController::class, "index"])
            ->name('fibromialgia.perfil.arquivos');
    Route::post('/meus/{fibromialgia}/arquivos', [FibromialgiaPerfilArquivosController::class, "update"])
            ->name('fibromialgia.perfil.arquivosUpdate');

    Route::get('/minha/carteirinha', [FibromialgiaPerfilCarteirinhaController::class, "index"])
            ->name('fibromialgia.perfil.carteirinha');
    Route::post('/minha/{fibromialgia}/carteirinha', [FibromialgiaPerfilCarteirinhaController::class, "update"])
            ->name('fibromialgia.perfil.carteirinhaUpdate');
});

Route::group(['prefix' => 'conta-angra/fibromialgia', 'as' => 'admin.saude.', 'middleware' => ['auth', 'contaAngra']], function () {
    Route::resource('/', FibromialgiaPerfilController::class)->names('fibromialgia.perfil')
            ->parameters(['' => 'fibromialgia']);
});

Route::group(['prefix' => 'admin/saude', 'as' => 'admin.saude.', 'middleware' => ['auth','fibromialgia']], function () {

    // Rotas específicas ANTES do resource para evitar conflito com {fibromialgia}
    Route::match(["get", "post"], 'fibromialgia/verify', [FibromialgiaController::class, "verify"])->name("fibromialgia.verify");

    Route::match(['get', 'post'], 'fibromialgia/relatorio', [FibromialgiaController::class, 'relatorio'])
        ->name('fibromialgia.relatorio');

    Route::match(['get', 'post'], 'fibromialgia/carteirinhas', [FibromialgiaController::class, 'carteirinhas'])
        ->name('fibromialgia.carteirinhas');

    Route::get("fibromialgia/chamados/abertos", [FibromialgiaChamadosAbertosController::class, "index"])->name("fibromialgia.chamados.abertos");
    Route::get("fibromialgia/chamados/fechados", [FibromialgiaChamadosFechadosController::class, "index"])->name("fibromialgia.chamados.fechados");
    Route::get("fibromialgia/chamados/{chamado}/show", [FibromialgiaChamadosAbertosController::class, "show"])->name("fibromialgia.chamados.show");
    Route::post('fibromialgia/chamados/abertos/{chamado}/nova/mensagem', [FibromialgiaChamadosAbertosController::class, 'novaMensagem'])
            ->name('fibromialgia.chamados.novaMensagem');

    // Resource DEPOIS das rotas específicas
    Route::resource('fibromialgia', FibromialgiaController::class)
            ->names("fibromialgia")
            ->parameters(['fibromialgia' => 'fibromialgia']);

    // Rotas com parâmetro {fibromialgia}
    Route::get("fibromialgia/{fibromialgia}/dados/pessoais", [FibromialgiaDadosPessoaisController::class, "index"])->name("fibromialgia.dadosPessoais");
    Route::post("fibromialgia/{fibromialgia}/dados/pessoais", [FibromialgiaDadosPessoaisController::class, "update"])->name("fibromialgia.dadosPessoais.update");

    Route::get("fibromialgia/{fibromialgia}/documentos", [FibromialgiaDocumentosController::class, "index"])->name("fibromialgia.documentos");
    Route::post("fibromialgia/{fibromialgia}/documentos", [FibromialgiaDocumentosController::class, "update"])->name("fibromialgia.documentos.update");

    Route::get("fibromialgia/{fibromialgia}/endereco", [FibromialgiaEnderecoController::class, "index"])->name("fibromialgia.endereco");
    Route::post("fibromialgia/endereco/{fibromialgia}/{endereco?}", [FibromialgiaEnderecoController::class, "update"])->name("fibromialgia.endereco.update");

    Route::get("fibromialgia/{fibromialgia}/arquivos", [FibromialgiaArquivoController::class, "index"])->name("fibromialgia.arquivos");
    Route::post("fibromialgia/{fibromialgia}/arquivos", [FibromialgiaArquivoController::class, "update"])->name("fibromialgia.arquivos.update");

    Route::get("fibromialgia/{fibromialgia}/carteirinha", [FibromialgiaCarteirinhaController::class, "index"])->name("fibromialgia.carteirinha");
    Route::post("fibromialgia/{fibromialgia}/carteirinha", [FibromialgiaCarteirinhaController::class, "update"])->name("fibromialgia.carteirinha.update");

    Route::get("fibromialgia/{fibromialgia}/anotacoes", [FibromialgiaObservacoesController::class, "index"])->name("fibromialgia.anotacoes");
    Route::post("fibromialgia/{fibromialgia}/anotacoes", [FibromialgiaObservacoesController::class, "update"])->name("fibromialgia.anotacoes.update");

    Route::post('fibromialgia/{fibromialgia}/chamados/create', [FibromialgiaChamadosAbertosController::class, 'createChamado'])
            ->name('fibromialgia.chamados.create');

    Route::delete('fibromialgia/{fibromialgia}/destroy/{label}/arquivo', [FibromialgiaController::class, 'destroyArquivo'])
        ->name('fibromialgia.destroyArquivo');

});
