<?php

use App\Http\Controllers\CompanyController;
use App\Http\Controllers\ContactConfirmController;
use App\Http\Controllers\ForumController;
use App\Http\Controllers\MattockBlogController;
use App\Http\Controllers\PipopaBlogController;
use App\Http\Controllers\SitemapController;
use App\Http\Controllers\PipopaSitemapController;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;

Route::get('/', function () {
	return Inertia::render('Home');
})->name('home');

Route::get('/blog/', [MattockBlogController::class, 'index'])->name('blog');

Route::group(['prefix' => 'blog'], function () {
	Route::get('/ai-chatbot/', function () {
		return Inertia::render('pipopa/Index');
	})->name('pipopa.top');
	
	Route::group(['prefix' => 'ai-chatbot'], function () {
		Route::get('/features/', function () {
			return Inertia::render('pipopa/Features');
		})->name('pipopa.features');
		
		Route::get('/pricing/', function () {
			return Inertia::render('pipopa/Pricing');
		})->name('pipopa.pricing');
		
		Route::get('/chat-demo/', function () {
			return Inertia::render('pipopa/Demo');
		})->name('pipopa.demo');
		
		Route::get('/company/', function () {
			return Inertia::render('pipopa/Company');
		})->name('pipopa.company');
		
		Route::get('/contact/', function () {
			return Inertia::render('pipopa/Contact');
		})->name('pipopa.contact');
		
		Route::get('/help/', function () {
			return Inertia::render('pipopa/Help');
		})->name('pipopa.help');
		
		Route::get('/api/', function () {
			return Inertia::render('pipopa/API');
		})->name('pipopa.api');
		
		Route::get('/privacy/', function () {
			return Inertia::render('pipopa/Privacy');
		})->name('pipopa.privacy');
		
		Route::get('/terms/', function () {
			return Inertia::render('pipopa/Terms');
		})->name('pipopa.terms');
		
		Route::get('/security/', function () {
			return Inertia::render('pipopa/Security');
		})->name('pipopa.security');
		
		Route::get('/status/', function () {
			return Inertia::render('pipopa/Status');
		})->name('pipopa.status');
		
		Route::get('/careers/', function () {
			return Inertia::render('pipopa/Careers');
		})->name('pipopa.careers');
		
		Route::get('/doc/', function () {
			return Inertia::render('pipopa/Doc');
		})->name('pipopa.doc');
		
		Route::get('/articles/', [PipopaBlogController::class, 'index'])->name('pipopa.blog');
		
		Route::get('sitemap.xml', [PipopaSitemapController::class, 'index'])->name('pipopa.sitemap.index');
		Route::get('page-sitemap.xml', [PipopaSitemapController::class, 'pages'])->name('pipopa.sitemap.pages');
		Route::get('post-sitemap.xml', [PipopaSitemapController::class, 'posts'])->name('pipopa.sitemap.posts');
		
		Route::get('/category/{category3}/{category2}/{category1}/{category}/', [PipopaBlogController::class, 'category'])->name('pipopa.blog.category.level3');
		Route::get('/category/{category2}/{category1}/{category}/', [PipopaBlogController::class, 'category'])->name('pipopa.blog.category.level2');
		Route::get('/category/{category1}/{category}/', [PipopaBlogController::class, 'category'])->name('pipopa.blog.category.level1');
		Route::get('/category/{category}/', [PipopaBlogController::class, 'category'])->name('pipopa.blog.category');
		
		Route::get('/tag/{tag}/', [PipopaBlogController::class, 'tag'])->name('pipopa.blog.tag');
		
		Route::get('/{slug}/', [PipopaBlogController::class, 'show'])->name('pipopa.blog.detail');
	});
	
	Route::get('/category/{category3}/{category2}/{category1}/{category}/', [MattockBlogController::class, 'category'])->name('blog.category.level3');
	Route::get('/category/{category2}/{category1}/{category}/', [MattockBlogController::class, 'category'])->name('blog.category.level2');
	Route::get('/category/{category1}/{category}/', [MattockBlogController::class, 'category'])->name('blog.category.level1');
	Route::get('/category/{category}/', [MattockBlogController::class, 'category'])->name('blog.category');
	
	Route::get('/{category4}/{category3}/{category2}/{category1}/{category}/{slug}/', [MattockBlogController::class, 'show4'])->name('blog.detail4');
	Route::get('/{category3}/{category2}/{category1}/{category}/{slug}/', [MattockBlogController::class, 'show3'])->name('blog.detail3');
	Route::get('/{category2}/{category1}/{category}/{slug}/', [MattockBlogController::class, 'show2'])->name('blog.detail2');
	Route::get('/{category1}/{category}/{slug}/', [MattockBlogController::class, 'show1'])->name('blog.detail1');
	Route::get('/{category}/{slug}/', [MattockBlogController::class, 'show'])->name('blog.detail');
});

