import { queryParams, type RouteQueryOptions, type RouteDefinition } from './../../wayfinder'
/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::selector
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:23
* @route '/theme/selector'
*/
export const selector = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: selector.url(options),
    method: 'get',
})

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

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::selector
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:23
* @route '/theme/selector'
*/
selector.url = (options?: RouteQueryOptions) => {
    return selector.definition.url + queryParams(options)
}

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::selector
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:23
* @route '/theme/selector'
*/
selector.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: selector.url(options),
    method: 'get',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::selector
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:23
* @route '/theme/selector'
*/
selector.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: selector.url(options),
    method: 'head',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::activate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:117
* @route '/theme/activate'
*/
export const activate = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: activate.url(options),
    method: 'post',
})

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

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::activate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:117
* @route '/theme/activate'
*/
activate.url = (options?: RouteQueryOptions) => {
    return activate.definition.url + queryParams(options)
}

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::activate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:117
* @route '/theme/activate'
*/
activate.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: activate.url(options),
    method: 'post',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::deactivate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:356
* @route '/theme/deactivate'
*/
export const deactivate = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: deactivate.url(options),
    method: 'post',
})

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

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::deactivate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:356
* @route '/theme/deactivate'
*/
deactivate.url = (options?: RouteQueryOptions) => {
    return deactivate.definition.url + queryParams(options)
}

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::deactivate
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:356
* @route '/theme/deactivate'
*/
deactivate.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: deactivate.url(options),
    method: 'post',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::premium
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:454
* @route '/theme/premium'
*/
export const premium = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: premium.url(options),
    method: 'get',
})

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

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::premium
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:454
* @route '/theme/premium'
*/
premium.url = (options?: RouteQueryOptions) => {
    return premium.definition.url + queryParams(options)
}

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::premium
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:454
* @route '/theme/premium'
*/
premium.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: premium.url(options),
    method: 'get',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::premium
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:454
* @route '/theme/premium'
*/
premium.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: premium.url(options),
    method: 'head',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::purchases
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:508
* @route '/theme/purchases'
*/
export const purchases = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: purchases.url(options),
    method: 'get',
})

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

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::purchases
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:508
* @route '/theme/purchases'
*/
purchases.url = (options?: RouteQueryOptions) => {
    return purchases.definition.url + queryParams(options)
}

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::purchases
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:508
* @route '/theme/purchases'
*/
purchases.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: purchases.url(options),
    method: 'get',
})

/**
* @see \Website\Theme\Http\Controllers\TenantThemeController::purchases
* @see Website/Theme/app/Http/Controllers/TenantThemeController.php:508
* @route '/theme/purchases'
*/
purchases.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: purchases.url(options),
    method: 'head',
})

const theme = {
    selector: Object.assign(selector, selector),
    activate: Object.assign(activate, activate),
    deactivate: Object.assign(deactivate, deactivate),
    premium: Object.assign(premium, premium),
    purchases: Object.assign(purchases, purchases),
}

export default theme