import { queryParams, type RouteQueryOptions, type RouteDefinition, type RouteFormDefinition } from './../../../wayfinder'
import verification from './verification'
/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationSession
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:23
* @route '/api/frontend/register/verification-session'
*/
export const verificationSession = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: verificationSession.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationSession
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:23
* @route '/api/frontend/register/verification-session'
*/
verificationSession.url = (options?: RouteQueryOptions) => {
    return verificationSession.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationSession
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:23
* @route '/api/frontend/register/verification-session'
*/
verificationSession.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: verificationSession.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationSession
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:23
* @route '/api/frontend/register/verification-session'
*/
const verificationSessionForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: verificationSession.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationSession
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:23
* @route '/api/frontend/register/verification-session'
*/
verificationSessionForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: verificationSession.url(options),
    method: 'post',
})

verificationSession.form = verificationSessionForm

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationComplete
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:36
* @route '/api/frontend/register/verification-complete'
*/
export const verificationComplete = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: verificationComplete.url(options),
    method: 'post',
})

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

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationComplete
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:36
* @route '/api/frontend/register/verification-complete'
*/
verificationComplete.url = (options?: RouteQueryOptions) => {
    return verificationComplete.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationComplete
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:36
* @route '/api/frontend/register/verification-complete'
*/
verificationComplete.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: verificationComplete.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationComplete
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:36
* @route '/api/frontend/register/verification-complete'
*/
const verificationCompleteForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: verificationComplete.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationComplete
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:36
* @route '/api/frontend/register/verification-complete'
*/
verificationCompleteForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: verificationComplete.url(options),
    method: 'post',
})

verificationComplete.form = verificationCompleteForm

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
export const verificationStatus = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: verificationStatus.url(options),
    method: 'get',
})

verificationStatus.definition = {
    methods: ["get","head"],
    url: '/api/frontend/register/verification-status',
} satisfies RouteDefinition<["get","head"]>

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
verificationStatus.url = (options?: RouteQueryOptions) => {
    return verificationStatus.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
verificationStatus.get = (options?: RouteQueryOptions): RouteDefinition<'get'> => ({
    url: verificationStatus.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
verificationStatus.head = (options?: RouteQueryOptions): RouteDefinition<'head'> => ({
    url: verificationStatus.url(options),
    method: 'head',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
const verificationStatusForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: verificationStatus.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
verificationStatusForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: verificationStatus.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Frontend\IdentityVerificationController::verificationStatus
* @see app/Http/Controllers/Frontend/IdentityVerificationController.php:53
* @route '/api/frontend/register/verification-status'
*/
verificationStatusForm.head = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: verificationStatus.url({
        [options?.mergeQuery ? 'mergeQuery' : 'query']: {
            _method: 'HEAD',
            ...(options?.query ?? options?.mergeQuery ?? {}),
        }
    }),
    method: 'get',
})

verificationStatus.form = verificationStatusForm

/**
* @see \App\Http\Controllers\Frontend\EmailVerificationController::sendVerificationEmail
* @see app/Http/Controllers/Frontend/EmailVerificationController.php:25
* @route '/api/frontend/register/send-verification-email'
*/
export const sendVerificationEmail = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: sendVerificationEmail.url(options),
    method: 'post',
})

sendVerificationEmail.definition = {
    methods: ["post"],
    url: '/api/frontend/register/send-verification-email',
} satisfies RouteDefinition<["post"]>

/**
* @see \App\Http\Controllers\Frontend\EmailVerificationController::sendVerificationEmail
* @see app/Http/Controllers/Frontend/EmailVerificationController.php:25
* @route '/api/frontend/register/send-verification-email'
*/
sendVerificationEmail.url = (options?: RouteQueryOptions) => {
    return sendVerificationEmail.definition.url + queryParams(options)
}

/**
* @see \App\Http\Controllers\Frontend\EmailVerificationController::sendVerificationEmail
* @see app/Http/Controllers/Frontend/EmailVerificationController.php:25
* @route '/api/frontend/register/send-verification-email'
*/
sendVerificationEmail.post = (options?: RouteQueryOptions): RouteDefinition<'post'> => ({
    url: sendVerificationEmail.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\EmailVerificationController::sendVerificationEmail
* @see app/Http/Controllers/Frontend/EmailVerificationController.php:25
* @route '/api/frontend/register/send-verification-email'
*/
const sendVerificationEmailForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: sendVerificationEmail.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Frontend\EmailVerificationController::sendVerificationEmail
* @see app/Http/Controllers/Frontend/EmailVerificationController.php:25
* @route '/api/frontend/register/send-verification-email'
*/
sendVerificationEmailForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: sendVerificationEmail.url(options),
    method: 'post',
})

sendVerificationEmail.form = sendVerificationEmailForm

const register = {
    verificationSession: Object.assign(verificationSession, verificationSession),
    verificationComplete: Object.assign(verificationComplete, verificationComplete),
    verificationStatus: Object.assign(verificationStatus, verificationStatus),
    verification: Object.assign(verification, verification),
    sendVerificationEmail: Object.assign(sendVerificationEmail, sendVerificationEmail),
}

export default register