import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../wayfinder'
import addresses2498c9 from './addresses'
import vehicles094842 from './vehicles'
/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
export const dashboard = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dashboard.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
dashboard.url = (options?: RouteQueryOptions) => {
    return dashboard.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
dashboard.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: dashboard.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
dashboard.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: dashboard.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
const dashboardForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
dashboardForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::dashboard
* @see app/Http/Controllers/CustomerDashboardController.php:17
* @route '/account'
*/
dashboardForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: dashboard.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

dashboard.form = dashboardForm

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
export const addresses = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: addresses.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
addresses.url = (options?: RouteQueryOptions) => {
    return addresses.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
addresses.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: addresses.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
addresses.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: addresses.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
const addressesForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addresses.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
addressesForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addresses.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::addresses
* @see app/Http/Controllers/CustomerDashboardController.php:28
* @route '/account/addresses'
*/
addressesForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: addresses.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

addresses.form = addressesForm

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
export const vehicles = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: vehicles.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
vehicles.url = (options?: RouteQueryOptions) => {
    return vehicles.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
vehicles.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: vehicles.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
vehicles.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: vehicles.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
const vehiclesForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicles.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
vehiclesForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicles.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::vehicles
* @see app/Http/Controllers/CustomerDashboardController.php:56
* @route '/account/vehicles'
*/
vehiclesForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: vehicles.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

vehicles.form = vehiclesForm

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
export const recommendations = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: recommendations.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
recommendations.url = (options?: RouteQueryOptions) => {
    return recommendations.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
recommendations.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: recommendations.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
recommendations.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: recommendations.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
const recommendationsForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: recommendations.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
recommendationsForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: recommendations.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\CustomerDashboardController::recommendations
* @see app/Http/Controllers/CustomerDashboardController.php:78
* @route '/account/recommendations'
*/
recommendationsForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: recommendations.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

recommendations.form = recommendationsForm

const customer = {
    dashboard: Object.assign(dashboard, dashboard),
    addresses: Object.assign(addresses, addresses2498c9),
    vehicles: Object.assign(vehicles, vehicles094842),
    recommendations: Object.assign(recommendations, recommendations),
}

export default customer