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

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

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

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

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

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::index
 * @see app/Http/Controllers/Admin/AdminPanelController.php:18
 * @route '/admin'
 */
        indexForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: index.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::index
 * @see app/Http/Controllers/Admin/AdminPanelController.php:18
 * @route '/admin'
 */
        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\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
export const orders = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: orders.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
orders.url = (options?: RouteQueryOptions) => {
    return orders.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
orders.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: orders.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
orders.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: orders.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
    const ordersForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: orders.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
        ordersForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: orders.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::orders
 * @see app/Http/Controllers/Admin/AdminPanelController.php:247
 * @route '/admin/orders'
 */
        ordersForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: orders.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    orders.form = ordersForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyOrder
 * @see app/Http/Controllers/Admin/AdminPanelController.php:253
 * @route '/admin/orders/{order}'
 */
export const destroyOrder = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyOrder.url(args, options),
    method: 'delete',
})

destroyOrder.definition = {
    methods: ["delete"],
    url: '/admin/orders/{order}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyOrder
 * @see app/Http/Controllers/Admin/AdminPanelController.php:253
 * @route '/admin/orders/{order}'
 */
destroyOrder.url = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { order: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { order: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    order: args[0],
                }
    }

    args = applyUrlDefaults(args)

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

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyOrder
 * @see app/Http/Controllers/Admin/AdminPanelController.php:253
 * @route '/admin/orders/{order}'
 */
destroyOrder.delete = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyOrder.url(args, options),
    method: 'delete',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyOrder
 * @see app/Http/Controllers/Admin/AdminPanelController.php:253
 * @route '/admin/orders/{order}'
 */
    const destroyOrderForm = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: destroyOrder.url(args, {
                    [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                        _method: 'DELETE',
                        ...(options?.query ?? options?.mergeQuery ?? {}),
                    }
                }),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyOrder
 * @see app/Http/Controllers/Admin/AdminPanelController.php:253
 * @route '/admin/orders/{order}'
 */
        destroyOrderForm.delete = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: destroyOrder.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'DELETE',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'post',
        })
    
    destroyOrder.form = destroyOrderForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
export const fixOrderImages = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: fixOrderImages.url(options),
    method: 'get',
})

fixOrderImages.definition = {
    methods: ["get","head"],
    url: '/admin/orders/fix-images',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
fixOrderImages.url = (options?: RouteQueryOptions) => {
    return fixOrderImages.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
fixOrderImages.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: fixOrderImages.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
fixOrderImages.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: fixOrderImages.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
    const fixOrderImagesForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: fixOrderImages.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
        fixOrderImagesForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: fixOrderImages.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::fixOrderImages
 * @see app/Http/Controllers/Admin/AdminPanelController.php:259
 * @route '/admin/orders/fix-images'
 */
        fixOrderImagesForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: fixOrderImages.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    fixOrderImages.form = fixOrderImagesForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateOrderImage
 * @see app/Http/Controllers/Admin/AdminPanelController.php:276
 * @route '/admin/orders/{order}/update-image'
 */
export const updateOrderImage = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateOrderImage.url(args, options),
    method: 'post',
})

updateOrderImage.definition = {
    methods: ["post"],
    url: '/admin/orders/{order}/update-image',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateOrderImage
 * @see app/Http/Controllers/Admin/AdminPanelController.php:276
 * @route '/admin/orders/{order}/update-image'
 */
updateOrderImage.url = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { order: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { order: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    order: args[0],
                }
    }

    args = applyUrlDefaults(args)

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

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateOrderImage
 * @see app/Http/Controllers/Admin/AdminPanelController.php:276
 * @route '/admin/orders/{order}/update-image'
 */
updateOrderImage.post = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateOrderImage.url(args, options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateOrderImage
 * @see app/Http/Controllers/Admin/AdminPanelController.php:276
 * @route '/admin/orders/{order}/update-image'
 */
    const updateOrderImageForm = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: updateOrderImage.url(args, options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateOrderImage
 * @see app/Http/Controllers/Admin/AdminPanelController.php:276
 * @route '/admin/orders/{order}/update-image'
 */
        updateOrderImageForm.post = (args: { order: string | number | { id: string | number } } | [order: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: updateOrderImage.url(args, options),
            method: 'post',
        })
    
    updateOrderImage.form = updateOrderImageForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
export const dropSettings = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dropSettings.url(options),
    method: 'get',
})

dropSettings.definition = {
    methods: ["get","head"],
    url: '/admin/drop-settings',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
dropSettings.url = (options?: RouteQueryOptions) => {
    return dropSettings.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
dropSettings.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dropSettings.url(options),
    method: 'get',
})
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
dropSettings.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: dropSettings.url(options),
    method: 'head',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
    const dropSettingsForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
        action: dropSettings.url(options),
        method: 'get',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
        dropSettingsForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: dropSettings.url(options),
            method: 'get',
        })
            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::dropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:301
 * @route '/admin/drop-settings'
 */
        dropSettingsForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
            action: dropSettings.url({
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'HEAD',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'get',
        })
    
    dropSettings.form = dropSettingsForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateDropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:316
 * @route '/admin/drop-settings'
 */
