Your IP : 172.16.2.252


Current Path : /var/app/current/fukushisurvey.jp/quill/routes/
Upload File :
Current File : /var/app/current/fukushisurvey.jp/quill/routes/web.php

<?php

use App\Http\Controllers\FrontendController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\InvoiceController;
use App\Http\Controllers\SurveyController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\OfficeController;
use App\Http\Controllers\CorporationController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\AverageReportController;
use App\Http\Controllers\LpController;
use App\Http\Controllers\CompareController;
use App\Http\Controllers\CorporationReportController;
use App\Http\Controllers\SubscriptionController;
use App\Http\Controllers\UserController;

Auth::routes();

Route::get('/home', [HomeController::class, 'index'])->name('home');
Route::get('/', [LpController::class, 'index'])->name('lp');
Route::get('/sample/{filename}', [LpController::class, 'downloadPdf'])->name('lp.sampleDownload');

// Route for office login
Route::prefix('office')->group(function () {
    Route::get('login', [LoginController::class, 'showOfficeLoginForm'])->name('showOfficeLoginForm');
    Route::post('login', [LoginController::class, 'login'])->name('office.login');
});

// Route for corporation login
Route::prefix('corporation')->group(function () {
    Route::get('login', [LoginController::class, 'showCorporationLoginForm'])->name('showCorporationLoginForm');
    Route::post('login', [LoginController::class, 'login'])->name('corporation.login');
});

// Route for master login
Route::get('login', [LoginController::class, 'showLoginForm']);
Route::post('login', [LoginController::class, 'login'])->name('login');

// Redirect to login for requests to master/login
Route::get('master/login', function () {
    return redirect()->route('login');
});

// Route for survey
Route::get('surveys/getSchema/{id}', [SurveyController::class, 'getSchema'])->name('survey.getSchema');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/account-inactive', [UserController::class, 'inactive'])->name('accountInactive');

    Route::group(['middleware' => ['isUserActive']], function () {

        // Route for office user registration
        Route::group(['middleware' => 'can:createOffice,App\Models\User'], function () {
            Route::get('/office/create', [RegisterController::class, 'showOfficeRegistrationForm'])->name('office.register');
            Route::post('/office/create', [RegisterController::class, 'createOffice'])->name('office.register.submit');
        });

        Route::group(['middleware' => 'can:viewOffice,App\Models\User'], function () {
            Route::get('/office/list', [OfficeController::class, 'index'])->name('office.index');
        });

        Route::group(['middleware' => 'can:editOffice,App\Models\User'], function () {
            Route::get('/office/edit/{id}', [OfficeController::class, 'edit'])->name('office.edit');
        });

        // Route for corporation user registration
        Route::group(['middleware' => 'can:createCorp,App\Models\User'], function () {
            Route::get('/corporation/create', [RegisterController::class, 'showCorporationRegistrationForm'])->name('corporation.register');
            Route::post('/corporation/create', [RegisterController::class, 'createCorporation'])->name('corporation.register.submit');
        });

        Route::group(['middleware' => 'can:viewCorp,App\Models\User'], function () {
            Route::get('/corporation/list', [CorporationController::class, 'index'])->name('corporation.index');
        });

        Route::group(['middleware' => 'can:editCorp,App\Models\User'], function () {
            Route::get('/corporation/edit/{id}', [CorporationController::class, 'edit'])->name('corporation.edit');
            Route::post('/corporation/update-plan-and-office-count/{id}', [CorporationController::class, 'updatePlanAndOfficeCount'])->name('corporation.updatePlanAndOfficeCount');
            Route::post('corporation/{id}/approve-subscription', [CorporationController::class, 'approveSubscription'])->name('corporation.approve-subscription');
            Route::post('corporation/{id}/reject-subscription', [CorporationController::class, 'rejectSubscription'])->name('corporation.reject-subscription');
        });

        Route::group(['middleware' => 'check.role:2'], function () {
            Route::post('/corporation/setting/{id}/request-plan-change', [CorporationController::class, 'requestPlanChange'])->name('corporation.requestPlanChange');
            Route::post('/corporation/setting/{id}/future-plan-change', [CorporationController::class, 'requestFuturePlanChange'])->name('corporation.requestFuturePlanChange');
        });

        //corporation setting
        Route::group(['middleware' => 'check.role:1,2'], function () {
            Route::get('/corporation/setting/{id}', [CorporationController::class, 'setting'])->name('corporation.setting');

            // Get the current selected plan price
            Route::get('/corporation/settings/plan/{subscription_id}/{user_limit}', [CorporationController::class, 'currentSelectedPlanPrice'])->name('corporation.currentSelectedPlanPrice');

            // subscription histories
            Route::get('/subscription-history',[SubscriptionController::class,'index'])->name('corporation.subscriptionHistory');
        });

        //office setting
        Route::group(['middleware' => 'check.role:3'], function () {
            Route::get('/office/setting/{id}', [OfficeController::class, 'setting'])->name('office.setting');
        });

        //update user(both corporation and office)
        Route::post('/user/{id}', [OfficeController::class, 'update'])->name('user.update');



        Route::prefix('survey')->group(function () {
            Route::get('/qr-generator', [SurveyController::class, 'qrGenerator'])->name('survey.qrGenerator');

            // report
            Route::get('/report', [SurveyController::class, 'report'])->name('survey.report');
            Route::get('/report/{survey}/charts', [SurveyController::class, 'chart'])->name('survey.charts');
            Route::get('/report/{survey}/tables', [SurveyController::class, 'table'])->name('survey.tables');
            // Route::get('/report/{survey}/preview', [SurveyController::class, 'reportPreview'])->name('survey.reportPreview');
            Route::get('/report/{survey}/preview', [SurveyController::class, 'reportPreviewNew'])->name('survey.reportPreview');
            Route::get('/report/{survey}/downloadpdf', [SurveyController::class, 'downloadPdf'])->name('survey.reportPdfDownload');
            Route::get('/pdfzip-download', [SurveyController::class, 'pdfzipDownload'])->name('survey.pdfzipDownload');

            // survey-details seen only by master
            Route::get('/{survey}/details', [SurveyController::class, 'details'])->name('survey.details');
            Route::get('/{survey}/details/{result}/see-answers', [SurveyController::class, 'seeAnswer'])->name('survey.seeAnswer');

            // survey comparison
            Route::get('/corporate-compare', [CompareController::class, 'corporateCompare'])->name('survey.corporateCompare');
            Route::get('/office-compare', [CompareController::class, 'officeCompare'])->name('survey.officeCompare');

            // survey report creation
            Route::group(['middleware' => 'check.role:2'], function () {
                Route::get('/avg-report', [AverageReportController::class, 'index'])->name('survey.averageReport');
                Route::get('/avg-report-preview', [AverageReportController::class, 'preview'])->name('survey.averageReportPreview');
                Route::get('/avg-report/downloadpdf', [AverageReportController::class, 'downloadPdf'])->name('survey.averageReportPdfDownload');
            });

            // survey
            Route::get('/list', [SurveyController::class, 'index'])->name('survey.index');
            Route::get('/create', [SurveyController::class, 'create'])->name('survey.create');
            Route::get('/preview', [SurveyController::class, 'preview'])->name('survey.preview');
            Route::get('/{survey}/edit', [SurveyController::class, 'edit'])->name('survey.edit');
            // Route::delete('/{survey}',[SurveyController::class,'destroy'])->name('survey.destroy');
            // Route::resource('survey', SurveyController::class);
        });

        //invoice
        Route::get('/invoice/list', [InvoiceController::class, 'index'])->name('invoice.index');
        Route::get('/invoice/download/{id}', [InvoiceController::class, 'downloadInvoice'])->name('invoice.downloadInvoice');
        Route::get('/receipt/download/{id}', [InvoiceController::class, 'downloadReceipt'])->name('invoice.downloadReceipt');
        Route::group(['middleware' => 'check.role:2,3'], function () {
            Route::get('/invoice/{id}', [InvoiceController::class, 'show'])->name('invoice.detail');
        });
    });
});

