import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../wayfinder'
import auctions from './auctions'
import users from './users'
import agents from './agents'
import bids from './bids'
import pointTransactions from './point-transactions'
import paystackTransactions from './paystack-transactions'
import reviews from './reviews'
import rewardsConfig from './rewards-config'
import metrics from './metrics'
import activityLog from './activity-log'
/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
export const dashboard = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dashboard.url(options),
    method: 'get',
})

dashboard.definition = {
    methods: ["get","head","post","put","patch","delete","options"],
    url: 'https://bidora.com.ng/admin',
} satisfies RouteDefinition<["get","head","post","put","patch","delete","options"]>

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.url = (options?: RouteQueryOptions) => {
    return dashboard.definition.url + queryParams(options)
}

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dashboard.url(options),
    method: 'get',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: dashboard.url(options),
    method: 'head',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: dashboard.url(options),
    method: 'post',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.put = (options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: dashboard.url(options),
    method: 'put',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.patch = (options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: dashboard.url(options),
    method: 'patch',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.delete = (options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: dashboard.url(options),
    method: 'delete',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboard.options = (options?: RouteQueryOptions): RouteDefinition<'options'> => ({
    url: dashboard.url(options),
    method: 'options',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
const dashboardForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url(options),
    method: 'get',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url(options),
    method: 'get',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: dashboard.url(options),
    method: 'post',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.put = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PUT',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.patch = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.delete = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'DELETE',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \Illuminate\Routing\RedirectController::__invoke
* @see vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php:19
* @route 'https://bidora.com.ng/admin'
*/
dashboardForm.options = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'OPTIONS',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

dashboard.form = dashboardForm

const admin = {
    auctions: Object.assign(auctions, auctions),
    users: Object.assign(users, users),
    agents: Object.assign(agents, agents),
    bids: Object.assign(bids, bids),
    pointTransactions: Object.assign(pointTransactions, pointTransactions),
    paystackTransactions: Object.assign(paystackTransactions, paystackTransactions),
    reviews: Object.assign(reviews, reviews),
    rewardsConfig: Object.assign(rewardsConfig, rewardsConfig),
    metrics: Object.assign(metrics, metrics),
    activityLog: Object.assign(activityLog, activityLog),
    dashboard: Object.assign(dashboard, dashboard),
}

export default admin