<?php

use App\Http\Controllers\Entidade\Admin\AgentesPoliticosController;
use App\Http\Controllers\Entidade\Admin\ArquivoController;
use App\Http\Controllers\Entidade\Admin\ArquivosTipoController;
use App\Http\Controllers\Entidade\Admin\AssinantesController;
use App\Http\Controllers\Entidade\Admin\CargosController;
use App\Http\Controllers\Entidade\Admin\ComentariosController;
use App\Http\Controllers\Entidade\Admin\CovidController;
use App\Http\Controllers\Entidade\Admin\EntidadeController;
use App\Http\Controllers\Entidade\Admin\EsicController;
use App\Http\Controllers\Entidade\Admin\FaqCategoriasController;
use App\Http\Controllers\Entidade\Admin\FaqController;
use App\Http\Controllers\Entidade\Admin\FotosCategoriaController;
use App\Http\Controllers\Entidade\Admin\GaleriaFotosController;
use App\Http\Controllers\Entidade\Admin\HomeEntidadeController;
use App\Http\Controllers\Entidade\Admin\LicitacoesAnexosController;
use App\Http\Controllers\Entidade\Admin\LicitacoesController;
use App\Http\Controllers\Entidade\Admin\LoginController;
use App\Http\Controllers\Entidade\Admin\MenusController;
use App\Http\Controllers\Entidade\Admin\MergeDiarioController;
use App\Http\Controllers\Entidade\Admin\ModalidadesController;
use App\Http\Controllers\Entidade\Admin\MsPostController;
use App\Http\Controllers\Entidade\Admin\NoticiasController;
use App\Http\Controllers\Entidade\Admin\PaginasController;
use App\Http\Controllers\Entidade\Admin\ParceirosController;
use App\Http\Controllers\Entidade\Admin\PoliticasController;
use App\Http\Controllers\Entidade\Admin\RedesController;
use App\Http\Controllers\Entidade\Admin\SecretariasController;
use App\Http\Controllers\Entidade\Admin\SecretariosController;
use App\Http\Controllers\Entidade\Admin\SlidesController;
use App\Http\Controllers\Entidade\Admin\TransparenciasController;
use App\Http\Controllers\Entidade\Admin\UsuariosController;
use App\Http\Controllers\Entidade\Admin\VacinacaoController;
use App\Http\Controllers\Entidade\Admin\VideosCategoriaController;
use App\Http\Controllers\Entidade\Admin\VideosGaleriaController;
use App\Http\Controllers\Entidade\Admin\WordPressPostController;
use App\Http\Controllers\Entidade\Site\PublicacoesController;
use App\Http\Controllers\Entidade\Site\AcessoInformacaosController;
use App\Http\Controllers\Entidade\Site\AldirBlancController;
use App\Http\Controllers\Entidade\Site\CacsFundebController;
use App\Http\Controllers\Entidade\Site\DecretosController;
use App\Http\Controllers\Entidade\Site\DiarioOficialController;
use App\Http\Controllers\Entidade\Site\ESicsController;
use App\Http\Controllers\Entidade\Site\FotosController;
use App\Http\Controllers\Entidade\Site\GlossarioController;
use App\Http\Controllers\Entidade\Site\GovernoController;
use App\Http\Controllers\Entidade\Site\HomeSiteController;
use App\Http\Controllers\Entidade\Site\LaiController;
use App\Http\Controllers\Entidade\Site\LeisController;
use App\Http\Controllers\Entidade\Site\LicitacoesSiteController;
use App\Http\Controllers\Entidade\Site\MapaSiteController;
use App\Http\Controllers\Entidade\Site\NoticiasSiteController;
use App\Http\Controllers\Entidade\Site\OuvidoriaController;
use App\Http\Controllers\Entidade\Site\PaginaController;
use App\Http\Controllers\Entidade\Site\PauloGustavoController;
use App\Http\Controllers\Entidade\Site\PerguntasFrequentesController;
use App\Http\Controllers\Entidade\Site\SalaEmpreendedorController;
use App\Http\Controllers\Entidade\Site\SecretariasSiteController;
use App\Http\Controllers\Entidade\Site\SimbolosController;
use App\Http\Controllers\Entidade\Site\TransparenciaController;
use App\Http\Controllers\Entidade\Site\TransparenciaCovidController;
use App\Http\Controllers\Entidade\Site\VideosController;
use Illuminate\Support\Facades\Route;

