import { queryParams, type RouteQueryOptions, type RouteDefinition, applyUrlDefaults } from './../../../../../wayfinder'
/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/api/v1/menus'
*/
const indexf365f303c3e35309ab02863128585097 = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: indexf365f303c3e35309ab02863128585097.url(options),
    method: 'get',
})

indexf365f303c3e35309ab02863128585097.definition = {
    methods: ["get","head"],
    url: '/api/v1/menus',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/api/v1/menus'
*/
indexf365f303c3e35309ab02863128585097.url = (options?: RouteQueryOptions) => {
    return indexf365f303c3e35309ab02863128585097.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/api/v1/menus'
*/
indexf365f303c3e35309ab02863128585097.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: indexf365f303c3e35309ab02863128585097.url(options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/api/v1/menus'
*/
indexf365f303c3e35309ab02863128585097.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: indexf365f303c3e35309ab02863128585097.url(options),
    method: 'head',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/menus'
*/
const indexf1d27d3cf3aa0ba2bf0eef3d958a5652 = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: indexf1d27d3cf3aa0ba2bf0eef3d958a5652.url(options),
    method: 'get',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/menus'
*/
indexf1d27d3cf3aa0ba2bf0eef3d958a5652.url = (options?: RouteQueryOptions) => {
    return indexf1d27d3cf3aa0ba2bf0eef3d958a5652.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/menus'
*/
indexf1d27d3cf3aa0ba2bf0eef3d958a5652.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: indexf1d27d3cf3aa0ba2bf0eef3d958a5652.url(options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::index
* @see Website/Menu/app/Http/Controllers/MenuController.php:20
* @route '/menus'
*/
indexf1d27d3cf3aa0ba2bf0eef3d958a5652.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: indexf1d27d3cf3aa0ba2bf0eef3d958a5652.url(options),
    method: 'head',
})

export const index = {
    '/api/v1/menus': indexf365f303c3e35309ab02863128585097,
    '/menus': indexf1d27d3cf3aa0ba2bf0eef3d958a5652,
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/api/v1/menus'
*/
const storef365f303c3e35309ab02863128585097 = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storef365f303c3e35309ab02863128585097.url(options),
    method: 'post',
})

storef365f303c3e35309ab02863128585097.definition = {
    methods: ["post"],
    url: '/api/v1/menus',
} satisfies RouteDefinition<["post"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/api/v1/menus'
*/
storef365f303c3e35309ab02863128585097.url = (options?: RouteQueryOptions) => {
    return storef365f303c3e35309ab02863128585097.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/api/v1/menus'
*/
storef365f303c3e35309ab02863128585097.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storef365f303c3e35309ab02863128585097.url(options),
    method: 'post',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/menus'
*/
const storef1d27d3cf3aa0ba2bf0eef3d958a5652 = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storef1d27d3cf3aa0ba2bf0eef3d958a5652.url(options),
    method: 'post',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/menus'
*/
storef1d27d3cf3aa0ba2bf0eef3d958a5652.url = (options?: RouteQueryOptions) => {
    return storef1d27d3cf3aa0ba2bf0eef3d958a5652.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::store
* @see Website/Menu/app/Http/Controllers/MenuController.php:38
* @route '/menus'
*/
storef1d27d3cf3aa0ba2bf0eef3d958a5652.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storef1d27d3cf3aa0ba2bf0eef3d958a5652.url(options),
    method: 'post',
})

export const store = {
    '/api/v1/menus': storef365f303c3e35309ab02863128585097,
    '/menus': storef1d27d3cf3aa0ba2bf0eef3d958a5652,
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/api/v1/menus/{menu}'
*/
const showe2f2ce0b6d5b4b30691e6adb4cb87dee = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: showe2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'get',
})

showe2f2ce0b6d5b4b30691e6adb4cb87dee.definition = {
    methods: ["get","head"],
    url: '/api/v1/menus/{menu}',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/api/v1/menus/{menu}'
*/
showe2f2ce0b6d5b4b30691e6adb4cb87dee.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return showe2f2ce0b6d5b4b30691e6adb4cb87dee.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/api/v1/menus/{menu}'
*/
showe2f2ce0b6d5b4b30691e6adb4cb87dee.get = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: showe2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/api/v1/menus/{menu}'
*/
showe2f2ce0b6d5b4b30691e6adb4cb87dee.head = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: showe2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'head',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}'
*/
const show9e75cf0da1445b906872d4fd6f729012 = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: show9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'get',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}'
*/
show9e75cf0da1445b906872d4fd6f729012.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return show9e75cf0da1445b906872d4fd6f729012.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}'
*/
show9e75cf0da1445b906872d4fd6f729012.get = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: show9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::show
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}'
*/
show9e75cf0da1445b906872d4fd6f729012.head = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: show9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'head',
})

