"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.editPasswordSchema = exports.checkVerificationCodeSchema = exports.requestVerificationCodeSchema = exports.refreshTokenSchema = exports.loginAdminSchema = exports.loginSchema = void 0;
const zod_1 = require("zod");
const zod_to_openapi_1 = require("@asteasolutions/zod-to-openapi");
(0, zod_to_openapi_1.extendZodWithOpenApi)(zod_1.z);
exports.loginSchema = zod_1.z.object({
    email: zod_1.z.email('Email inválido').nonempty('O campo email é obrigatório').trim().openapi({ example: 'joao@email.com' }),
    password: zod_1.z.string().nonempty('O campo password é obrigatório').trim().openapi({ example: '123456' })
});
exports.loginAdminSchema = zod_1.z.object({
    email: zod_1.z.email('Email inválido').nonempty('O campo email é obrigatório').trim().openapi({ example: 'joao@email.com' }),
    password: zod_1.z.string().nonempty('O campo password é obrigatório').trim().openapi({ example: '123456' })
});
exports.refreshTokenSchema = zod_1.z.object({
    refreshToken: zod_1.z.string().trim().optional().openapi({ example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30' })
});
exports.requestVerificationCodeSchema = zod_1.z.object({
    email: zod_1.z.email('Email inválido').nonempty('O campo email é obrigatório').trim().openapi({ example: 'joao@email.com' }),
    isAdmin: zod_1.z.boolean().optional().openapi({ example: false, description: 'Defina como true para solicitar código de verificação para administradores' }),
});
exports.checkVerificationCodeSchema = zod_1.z.object({
    email: zod_1.z.email('Email inválido').nonempty('O campo email é obrigatório').trim().openapi({ example: 'joao@email.com' }),
    codigo: zod_1.z.string().nonempty('O campo código é obrigatório').trim().openapi({ example: '123456' }),
});
exports.editPasswordSchema = zod_1.z.object({
    email: zod_1.z.email('Email inválido').nonempty('O campo email é obrigatório').trim().openapi({ example: 'joao@email.com' }),
    codigo: zod_1.z.string().nonempty('O campo código é obrigatório').trim().openapi({ example: '123456' }),
    newPassword: zod_1.z.string().nonempty('O campo nova senha é obrigatório').min(6, 'A nova senha deve ter pelo menos 6 caracteres').trim().openapi({ example: 'novaSenha123' }),
});
