/home2/mshostin/farms.ms-hostingladz.com/routes/web.php
<?php

use App\Http\Controllers\Animal\AnimalDiseaseController;
use App\Http\Controllers\Animal\AnimalHealthCheckController;
use App\Http\Controllers\Animal\AnimalReproductionController;
use App\Http\Controllers\Animal\AnimalTreatmentController;
use App\Http\Controllers\Animal\AnimalVaccinationController;
use App\Http\Controllers\Animal\CalfController;
use App\Http\Controllers\Animal\FeedInventoryController;
use App\Http\Controllers\Animal\MilkProductionController;
use App\Http\Controllers\AnimalController;
use App\Http\Controllers\Auth\OtpController;
use App\Http\Controllers\Backend\AdminController;
use App\Http\Controllers\Backend\BlogController as BackendBlogController;
use App\Http\Controllers\Backend\PermissionController;
use App\Http\Controllers\Backend\RoleController;
use App\Http\Controllers\Backend\UserManagementController;
use App\Http\Controllers\Backend\UserTrustedIpController;
use App\Http\Controllers\CategoryController;
use App\Http\Controllers\CityController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\FarmController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\StateController;
use App\Http\Controllers\SubcategoryController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return redirect()->route('dashboard');
})->name('home');

Route::view('/contact', 'site.contact')->name('contact');

Route::get('/thank-you', function () {
    return view('frontend.thankyou');
})->name('frontend.thankyou');

Route::get('/verify-otp', [OtpController::class, 'showVerifyForm'])->name('verify.otp');
Route::post('/verify-otp', [OtpController::class, 'verifyOtp'])->name('verify.otp.post');
Route::get('/resend-otp', [OtpController::class, 'resendOtp'])->name('resend.otp');

// 🔐 Auth & Profile
// Route::middleware(['auth', 'check_active', 'otp.verified'])->group(function () {
Route::middleware(['auth', 'check_active'])->group(function () {
    // Route::get('/dashboard', fn() => view('dashboard.index'))->middleware('verified')->name('dashboard');
    Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');

    Route::resource('trusted-ips', UserTrustedIpController::class)->except(['show']);

    Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
    Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update');
    Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');

    Route::resource('categories', CategoryController::class);
    Route::resource('subcategories', SubcategoryController::class);
    Route::get('/get_subcategories_by_category/{category_id}', [SubcategoryController::class, 'getSubcategories'])->name('subcategories.by.category');

    // Route::middleware(['admin'])->group(function () {
    Route::get('/users', [UserManagementController::class, 'allUsers'])->name('dashboard.users.index');
    Route::get('/users/create', [UserManagementController::class, 'userCreate'])->name('dashboard.users.create');
    Route::post('/users', [UserManagementController::class, 'userStore'])->name('dashboard.users.store');
    Route::delete('/users/{id}', [UserManagementController::class, 'userDestroy'])->name('dashboard.users.destroy');
    Route::post('{user}/toggle-active', [UserManagementController::class, 'toggleActive'])->name('users.toggleActive');
    Route::post('{user}/force-logout', [UserManagementController::class, 'forceLogout'])->name('users.forceLogout');

    Route::get('/activity_logs', [AdminController::class, 'activityLogs'])->name('view.activity_logs');

    Route::resource('roles', RoleController::class);

    Route::resource('permissions', PermissionController::class);
    // });

    Route::get('/users/{user}', [UserManagementController::class, 'show'])->name('users.show');
    Route::get('/users/{user}/edit', [UserManagementController::class, 'userEdit'])->name('dashboard.users.edit');
    Route::put('/users/{id}', [UserManagementController::class, 'userUpdate'])->name('dashboard.users.update');

    Route::resource('blogs', BackendBlogController::class);

    // Farm
    Route::resource('farms', FarmController::class);

    // Animal
    Route::resource('animals', AnimalController::class);

    // Milk Production
    Route::resource('milk_productions', MilkProductionController::class)->shallow();

    // Reproduction
    Route::resource('reproductions', AnimalReproductionController::class)->shallow();

    // Calves
    Route::resource('calves', CalfController::class)->shallow();

    // Health Checks
    Route::resource('health_checks', AnimalHealthCheckController::class)->shallow();

    // Vaccinations
    Route::resource('vaccinations', AnimalVaccinationController::class)->shallow();

    // Treatments
    Route::resource('treatments', AnimalTreatmentController::class)->shallow();

    // Diseases
    Route::resource('diseases', AnimalDiseaseController::class)->shallow();

    // Feed Inventory (linked via farm)
    Route::resource('feed_inventories', FeedInventoryController::class)->shallow();

    Route::resource('states', StateController::class);

    Route::get('/animal/{animal}/{panel}', [AnimalController::class, 'loadSubpanel'])
        ->name('animals.subpanel');

    Route::resource('cities', CityController::class);

    // Milk Sales
    Route::resource('milk_sales', \App\Http\Controllers\MilkSaleController::class);

    // Vendors
    Route::resource('vendors', \App\Http\Controllers\VendorController::class);

    // Global Settings
    Route::get('/settings', [\App\Http\Controllers\GlobalSettingController::class, 'index'])->name('settings.index');
    Route::put('/settings', [\App\Http\Controllers\GlobalSettingController::class, 'update'])->name('settings.update');

    // Reports
    Route::get('/reports/production', [\App\Http\Controllers\ReportController::class, 'milkProduction'])->name('reports.production');
    Route::get('/reports/sales', [\App\Http\Controllers\ReportController::class, 'milkSales'])->name('reports.sales');

});

require __DIR__.'/auth.php';

// Route::get('/categories', [CategoryController::class, 'index'])
//     ->middleware('permission:view-categories');

//     Route::get('/dashboard', fn() => view('dashboard'))
//     ->middleware('role:admin|editor');

//     Route::get('/categories', [CategoryController::class, 'index'])
//     ->middleware('role_or_permission:admin|editor,view_categories|edit_categories');