export const show = {
    '/api/v1/menus/{menu}': showe2f2ce0b6d5b4b30691e6adb4cb87dee,
    '/menus/{menu}': show9e75cf0da1445b906872d4fd6f729012,
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/api/v1/menus/{menu}'
*/
const updatee2f2ce0b6d5b4b30691e6adb4cb87dee = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updatee2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'put',
})

updatee2f2ce0b6d5b4b30691e6adb4cb87dee.definition = {
    methods: ["put","patch"],
    url: '/api/v1/menus/{menu}',
} satisfies RouteDefinition<["put","patch"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/api/v1/menus/{menu}'
*/
updatee2f2ce0b6d5b4b30691e6adb4cb87dee.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return updatee2f2ce0b6d5b4b30691e6adb4cb87dee.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/api/v1/menus/{menu}'
*/
updatee2f2ce0b6d5b4b30691e6adb4cb87dee.put = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updatee2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'put',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/api/v1/menus/{menu}'
*/
updatee2f2ce0b6d5b4b30691e6adb4cb87dee.patch = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updatee2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'patch',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/menus/{menu}'
*/
const update9e75cf0da1445b906872d4fd6f729012 = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: update9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'put',
})

update9e75cf0da1445b906872d4fd6f729012.definition = {
    methods: ["put","patch"],
    url: '/menus/{menu}',
} satisfies RouteDefinition<["put","patch"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/menus/{menu}'
*/
update9e75cf0da1445b906872d4fd6f729012.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return update9e75cf0da1445b906872d4fd6f729012.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/menus/{menu}'
*/
update9e75cf0da1445b906872d4fd6f729012.put = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: update9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'put',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::update
* @see Website/Menu/app/Http/Controllers/MenuController.php:54
* @route '/menus/{menu}'
*/
update9e75cf0da1445b906872d4fd6f729012.patch = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: update9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'patch',
})

export const update = {
    '/api/v1/menus/{menu}': updatee2f2ce0b6d5b4b30691e6adb4cb87dee,
    '/menus/{menu}': update9e75cf0da1445b906872d4fd6f729012,
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/api/v1/menus/{menu}'
*/
const destroye2f2ce0b6d5b4b30691e6adb4cb87dee = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroye2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'delete',
})

destroye2f2ce0b6d5b4b30691e6adb4cb87dee.definition = {
    methods: ["delete"],
    url: '/api/v1/menus/{menu}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/api/v1/menus/{menu}'
*/
destroye2f2ce0b6d5b4b30691e6adb4cb87dee.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return destroye2f2ce0b6d5b4b30691e6adb4cb87dee.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/api/v1/menus/{menu}'
*/
destroye2f2ce0b6d5b4b30691e6adb4cb87dee.delete = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroye2f2ce0b6d5b4b30691e6adb4cb87dee.url(args, options),
    method: 'delete',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/menus/{menu}'
*/
const destroy9e75cf0da1445b906872d4fd6f729012 = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroy9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'delete',
})

destroy9e75cf0da1445b906872d4fd6f729012.definition = {
    methods: ["delete"],
    url: '/menus/{menu}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/menus/{menu}'
*/
destroy9e75cf0da1445b906872d4fd6f729012.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return destroy9e75cf0da1445b906872d4fd6f729012.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::destroy
* @see Website/Menu/app/Http/Controllers/MenuController.php:74
* @route '/menus/{menu}'
*/
destroy9e75cf0da1445b906872d4fd6f729012.delete = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroy9e75cf0da1445b906872d4fd6f729012.url(args, options),
    method: 'delete',
})