// Application form
Route::get('/registration', [CorporationController::class, 'showNoAuthRegistrationForm'])->name('registration.noauth');
Route::get('/registration/confirmation', [CorporationController::class, 'showConfirmation'])->name('registration.confirmation');
Route::get('/registration/completed', [CorporationController::class, 'submitCorporation'])->name('registration.complete');

// FrontEnd
Route::get('/{slug}/login', [FrontendController::class, 'login'])->name('access-password');
Route::post('/{slug}/login', [FrontendController::class, 'loginAction']);

Route::get('/{slug}/syoukai', [FrontendController::class, 'login2'])->name('fsurvey.info');
Route::post('/{slug}/syoukai', [FrontendController::class, 'login2Action']);

Route::get('/{slug}/completed', [FrontendController::class, 'completed'])->name('fsurvey.completed');
Route::get('/{slug}/completed/download-pdf', [FrontendController::class, 'downloadCompletedPdf'])->name('fsurvey.completedPdfDownload');
Route::get('/{slug}/fulfilled', [FrontendController::class, 'fulfilled'])->name('fsurvey.fulfilled');
Route::get('/{slug}/not-started', [FrontendController::class, 'notStarted'])->name('fsurvey.notStarted');

Route::get('/privacy-policy', [LpController::class, 'privacy'])->name('lp.privacy');
Route::get('/terms-conditions', [LpController::class, 'termsAndConditions'])->name('lp.terms');
Route::get('/environment', [LpController::class, 'environment'])->name('lp.environment');
Route::get('/basic-contract', [LpController::class, 'basicContract'])->name('lp.contract');

Route::group(['middleware' => 'SurveyAccess'], function () {
    Route::get('/{slug}/preview', [FrontendController::class, 'preview'])->name('fsurvey.preview');
    Route::post('/{slug}/store-survey', [FrontendController::class, 'storeSurvey'])->name('fsurvey.storeSurvey');
    Route::get('/{slug}', [FrontendController::class, 'index'])->name('fsurvey.index');
});

// Correct the Livewire path for sub-folder host
$path = parse_url(Request::root(), PHP_URL_PATH);

Livewire::setScriptRoute(function ($handle) use ($path) {
    return Route::get($path . '/livewire/livewire.min.js', $handle);
});

Livewire::setUpdateRoute(function ($handle) use ($path) {
    return Route::post($path . '/livewire/update', $handle);
});