import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition, applyUrlDefaults } from './../../../../../wayfinder'
/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
export const index = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: index.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
index.url = (options?: RouteQueryOptions) => {
    return index.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
index.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
index.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: index.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
const indexForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
indexForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: index.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::index
* @see app/Http/Controllers/Admin/HomepageFaqController.php:25
* @route '/admin/homepage-faqs'
*/
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\HomepageFaqController::updateSettings
* @see app/Http/Controllers/Admin/HomepageFaqController.php:32
* @route '/admin/homepage-faqs/settings'
*/
export const updateSettings = (options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateSettings.url(options),
    method: 'patch',
})

updateSettings.definition = {
    methods: ["patch"],
    url: '/admin/homepage-faqs/settings',
} satisfies RouteDefinition<["patch"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateSettings
* @see app/Http/Controllers/Admin/HomepageFaqController.php:32
* @route '/admin/homepage-faqs/settings'
*/
updateSettings.url = (options?: RouteQueryOptions) => {
    return updateSettings.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateSettings
* @see app/Http/Controllers/Admin/HomepageFaqController.php:32
* @route '/admin/homepage-faqs/settings'
*/
updateSettings.patch = (options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateSettings.url(options),
    method: 'patch',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateSettings
* @see app/Http/Controllers/Admin/HomepageFaqController.php:32
* @route '/admin/homepage-faqs/settings'
*/
const updateSettingsForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateSettings.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateSettings
* @see app/Http/Controllers/Admin/HomepageFaqController.php:32
* @route '/admin/homepage-faqs/settings'
*/
updateSettingsForm.patch = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateSettings.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

updateSettings.form = updateSettingsForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:42
* @route '/admin/homepage-faqs/categories'
*/
export const storeCategory = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCategory.url(options),
    method: 'post',
})

storeCategory.definition = {
    methods: ["post"],
    url: '/admin/homepage-faqs/categories',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:42
* @route '/admin/homepage-faqs/categories'
*/
storeCategory.url = (options?: RouteQueryOptions) => {
    return storeCategory.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:42
* @route '/admin/homepage-faqs/categories'
*/
storeCategory.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCategory.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:42
* @route '/admin/homepage-faqs/categories'
*/
const storeCategoryForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeCategory.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:42
* @route '/admin/homepage-faqs/categories'
*/
storeCategoryForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeCategory.url(options),
    method: 'post',
})

storeCategory.form = storeCategoryForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:56
* @route '/admin/homepage-faqs/categories/{category}'
*/
export const updateCategory = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateCategory.url(args, options),
    method: 'patch',
})

updateCategory.definition = {
    methods: ["patch"],
    url: '/admin/homepage-faqs/categories/{category}',
} satisfies RouteDefinition<["patch"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:56
* @route '/admin/homepage-faqs/categories/{category}'
*/
updateCategory.url = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { category: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { category: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        category: typeof args.category === 'object'
        ? args.category.id
        : args.category,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:56
* @route '/admin/homepage-faqs/categories/{category}'
*/
updateCategory.patch = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateCategory.url(args, options),
    method: 'patch',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:56
* @route '/admin/homepage-faqs/categories/{category}'
*/
const updateCategoryForm = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateCategory.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:56
* @route '/admin/homepage-faqs/categories/{category}'
*/
updateCategoryForm.patch = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateCategory.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

updateCategory.form = updateCategoryForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:69
* @route '/admin/homepage-faqs/categories/{category}'
*/
export const destroyCategory = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyCategory.url(args, options),
    method: 'delete',
})

destroyCategory.definition = {
    methods: ["delete"],
    url: '/admin/homepage-faqs/categories/{category}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:69
* @route '/admin/homepage-faqs/categories/{category}'
*/
destroyCategory.url = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { category: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { category: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        category: typeof args.category === 'object'
        ? args.category.id
        : args.category,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:69
* @route '/admin/homepage-faqs/categories/{category}'
*/
destroyCategory.delete = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyCategory.url(args, options),
    method: 'delete',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:69
* @route '/admin/homepage-faqs/categories/{category}'
*/
const destroyCategoryForm = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: destroyCategory.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'DELETE',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyCategory
* @see app/Http/Controllers/Admin/HomepageFaqController.php:69
* @route '/admin/homepage-faqs/categories/{category}'
*/
destroyCategoryForm.delete = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: destroyCategory.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'DELETE',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

destroyCategory.form = destroyCategoryForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderCategories
* @see app/Http/Controllers/Admin/HomepageFaqController.php:78
* @route '/admin/homepage-faqs/categories/reorder'
*/
export const reorderCategories = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: reorderCategories.url(options),
    method: 'post',
})

reorderCategories.definition = {
    methods: ["post"],
    url: '/admin/homepage-faqs/categories/reorder',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderCategories
* @see app/Http/Controllers/Admin/HomepageFaqController.php:78
* @route '/admin/homepage-faqs/categories/reorder'
*/
reorderCategories.url = (options?: RouteQueryOptions) => {
    return reorderCategories.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderCategories
* @see app/Http/Controllers/Admin/HomepageFaqController.php:78
* @route '/admin/homepage-faqs/categories/reorder'
*/
reorderCategories.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: reorderCategories.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderCategories
* @see app/Http/Controllers/Admin/HomepageFaqController.php:78
* @route '/admin/homepage-faqs/categories/reorder'
*/
const reorderCategoriesForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: reorderCategories.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderCategories
* @see app/Http/Controllers/Admin/HomepageFaqController.php:78
* @route '/admin/homepage-faqs/categories/reorder'
*/
reorderCategoriesForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: reorderCategories.url(options),
    method: 'post',
})

reorderCategories.form = reorderCategoriesForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:85
* @route '/admin/homepage-faqs/categories/{category}/items'
*/
export const storeItem = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeItem.url(args, options),
    method: 'post',
})