export const destroy = {
    '/api/v1/menus/{menu}': destroye2f2ce0b6d5b4b30691e6adb4cb87dee,
    '/menus/{menu}': destroy9e75cf0da1445b906872d4fd6f729012,
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::exportMethod
* @see Website/Menu/app/Http/Controllers/MenuController.php:94
* @route '/menus/export'
*/
export const exportMethod = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: exportMethod.url(options),
    method: 'post',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::exportMethod
* @see Website/Menu/app/Http/Controllers/MenuController.php:94
* @route '/menus/export'
*/
exportMethod.url = (options?: RouteQueryOptions) => {
    return exportMethod.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::exportMethod
* @see Website/Menu/app/Http/Controllers/MenuController.php:94
* @route '/menus/export'
*/
exportMethod.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: exportMethod.url(options),
    method: 'post',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::download
* @see Website/Menu/app/Http/Controllers/MenuController.php:102
* @route '/menus/download/{filename}'
*/
export const download = (args: { filename: string | number } | [filename: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: download.url(args, options),
    method: 'get',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::download
* @see Website/Menu/app/Http/Controllers/MenuController.php:102
* @route '/menus/download/{filename}'
*/
download.url = (args: { filename: string | number } | [filename: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { filename: args }
    }

    if (Array.isArray(args)) {
        args = {
            filename: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        filename: args.filename,
    }

    return download.definition.url
            .replace('{filename}', parsedArgs.filename.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::download
* @see Website/Menu/app/Http/Controllers/MenuController.php:102
* @route '/menus/download/{filename}'
*/
download.get = (args: { filename: string | number } | [filename: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: download.url(args, options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::download
* @see Website/Menu/app/Http/Controllers/MenuController.php:102
* @route '/menus/download/{filename}'
*/
download.head = (args: { filename: string | number } | [filename: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: download.url(args, options),
    method: 'head',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::bulkAction
* @see Website/Menu/app/Http/Controllers/MenuController.php:134
* @route '/menus/bulk-action'
*/
export const bulkAction = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: bulkAction.url(options),
    method: 'post',
})

bulkAction.definition = {
    methods: ["post"],
    url: '/menus/bulk-action',
} satisfies RouteDefinition<["post"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::bulkAction
* @see Website/Menu/app/Http/Controllers/MenuController.php:134
* @route '/menus/bulk-action'
*/
bulkAction.url = (options?: RouteQueryOptions) => {
    return bulkAction.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::bulkAction
* @see Website/Menu/app/Http/Controllers/MenuController.php:134
* @route '/menus/bulk-action'
*/
bulkAction.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: bulkAction.url(options),
    method: 'post',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::updateStatus
* @see Website/Menu/app/Http/Controllers/MenuController.php:110
* @route '/menus/{id}/status'
*/
export const updateStatus = (args: { id: string | number } | [id: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updateStatus.url(args, options),
    method: 'put',
})

updateStatus.definition = {
    methods: ["put"],
    url: '/menus/{id}/status',
} satisfies RouteDefinition<["put"]>

/**
* @see \Website\Menu\Http\Controllers\MenuController::updateStatus
* @see Website/Menu/app/Http/Controllers/MenuController.php:110
* @route '/menus/{id}/status'
*/
updateStatus.url = (args: { id: string | number } | [id: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { id: args }
    }

    if (Array.isArray(args)) {
        args = {
            id: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        id: args.id,
    }

    return updateStatus.definition.url
            .replace('{id}', parsedArgs.id.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::updateStatus
* @see Website/Menu/app/Http/Controllers/MenuController.php:110
* @route '/menus/{id}/status'
*/
updateStatus.put = (args: { id: string | number } | [id: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updateStatus.url(args, options),
    method: 'put',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::create
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/create'
*/
export const create = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: create.url(options),
    method: 'get',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::create
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/create'
*/
create.url = (options?: RouteQueryOptions) => {
    return create.definition.url + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::create
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/create'
*/
create.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: create.url(options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::create
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/create'
*/
create.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: create.url(options),
    method: 'head',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::edit
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}/edit'
*/
export const edit = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: edit.url(args, options),
    method: 'get',
})

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

/**
* @see \Website\Menu\Http\Controllers\MenuController::edit
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}/edit'
*/
edit.url = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { menu: args }
    }

    if (Array.isArray(args)) {
        args = {
            menu: args[0],
        }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
        menu: args.menu,
    }

    return edit.definition.url
            .replace('{menu}', parsedArgs.menu.toString())
            .replace(/\/+$/, '') + queryParams(options)
}

/**
* @see \Website\Menu\Http\Controllers\MenuController::edit
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}/edit'
*/
edit.get = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: edit.url(args, options),
    method: 'get',
})

/**
* @see \Website\Menu\Http\Controllers\MenuController::edit
* @see Website/Menu/app/Http/Controllers/MenuController.php:0
* @route '/menus/{menu}/edit'
*/
edit.head = (args: { menu: string | number } | [menu: string | number ] | string | number, options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: edit.url(args, options),
    method: 'head',
})

const MenuController = { index, store, show, update, destroy, exportMethod, download, bulkAction, updateStatus, create, edit, export: exportMethod }

export default MenuController