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

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

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

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

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::stripe
* @see app/Http/Controllers/Api/PaymentWebhookController.php:28
* @route '/api/webhooks/stripe'
*/
const stripeForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: stripe.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::stripe
* @see app/Http/Controllers/Api/PaymentWebhookController.php:28
* @route '/api/webhooks/stripe'
*/
stripeForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: stripe.url(options),
    method: 'post',
})

stripe.form = stripeForm

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

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

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

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

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::paypal
* @see app/Http/Controllers/Api/PaymentWebhookController.php:63
* @route '/api/webhooks/paypal'
*/
const paypalForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: paypal.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::paypal
* @see app/Http/Controllers/Api/PaymentWebhookController.php:63
* @route '/api/webhooks/paypal'
*/
paypalForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: paypal.url(options),
    method: 'post',
})

paypal.form = paypalForm

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

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

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

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

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::paddle
* @see app/Http/Controllers/Api/PaymentWebhookController.php:98
* @route '/api/webhooks/paddle'
*/
const paddleForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: paddle.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::paddle
* @see app/Http/Controllers/Api/PaymentWebhookController.php:98
* @route '/api/webhooks/paddle'
*/
paddleForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: paddle.url(options),
    method: 'post',
})

paddle.form = paddleForm

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

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

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

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

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::razorpay
* @see app/Http/Controllers/Api/PaymentWebhookController.php:133
* @route '/api/webhooks/razorpay'
*/
const razorpayForm = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: razorpay.url(options),
    method: 'post',
})

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::razorpay
* @see app/Http/Controllers/Api/PaymentWebhookController.php:133
* @route '/api/webhooks/razorpay'
*/
razorpayForm.post = (options?: RouteQueryOptions): RouteFormDefinition<'post'> => ({
    action: razorpay.url(options),
    method: 'post',
})

razorpay.form = razorpayForm

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

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

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

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

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

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::logs
* @see app/Http/Controllers/Api/PaymentWebhookController.php:168
* @route '/api/webhooks/logs'
*/
const logsForm = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: logs.url(options),
    method: 'get',
})

/**
* @see \App\Http\Controllers\Api\PaymentWebhookController::logs
* @see app/Http/Controllers/Api/PaymentWebhookController.php:168
* @route '/api/webhooks/logs'
*/
logsForm.get = (options?: RouteQueryOptions): RouteFormDefinition<'get'> => ({
    action: logs.url(options),
    method: 'get',
})

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

logs.form = logsForm

const PaymentWebhookController = { stripe, paypal, paddle, razorpay, logs }

export default PaymentWebhookController