Route::prefix('/')->group(function () {

    Route::get('/home', [HomeSiteController::class, 'index'])->name('site.index');
    Route::redirect('/', '/home', 301);
    Route::get('prefeitura', [HomeSiteController::class, 'prefeitura'])->name('site.prefeitura');
    Route::get('esic', [ESicsController::class, 'index'])->name('site.esic');
    Route::get('esic.pedido', [ESicsController::class, 'pedido'])->name('site.esic.pedido');
    Route::get('mapasite', [MapaSiteController::class, 'index'])->name('site.mapasite');
    Route::get('acessoainformacao', [AcessoInformacaosController::class, 'index'])->name('site.acessoainformacao');
    Route::get('secretarias', [SecretariasSiteController::class, 'index'])->name('site.secretarias');
    Route::get('governo', [GovernoController::class, 'index'])->name('site.governo');
    Route::get('lai', [LaiController::class, 'index'])->name('site.lai');
    Route::get('licitacoes', [LicitacoesSiteController::class, 'index'])->name('licitacoes.index');
    Route::get('noticias', [NoticiasSiteController::class, 'index'])->name('site.noticias.index');

    Route::post('/upload-image', [PaginasController::class, 'uploadImage'])->name('paginas.upload_image');

    Route::any('noticia/{slug}', [NoticiasSiteController::class, 'show'])->name('site.noticia.show');

    Route::get('glossario', [GlossarioController::class, 'index'])->name('site.glossario');
    Route::get('perguntasfrequentes', [PerguntasFrequentesController::class, 'index'])->name('site.perguntasfrequentes');
    Route::get('transparencia', [TransparenciaController::class, 'index'])->name('site.transparencia');

    /** Rotas de Diário Oficial */
    Route::get('diariooficial', [DiarioOficialController::class, 'index'])->name('site.diariooficial.index');
    Route::get('diariooficial/lei', [DiarioOficialController::class, 'lei'])->name('site.diariooficial.lei');
    Route::get('diariooficial/decretos', [DiarioOficialController::class, 'decretos'])->name('site.diariooficial.decretos');
    Route::get('diariooficial/contratos', [DiarioOficialController::class, 'contratos'])->name('site.diariooficial.contratos');
    Route::get('diariooficial/rreo', [DiarioOficialController::class, 'rreo'])->name('site.diariooficial.rreo');
    Route::get('diariooficial/rgf', [DiarioOficialController::class, 'rgf'])->name('site.diariooficial.rgf');
    Route::get('diariooficial/loa', [DiarioOficialController::class, 'loa'])->name('site.diariooficial.loa');
    Route::get('diariooficial/ldo', [DiarioOficialController::class, 'ldo'])->name('site.diariooficial.ldo');
    Route::get('diariooficial/ppa', [DiarioOficialController::class, 'ppa'])->name('site.diariooficial.ppa');
    Route::get('diariooficial/pca', [DiarioOficialController::class, 'pca'])->name('site.diariooficial.pca');
    Route::get('diariooficial/licitacoes', [DiarioOficialController::class, 'licitacoes'])->name('site.diariooficial.licitacoes');

    Route::post('diariooficial', [DiarioOficialController::class, 'buscar'])->name('site.diariooficial.buscar');
    
    Route::get('/decretos/{tipo?}', [DecretosController::class, 'index'])->name('site.decretos');
    

    Route::get('/leis/{tipo?}', [LeisController::class, 'index'])->name('site.leis');

    Route::get('videos', [VideosController::class, 'index'])->name('site.videos');
    Route::get('fotos', [FotosController::class, 'index'])->name('site.fotos');
    Route::get('simbolos', [SimbolosController::class, 'index'])->name('site.simbolos');

    Route::get('ouvidoria', [OuvidoriaController::class, 'index'])->name('site.ouvidoria');
    Route::get('aldirblanc', [AldirBlancController::class, 'index'])->name('site.aldirblanc');
    Route::get('paulogustavo', [PauloGustavoController::class, 'index'])->name('site.paulogustavo');
    Route::get('cacsfundeb', [CacsFundebController::class, 'index'])->name('site.cacsfundeb');
    Route::get('covid', [TransparenciaCovidController::class, 'index'])->name('site.covid');
    Route::get('empreendedor', [SalaEmpreendedorController::class, 'index'])->name('site.empreendedor');
    Route::get('politicas', [PoliticasController::class, 'index'])->name('site.politicas');

    Route::fallback([PaginaController::class, 'index']);
});


