"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.profileSchema = void 0;
const translate_1 = require("../../i18n/translate");
const validator_1 = __importDefault(require("validator"));
const zod_1 = __importDefault(require("zod"));
exports.profileSchema = zod_1.default.object({
    id: zod_1.default.string().uuid({
        message: (0, translate_1.translate)('model.profile.id.uuid'),
    }),
    shortId: zod_1.default.number(),
    phoneNumber: zod_1.default
        .string()
        .min(1, {
        message: (0, translate_1.translate)('model.profile.phoneNumber.required'),
    })
        .refine(validator_1.default.isMobilePhone, {
        message: (0, translate_1.translate)('model.profile.phoneNumber.invalid'),
    }),
    secondaryPhoneNumber: zod_1.default
        .string()
        .optional()
        .refine(validator_1.default.isMobilePhone, {
        message: (0, translate_1.translate)('model.profile.secondaryPhoneNumber.invalid'),
    }),
    fullName: zod_1.default.string().min(1, {
        message: (0, translate_1.translate)('model.profile.fullName.required'),
    }),
    firstName: zod_1.default.string().min(1, {
        message: (0, translate_1.translate)('model.profile.fullName.required'),
    }),
    gender: zod_1.default.string().optional(),
    birthDate: zod_1.default.date().optional(),
    profilePictureUrl: zod_1.default
        .string()
        .url({
        message: (0, translate_1.translate)('model.profile.profilePictureUrl.invalid'),
    })
        .optional(),
    instagram: zod_1.default.string().optional(),
    mail: zod_1.default.string().email().optional(),
    dni: zod_1.default.string().optional(),
    alternativeNames: zod_1.default.array(zod_1.default.string()).optional(),
    birthLongitude: zod_1.default.number().min(-180).max(180).optional(),
    birthLatitude: zod_1.default.number().min(-90).max(90).optional(),
    residenceLongitude: zod_1.default.number().min(-180).max(180).optional(),
    residenceLatitude: zod_1.default.number().min(-90).max(90).optional(),
    isInTrash: zod_1.default.boolean(),
    movedToTrashDate: zod_1.default.date().optional(),
    created_at: zod_1.default.date(),
    updated_at: zod_1.default.date(),
});
//# sourceMappingURL=profile.dto.js.map