export const updateDropSettings = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateDropSettings.url(options),
    method: 'post',
})

updateDropSettings.definition = {
    methods: ["post"],
    url: '/admin/drop-settings',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateDropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:316
 * @route '/admin/drop-settings'
 */
updateDropSettings.url = (options?: RouteQueryOptions) => {
    return updateDropSettings.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateDropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:316
 * @route '/admin/drop-settings'
 */
updateDropSettings.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: updateDropSettings.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateDropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:316
 * @route '/admin/drop-settings'
 */
    const updateDropSettingsForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: updateDropSettings.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::updateDropSettings
 * @see app/Http/Controllers/Admin/AdminPanelController.php:316
 * @route '/admin/drop-settings'
 */
        updateDropSettingsForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: updateDropSettings.url(options),
            method: 'post',
        })
    
    updateDropSettings.form = updateDropSettingsForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:30
 * @route '/admin/products'
 */
export const storeProduct = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeProduct.url(options),
    method: 'post',
})

storeProduct.definition = {
    methods: ["post"],
    url: '/admin/products',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:30
 * @route '/admin/products'
 */
storeProduct.url = (options?: RouteQueryOptions) => {
    return storeProduct.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:30
 * @route '/admin/products'
 */
storeProduct.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeProduct.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:30
 * @route '/admin/products'
 */
    const storeProductForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: storeProduct.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:30
 * @route '/admin/products'
 */
        storeProductForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: storeProduct.url(options),
            method: 'post',
        })
    
    storeProduct.form = storeProductForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:180
 * @route '/admin/products/{product}'
 */
export const destroyProduct = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyProduct.url(args, options),
    method: 'delete',
})

destroyProduct.definition = {
    methods: ["delete"],
    url: '/admin/products/{product}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:180
 * @route '/admin/products/{product}'
 */
destroyProduct.url = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { product: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'slug' in args) {
            args = { product: args.slug }
        }
    
    if (Array.isArray(args)) {
        args = {
                    product: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        product: typeof args.product === 'object'
                ? args.product.slug
                : args.product,
                }

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:180
 * @route '/admin/products/{product}'
 */
destroyProduct.delete = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyProduct.url(args, options),
    method: 'delete',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:180
 * @route '/admin/products/{product}'
 */
    const destroyProductForm = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: destroyProduct.url(args, {
                    [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                        _method: 'DELETE',
                        ...(options?.query ?? options?.mergeQuery ?? {}),
                    }
                }),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyProduct
 * @see app/Http/Controllers/Admin/AdminPanelController.php:180
 * @route '/admin/products/{product}'
 */
        destroyProductForm.delete = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: destroyProduct.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'DELETE',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'post',
        })
    
    destroyProduct.form = destroyProductForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeCustomerPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:212
 * @route '/admin/products/{product}/photo'
 */
export const storeCustomerPhotos = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCustomerPhotos.url(args, options),
    method: 'post',
})