Route::get('/download/', function () {
	return Inertia::render('mattock/Download');
})->name('download');

// Forum routes
Route::get('/forum/', [ForumController::class, 'index'])->name('forum.index');
Route::get('/forum/category/', [ForumController::class, 'categories'])->name('forum.categories');
Route::get('/forum/category/{slug}/', [ForumController::class, 'categoryShow'])->name('forum.category.detail');
Route::get('/forum/detail/{slug}/', [ForumController::class, 'show'])->name('forum.show');

Route::middleware(['auth', 'verified'])->group(function () {
	Route::get('/forum/create/', [ForumController::class, 'create'])->name('forum.create');
	Route::post('/forum/', [ForumController::class, 'store'])->name('forum.store');
	Route::post('/forum/categories/', [ForumController::class, 'createCategory'])->name('forum.categories.store');
	Route::post('/forum/tags/', [ForumController::class, 'createTag'])->name('forum.tags.store');
	
	// User forum pages
	Route::get('/forum/user/posts/', [ForumController::class, 'userPosts'])->name('forum.user.posts');
	Route::get('/forum/user/commented/', [ForumController::class, 'userCommented'])->name('forum.user.commented');
	Route::get('/forum/user/following/', [ForumController::class, 'userFollowing'])->name('forum.user.following');
});

Route::get('/about/', function () {
	return Inertia::render('mattock/About');
})->name('about');

Route::get('/flow/', function () {
	return Inertia::render('mattock/Flow');
})->name('flow');

Route::get('/study/', function () {
	return Inertia::render('mattock/Study');
})->name('study');

Route::get('/reason/', function () {
	return Inertia::render('mattock/Reason');
})->name('reason');

Route::get('/company/', [CompanyController::class, 'index'])->name('company');

Route::get('/company/{id}/', [CompanyController::class, 'show'])->name('company.detail');

Route::get('/partner/', function () {
	return Inertia::render('mattock/Partner');
})->name('partner');

Route::get('/support/', function () {
	return Inertia::render('mattock/Support');
})->name('support');

Route::get('/service/about/', function () {
	return Inertia::render('mattock/Sample');
})->name('service.about');

Route::get('/consultation/', function () {
	return Inertia::render('mattock/Sample');
})->name('consultation');

Route::get('/consultation/faq/', function () {
	return Inertia::render('mattock/Sample');
})->name('consultation.faq');

Route::get('/resources/client-guide/', function () {
	return Inertia::render('mattock/Sample');
})->name('resources.client-guide');

Route::get('/column/glossary/', function () {
	return Inertia::render('mattock/Sample');
})->name('column.glossary');

Route::get('/column/webinar/', function () {
	return Inertia::render('mattock/Sample');
})->name('column.webinar');

// Contact form routes
Route::get('/contact/', function () {
	return Inertia::render('mattock/Contact');
})->name('contact');
Route::post('/contact/confirm', [ContactConfirmController::class, 'show'])->name('contact.confirm');
Route::get('/contact/confirm', [ContactConfirmController::class, 'show'])->name('contact.confirm.show');
Route::post('/contact/send', [ContactConfirmController::class, 'store'])->name('contact.confirm.store');

Route::get('/contact/send', function () {
	return redirect()->route('home');
})->name('contact.confirm.back');

// Sitemap routes
Route::group(['prefix' => 'blog'], function () {
	Route::get('/sitemap.xml', function () {
		return redirect()->route('sitemap.index');
	})->name('blog.sitemap');
	
	Route::get('sitemap_index.xml', [SitemapController::class, 'index'])->name('sitemap.index');
	Route::get('post-sitemap{page}.xml', [SitemapController::class, 'postsPaginated'])->name('sitemap.posts.paginated');
	Route::get('page-sitemap.xml', [SitemapController::class, 'pages'])->name('sitemap.pages');
	Route::get('category-sitemap.xml', [SitemapController::class, 'categories'])->name('sitemap.categories');
});

require __DIR__ . '/admin.php';
require __DIR__ . '/settings.php';
require __DIR__ . '/auth.php';