storeItem.definition = {
    methods: ["post"],
    url: '/admin/homepage-faqs/categories/{category}/items',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:85
* @route '/admin/homepage-faqs/categories/{category}/items'
*/
storeItem.url = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { category: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { category: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        category: typeof args.category === 'object'
        ? args.category.id
        : args.category,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:85
* @route '/admin/homepage-faqs/categories/{category}/items'
*/
storeItem.post = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeItem.url(args, options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:85
* @route '/admin/homepage-faqs/categories/{category}/items'
*/
const storeItemForm = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeItem.url(args, options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::storeItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:85
* @route '/admin/homepage-faqs/categories/{category}/items'
*/
storeItemForm.post = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: storeItem.url(args, options),
    method: 'post',
})

storeItem.form = storeItemForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:100
* @route '/admin/homepage-faqs/items/{item}'
*/
export const updateItem = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateItem.url(args, options),
    method: 'patch',
})

updateItem.definition = {
    methods: ["patch"],
    url: '/admin/homepage-faqs/items/{item}',
} satisfies RouteDefinition<["patch"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:100
* @route '/admin/homepage-faqs/items/{item}'
*/
updateItem.url = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { item: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { item: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        item: typeof args.item === 'object'
        ? args.item.id
        : args.item,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:100
* @route '/admin/homepage-faqs/items/{item}'
*/
updateItem.patch = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'patch'> => ({
    url: updateItem.url(args, options),
    method: 'patch',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:100
* @route '/admin/homepage-faqs/items/{item}'
*/
const updateItemForm = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateItem.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::updateItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:100
* @route '/admin/homepage-faqs/items/{item}'
*/
updateItemForm.patch = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateItem.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PATCH',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

updateItem.form = updateItemForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:114
* @route '/admin/homepage-faqs/items/{item}'
*/
export const destroyItem = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyItem.url(args, options),
    method: 'delete',
})

destroyItem.definition = {
    methods: ["delete"],
    url: '/admin/homepage-faqs/items/{item}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:114
* @route '/admin/homepage-faqs/items/{item}'
*/
destroyItem.url = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { item: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { item: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        item: typeof args.item === 'object'
        ? args.item.id
        : args.item,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:114
* @route '/admin/homepage-faqs/items/{item}'
*/
destroyItem.delete = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyItem.url(args, options),
    method: 'delete',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:114
* @route '/admin/homepage-faqs/items/{item}'
*/
const destroyItemForm = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: destroyItem.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'DELETE',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::destroyItem
* @see app/Http/Controllers/Admin/HomepageFaqController.php:114
* @route '/admin/homepage-faqs/items/{item}'
*/
destroyItemForm.delete = (args: { item: number | { id: number } } | [item: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: destroyItem.url(args, {
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'DELETE',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

destroyItem.form = destroyItemForm

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderItems
* @see app/Http/Controllers/Admin/HomepageFaqController.php:123
* @route '/admin/homepage-faqs/categories/{category}/items/reorder'
*/
export const reorderItems = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: reorderItems.url(args, options),
    method: 'post',
})

reorderItems.definition = {
    methods: ["post"],
    url: '/admin/homepage-faqs/categories/{category}/items/reorder',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderItems
* @see app/Http/Controllers/Admin/HomepageFaqController.php:123
* @route '/admin/homepage-faqs/categories/{category}/items/reorder'
*/
reorderItems.url = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { category: args }
    }

    if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
        args = { category: args.id }
    }

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

    args = applyUrlDefaults(args)

    const parsedArgs = {
        category: typeof args.category === 'object'
        ? args.category.id
        : args.category,
    }

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

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderItems
* @see app/Http/Controllers/Admin/HomepageFaqController.php:123
* @route '/admin/homepage-faqs/categories/{category}/items/reorder'
*/
reorderItems.post = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: reorderItems.url(args, options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderItems
* @see app/Http/Controllers/Admin/HomepageFaqController.php:123
* @route '/admin/homepage-faqs/categories/{category}/items/reorder'
*/
const reorderItemsForm = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: reorderItems.url(args, options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Admin\HomepageFaqController::reorderItems
* @see app/Http/Controllers/Admin/HomepageFaqController.php:123
* @route '/admin/homepage-faqs/categories/{category}/items/reorder'
*/
reorderItemsForm.post = (args: { category: number | { id: number } } | [category: number | { id: number } ] | number | { id: number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: reorderItems.url(args, options),
    method: 'post',
})

reorderItems.form = reorderItemsForm

const HomepageFaqController = { index, updateSettings, storeCategory, updateCategory, destroyCategory, reorderCategories, storeItem, updateItem, destroyItem, reorderItems }

export default HomepageFaqController