import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../../wayfinder'
/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
export const index = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: index.url(options),
    method: 'get',
})

index.definition = {
    methods: ["get","head"],
    url: '/users/index',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
index.url = (options?: RouteQueryOptions) => {
    return index.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
index.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
index.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: index.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
const indexForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
indexForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::index
* @see app/Http/Controllers/Admin/CustomerController.php:29
* @route '/users/index'
*/
indexForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: index.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

index.form = indexForm

/**
* @see \App\Http\Controllers\Admin\CustomerController::grid
* @see app/Http/Controllers/Admin/CustomerController.php:41
* @route '/users/grid'
*/
export const grid = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: grid.url(options),
    method: 'post',
})

grid.definition = {
    methods: ["post"],
    url: '/users/grid',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::grid
* @see app/Http/Controllers/Admin/CustomerController.php:41
* @route '/users/grid'
*/
grid.url = (options?: RouteQueryOptions) => {
    return grid.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::grid
* @see app/Http/Controllers/Admin/CustomerController.php:41
* @route '/users/grid'
*/
grid.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: grid.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::grid
* @see app/Http/Controllers/Admin/CustomerController.php:41
* @route '/users/grid'
*/
const gridForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: grid.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::grid
* @see app/Http/Controllers/Admin/CustomerController.php:41
* @route '/users/grid'
*/
gridForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: grid.url(options),
    method: 'post',
})

grid.form = gridForm

/**
* @see \App\Http\Controllers\Admin\CustomerController::setExportCondition
* @see app/Http/Controllers/Admin/CustomerController.php:46
* @route '/users/set-export-condition'
*/
export const setExportCondition = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: setExportCondition.url(options),
    method: 'post',
})

setExportCondition.definition = {
    methods: ["post"],
    url: '/users/set-export-condition',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::setExportCondition
* @see app/Http/Controllers/Admin/CustomerController.php:46
* @route '/users/set-export-condition'
*/
setExportCondition.url = (options?: RouteQueryOptions) => {
    return setExportCondition.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::setExportCondition
* @see app/Http/Controllers/Admin/CustomerController.php:46
* @route '/users/set-export-condition'
*/
setExportCondition.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: setExportCondition.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::setExportCondition
* @see app/Http/Controllers/Admin/CustomerController.php:46
* @route '/users/set-export-condition'
*/
const setExportConditionForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: setExportCondition.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::setExportCondition
* @see app/Http/Controllers/Admin/CustomerController.php:46
* @route '/users/set-export-condition'
*/
setExportConditionForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: setExportCondition.url(options),
    method: 'post',
})

setExportCondition.form = setExportConditionForm

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
export const exportMethod = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: exportMethod.url(options),
    method: 'get',
})

exportMethod.definition = {
    methods: ["get","head"],
    url: '/users/export',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
exportMethod.url = (options?: RouteQueryOptions) => {
    return exportMethod.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
exportMethod.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: exportMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
exportMethod.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: exportMethod.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
const exportMethodForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: exportMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
exportMethodForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: exportMethod.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::exportMethod
* @see app/Http/Controllers/Admin/CustomerController.php:53
* @route '/users/export'
*/
exportMethodForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: exportMethod.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

exportMethod.form = exportMethodForm

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateStatus
* @see app/Http/Controllers/Admin/CustomerController.php:64
* @route '/users/update-status'
*/
export const updateStatus = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateStatus.url(options),
    method: 'post',
})

updateStatus.definition = {
    methods: ["post"],
    url: '/users/update-status',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateStatus
* @see app/Http/Controllers/Admin/CustomerController.php:64
* @route '/users/update-status'
*/
updateStatus.url = (options?: RouteQueryOptions) => {
    return updateStatus.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateStatus
* @see app/Http/Controllers/Admin/CustomerController.php:64
* @route '/users/update-status'
*/
updateStatus.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateStatus.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateStatus
* @see app/Http/Controllers/Admin/CustomerController.php:64
* @route '/users/update-status'
*/
const updateStatusForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateStatus.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateStatus
* @see app/Http/Controllers/Admin/CustomerController.php:64
* @route '/users/update-status'
*/
updateStatusForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateStatus.url(options),
    method: 'post',
})

updateStatus.form = updateStatusForm

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateNoCharge
* @see app/Http/Controllers/Admin/CustomerController.php:71
* @route '/users/update-no-charge'
*/
export const updateNoCharge = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateNoCharge.url(options),
    method: 'post',
})

updateNoCharge.definition = {
    methods: ["post"],
    url: '/users/update-no-charge',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateNoCharge
* @see app/Http/Controllers/Admin/CustomerController.php:71
* @route '/users/update-no-charge'
*/
updateNoCharge.url = (options?: RouteQueryOptions) => {
    return updateNoCharge.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateNoCharge
* @see app/Http/Controllers/Admin/CustomerController.php:71
* @route '/users/update-no-charge'
*/
updateNoCharge.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateNoCharge.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateNoCharge
* @see app/Http/Controllers/Admin/CustomerController.php:71
* @route '/users/update-no-charge'
*/
const updateNoChargeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateNoCharge.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\CustomerController::updateNoCharge
* @see app/Http/Controllers/Admin/CustomerController.php:71
* @route '/users/update-no-charge'
*/
updateNoChargeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateNoCharge.url(options),
    method: 'post',
})

updateNoCharge.form = updateNoChargeForm

const users = {
    index: Object.assign(index, index),
    grid: Object.assign(grid, grid),
    setExportCondition: Object.assign(setExportCondition, setExportCondition),
    export: Object.assign(exportMethod, exportMethod),
    updateStatus: Object.assign(updateStatus, updateStatus),
    updateNoCharge: Object.assign(updateNoCharge, updateNoCharge),
}

export default users