import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../../../../wayfinder'
/**
* @see \App\Http\Controllers\Api\AuthController::register
* @see app/Http/Controllers/Api/AuthController.php:44
* @route '/api/register'
*/
export const register = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: register.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\Api\AuthController::register
* @see app/Http/Controllers/Api/AuthController.php:44
* @route '/api/register'
*/
register.url = (options?: RouteQueryOptions) => {
    return register.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::register
* @see app/Http/Controllers/Api/AuthController.php:44
* @route '/api/register'
*/
register.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: register.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::register
* @see app/Http/Controllers/Api/AuthController.php:44
* @route '/api/register'
*/
const registerForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: register.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::register
* @see app/Http/Controllers/Api/AuthController.php:44
* @route '/api/register'
*/
registerForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: register.url(options),
    method: 'post',
})

register.form = registerForm

/**
* @see \App\Http\Controllers\Api\AuthController::login
* @see app/Http/Controllers/Api/AuthController.php:21
* @route '/api/login'
*/
export const login = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: login.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\Api\AuthController::login
* @see app/Http/Controllers/Api/AuthController.php:21
* @route '/api/login'
*/
login.url = (options?: RouteQueryOptions) => {
    return login.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::login
* @see app/Http/Controllers/Api/AuthController.php:21
* @route '/api/login'
*/
login.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: login.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::login
* @see app/Http/Controllers/Api/AuthController.php:21
* @route '/api/login'
*/
const loginForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: login.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::login
* @see app/Http/Controllers/Api/AuthController.php:21
* @route '/api/login'
*/
loginForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: login.url(options),
    method: 'post',
})

login.form = loginForm

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
export const logout = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: logout.url(options),
    method: 'get',
})

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

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
logout.url = (options?: RouteQueryOptions) => {
    return logout.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
logout.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: logout.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
logout.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: logout.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
const logoutForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: logout.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
logoutForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: logout.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::logout
* @see app/Http/Controllers/Api/AuthController.php:206
* @route '/api/logout'
*/
logoutForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: logout.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

logout.form = logoutForm

/**
* @see \App\Http\Controllers\Api\AuthController::updateProfile
* @see app/Http/Controllers/Api/AuthController.php:134
* @route '/api/update-profile'
*/
export const updateProfile = (options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updateProfile.url(options),
    method: 'put',
})

updateProfile.definition = {
    methods: ["put"],
    url: '/api/update-profile',
} satisfies RouteDefinition<["put"]>

/**
* @see \App\Http\Controllers\Api\AuthController::updateProfile
* @see app/Http/Controllers/Api/AuthController.php:134
* @route '/api/update-profile'
*/
updateProfile.url = (options?: RouteQueryOptions) => {
    return updateProfile.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::updateProfile
* @see app/Http/Controllers/Api/AuthController.php:134
* @route '/api/update-profile'
*/
updateProfile.put = (options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: updateProfile.url(options),
    method: 'put',
})

/**
* @see \App\Http\Controllers\Api\AuthController::updateProfile
* @see app/Http/Controllers/Api/AuthController.php:134
* @route '/api/update-profile'
*/
const updateProfileForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateProfile.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PUT',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::updateProfile
* @see app/Http/Controllers/Api/AuthController.php:134
* @route '/api/update-profile'
*/
updateProfileForm.put = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: updateProfile.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PUT',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

updateProfile.form = updateProfileForm

/**
* @see \App\Http\Controllers\Api\AuthController::changePassword
* @see app/Http/Controllers/Api/AuthController.php:182
* @route '/api/change-password'
*/
export const changePassword = (options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: changePassword.url(options),
    method: 'put',
})

changePassword.definition = {
    methods: ["put"],
    url: '/api/change-password',
} satisfies RouteDefinition<["put"]>

/**
* @see \App\Http\Controllers\Api\AuthController::changePassword
* @see app/Http/Controllers/Api/AuthController.php:182
* @route '/api/change-password'
*/
changePassword.url = (options?: RouteQueryOptions) => {
    return changePassword.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::changePassword
* @see app/Http/Controllers/Api/AuthController.php:182
* @route '/api/change-password'
*/
changePassword.put = (options?: RouteQueryOptions): RouteDefinition<'put'> => ({
    url: changePassword.url(options),
    method: 'put',
})

/**
* @see \App\Http\Controllers\Api\AuthController::changePassword
* @see app/Http/Controllers/Api/AuthController.php:182
* @route '/api/change-password'
*/
const changePasswordForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: changePassword.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PUT',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\AuthController::changePassword
* @see app/Http/Controllers/Api/AuthController.php:182
* @route '/api/change-password'
*/
changePasswordForm.put = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: changePassword.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'PUT',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'post',
})

changePassword.form = changePasswordForm

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
export const getAuthenticatedUserData = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: getAuthenticatedUserData.url(options),
    method: 'get',
})

getAuthenticatedUserData.definition = {
    methods: ["get","head"],
    url: '/api/get-authenticated-user-data',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
getAuthenticatedUserData.url = (options?: RouteQueryOptions) => {
    return getAuthenticatedUserData.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
getAuthenticatedUserData.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: getAuthenticatedUserData.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
getAuthenticatedUserData.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: getAuthenticatedUserData.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
const getAuthenticatedUserDataForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: getAuthenticatedUserData.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
getAuthenticatedUserDataForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: getAuthenticatedUserData.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\AuthController::getAuthenticatedUserData
* @see app/Http/Controllers/Api/AuthController.php:117
* @route '/api/get-authenticated-user-data'
*/
getAuthenticatedUserDataForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: getAuthenticatedUserData.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

getAuthenticatedUserData.form = getAuthenticatedUserDataForm

const AuthController = { register, login, logout, updateProfile, changePassword, getAuthenticatedUserData }

export default AuthController