storeCustomerPhotos.definition = {
    methods: ["post"],
    url: '/admin/products/{product}/photo',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeCustomerPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:212
 * @route '/admin/products/{product}/photo'
 */
storeCustomerPhotos.url = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { product: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'slug' in args) {
            args = { product: args.slug }
        }
    
    if (Array.isArray(args)) {
        args = {
                    product: args[0],
                }
    }

    args = applyUrlDefaults(args)

    const parsedArgs = {
                        product: typeof args.product === 'object'
                ? args.product.slug
                : args.product,
                }

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeCustomerPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:212
 * @route '/admin/products/{product}/photo'
 */
storeCustomerPhotos.post = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeCustomerPhotos.url(args, options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeCustomerPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:212
 * @route '/admin/products/{product}/photo'
 */
    const storeCustomerPhotosForm = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: storeCustomerPhotos.url(args, options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeCustomerPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:212
 * @route '/admin/products/{product}/photo'
 */
        storeCustomerPhotosForm.post = (args: { product: string | number | { slug: string | number } } | [product: string | number | { slug: string | number } ] | string | number | { slug: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: storeCustomerPhotos.url(args, options),
            method: 'post',
        })
    
    storeCustomerPhotos.form = storeCustomerPhotosForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeDashboardPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:227
 * @route '/admin/dashboard/photos'
 */
export const storeDashboardPhotos = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeDashboardPhotos.url(options),
    method: 'post',
})

storeDashboardPhotos.definition = {
    methods: ["post"],
    url: '/admin/dashboard/photos',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeDashboardPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:227
 * @route '/admin/dashboard/photos'
 */
storeDashboardPhotos.url = (options?: RouteQueryOptions) => {
    return storeDashboardPhotos.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeDashboardPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:227
 * @route '/admin/dashboard/photos'
 */
storeDashboardPhotos.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: storeDashboardPhotos.url(options),
    method: 'post',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeDashboardPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:227
 * @route '/admin/dashboard/photos'
 */
    const storeDashboardPhotosForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: storeDashboardPhotos.url(options),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::storeDashboardPhotos
 * @see app/Http/Controllers/Admin/AdminPanelController.php:227
 * @route '/admin/dashboard/photos'
 */
        storeDashboardPhotosForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: storeDashboardPhotos.url(options),
            method: 'post',
        })
    
    storeDashboardPhotos.form = storeDashboardPhotosForm
/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyDashboardPhoto
 * @see app/Http/Controllers/Admin/AdminPanelController.php:240
 * @route '/admin/dashboard/photos/{photo}'
 */
export const destroyDashboardPhoto = (args: { photo: string | number | { id: string | number } } | [photo: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyDashboardPhoto.url(args, options),
    method: 'delete',
})

destroyDashboardPhoto.definition = {
    methods: ["delete"],
    url: '/admin/dashboard/photos/{photo}',
} satisfies RouteDefinition<["delete"]>

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyDashboardPhoto
 * @see app/Http/Controllers/Admin/AdminPanelController.php:240
 * @route '/admin/dashboard/photos/{photo}'
 */
destroyDashboardPhoto.url = (args: { photo: string | number | { id: string | number } } | [photo: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions) => {
    if (typeof args === 'string' || typeof args === 'number') {
        args = { photo: args }
    }

            if (typeof args === 'object' && !Array.isArray(args) && 'id' in args) {
            args = { photo: args.id }
        }
    
    if (Array.isArray(args)) {
        args = {
                    photo: args[0],
                }
    }

    args = applyUrlDefaults(args)

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

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

/**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyDashboardPhoto
 * @see app/Http/Controllers/Admin/AdminPanelController.php:240
 * @route '/admin/dashboard/photos/{photo}'
 */
destroyDashboardPhoto.delete = (args: { photo: string | number | { id: string | number } } | [photo: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteDefinition<'delete'> => ({
    url: destroyDashboardPhoto.url(args, options),
    method: 'delete',
})

    /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyDashboardPhoto
 * @see app/Http/Controllers/Admin/AdminPanelController.php:240
 * @route '/admin/dashboard/photos/{photo}'
 */
    const destroyDashboardPhotoForm = (args: { photo: string | number | { id: string | number } } | [photo: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
        action: destroyDashboardPhoto.url(args, {
                    [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                        _method: 'DELETE',
                        ...(options?.query ?? options?.mergeQuery ?? {}),
                    }
                }),
        method: 'post',
    })

            /**
* @see \App\Http\Controllers\Admin\AdminPanelController::destroyDashboardPhoto
 * @see app/Http/Controllers/Admin/AdminPanelController.php:240
 * @route '/admin/dashboard/photos/{photo}'
 */
        destroyDashboardPhotoForm.delete = (args: { photo: string | number | { id: string | number } } | [photo: string | number | { id: string | number } ] | string | number | { id: string | number }, options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
            action: destroyDashboardPhoto.url(args, {
                        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
                            _method: 'DELETE',
                            ...(options?.query ?? options?.mergeQuery ?? {}),
                        }
                    }),
            method: 'post',
        })
    
    destroyDashboardPhoto.form = destroyDashboardPhotoForm
const AdminPanelController = { index, orders, destroyOrder, fixOrderImages, updateOrderImage, dropSettings, updateDropSettings, storeProduct, destroyProduct, storeCustomerPhotos, storeDashboardPhotos, destroyDashboardPhoto }

export default AdminPanelController