Route::prefix('admin')->group(function () {
    Route::get('/', [HomeEntidadeController::class, 'index'])->name('admin.index');

    Route::get('index', [HomeEntidadeController::class, 'index'])->name('admin.index');
    Route::resource('entidade', EntidadeController::class);
    Route::put('/entidade/{id_tce}/update', [EntidadeController::class, 'update'])->name('entidade.update');

    Route::resource('usuarios', UsuariosController::class);

    // Menu
    Route::resource('menus', MenusController::class);

    // Páginas
    Route::resource('paginas', PaginasController::class);

    // Cadastros
    Route::resource('secretarios', SecretariosController::class);
    Route::resource('secretarias', SecretariasController::class);

    // Notícias
    Route::resource('noticias', NoticiasController::class);
    Route::resource('comentarios', ComentariosController::class);

    Route::get('noticiaswp', [WordPressPostController::class, 'index'])->name('noticiaswp.index');
    // Rota para baixar arquivos em PDF (Diário Oficial)
    Route::get('baixarpdfs', [WordPressPostController::class, 'baixarpdfs'])->name('noticiaswp.baixarpdfs');


    // Rota para baixar arquivos de Publicações 
    Route::get('baixarpublicacoes', [WordPressPostController::class, 'baixarPublicacoes'])->name('noticiaswp.baixarpublicacoes');

    Route::get('noticiasms', [MsPostController::class, 'index'])->name('noticiasms.index');

    // Gestores
    Route::resource('cargos', CargosController::class);
    Route::resource('agentespoliticos', AgentesPoliticosController::class);

    Route::resource('redes', RedesController::class);
    Route::resource('slides', SlidesController::class);
    Route::resource('parceiros', ParceirosController::class);

    // FAQ
    Route::resource('faqcategorias', FaqCategoriasController::class);
    Route::resource('faq', FaqController::class);

    // Multimídias
    Route::resource('fotoscategoria', FotosCategoriaController::class);
    Route::resource('fotosgaleria', GaleriaFotosController::class);
    Route::resource('videoscategoria', VideosCategoriaController::class);
    Route::resource('videosgaleria', VideosGaleriaController::class);

    // Transparências
    Route::resource('transparencias', TransparenciasController::class);
    Route::resource('covid', CovidController::class);
    Route::resource('vacinacao', VacinacaoController::class);

    // Arquivos
    Route::resource('arquivostipo', ArquivosTipoController::class);
    Route::resource('arquivos', ArquivoController::class);
    Route::post('arquivos/merge-diarios', [ArquivoController::class, 'mergeDiarios'])->name('arquivos.merge-diarios');


    // e-Sics
    Route::resource('esics', EsicController::class);

    // Licitacoes
    Route::resource('modalidades', ModalidadesController::class);
    Route::resource('licitacoes', LicitacoesController::class);
    Route::resource('licitacoesanexos', LicitacoesAnexosController::class);

    // Assinantes
    Route::resource('assinantes', AssinantesController::class);

    /* Rotas de Login/Logout */
    Route::get('login', [LoginController::class, 'login'])->name('admin.login');
    Route::post('login', [LoginController::class, 'loginEntidadeAction'])->name('loginEntidadeAction');
    Route::get('logout', [LoginController::class, 'logout'])->name('logoutEntidade');
});
