import { queryParams, type RouteQueryOptions, type RouteDefinition } from './../../../wayfinder'
import meta from './meta'
import page from './page'
import save from './save'
/**
* @see \Website\API\Http\Controllers\BuilderController::header
* @see Website/API/app/Http/Controllers/BuilderController.php:338
* @route '/api/builder/header'
*/
export const header = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: header.url(options),
    method: 'post',
})

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

/**
* @see \Website\API\Http\Controllers\BuilderController::header
* @see Website/API/app/Http/Controllers/BuilderController.php:338
* @route '/api/builder/header'
*/
header.url = (options?: RouteQueryOptions) => {
    return header.definition.url + queryParams(options)
}

/**
* @see \Website\API\Http\Controllers\BuilderController::header
* @see Website/API/app/Http/Controllers/BuilderController.php:338
* @route '/api/builder/header'
*/
header.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: header.url(options),
    method: 'post',
})

/**
* @see \Website\API\Http\Controllers\BuilderController::footer
* @see Website/API/app/Http/Controllers/BuilderController.php:390
* @route '/api/builder/footer'
*/
export const footer = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: footer.url(options),
    method: 'post',
})

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

/**
* @see \Website\API\Http\Controllers\BuilderController::footer
* @see Website/API/app/Http/Controllers/BuilderController.php:390
* @route '/api/builder/footer'
*/
footer.url = (options?: RouteQueryOptions) => {
    return footer.definition.url + queryParams(options)
}

/**
* @see \Website\API\Http\Controllers\BuilderController::footer
* @see Website/API/app/Http/Controllers/BuilderController.php:390
* @route '/api/builder/footer'
*/
footer.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: footer.url(options),
    method: 'post',
})

const builder = {
    meta: Object.assign(meta, meta),
    header: Object.assign(header, header),
    footer: Object.assign(footer, footer),
    page: Object.assign(page, page),
    save: Object.assign(save, save),
}

export default builder