import vine from '@vinejs/vine'

export const createUserValidator = vine.compile(
  vine.object({
    email: vine.string().email().normalizeEmail(),
    password: vine.string().minLength(8),
    fullName: vine.string(),
    role: vine.string(),
  })
)
export const updateUserValidator = vine.compile(
  vine.object({
    id: vine.number(),
    email: vine
      .string()
      .email()
      .normalizeEmail()
      .unique(async (db, value, field) => {
        const match = await db
          .from('users')
          .select('id')
          .where('email', value)
          .whereNot('id', field.data.id)
          .first()
        return !match
      })
      .optional(),
    password: vine.string().minLength(8).optional(),
    fullName: vine.string().optional(),
    role: vine.string().optional(),
  })
)
