import vine from '@vinejs/vine'

export const createWebhookValidator = vine.compile(
  vine.object({
    webhook_url: vine.string().url(),
    header_name: vine.string().optional(),
    header_value: vine.string().optional(),
    is_active: vine.boolean().optional(),
    customer_id: vine.number().optional(),
    user_id: vine.number().optional(),
  })
)

export const updateWebhookValidator = vine.compile(
  vine.object({
    webhook_url: vine.string().url().optional(),
    header_name: vine.string().optional(),
    header_value: vine.string().optional(),
    is_active: vine.boolean().optional(),
    customer_id: vine.number().optional(),
    user_id: vine.number().optional(),
  })
)

export const listWebhooksValidator = vine.compile(
  vine.object({
    customer_id: vine.number().optional(),
    user_id: vine.number().optional(),
    page: vine.number().optional(),
    limit: vine.number().optional(),
  })
)

export const updateWebhookStatusValidator = vine.compile(
  vine.object({
    is_active: vine.boolean(),
  })
)

export const createByCustomerWebhookValidator = vine.compile(
  vine.object({
    webhook_url: vine.string().url(),
    header_name: vine.string().optional(),
    header_value: vine.string().optional(),
    is_active: vine.boolean().optional(),
    customer_id: vine.number().optional(),
    user_id: vine.number().optional(),
  })
)

export const updateByCustomerWebhookValidator = vine.compile(
  vine.object({
    webhook_url: vine.string().url().optional(),
    header_name: vine.string().optional(),
    header_value: vine.string().optional(),
    is_active: vine.boolean().optional(),
  })
)

export const listByCustomerWebhooksValidator = vine.compile(
  vine.object({
    page: vine.number().optional(),
    limit: vine.number().optional(),
  })
)

export const updateByCustomerWebhookStatusValidator = vine.compile(
  vine.object({
    is_active: vine.boolean(),
  })
)
