/** Kiểm tra dữ liệu hồ sơ nhân viên dùng chung cho mọi nơi nhập (tự sửa, quản trị, HCNS). */
import { z } from "zod";
import { isRealDate } from "@/lib/period";

/** Điện thoại: số, khoảng trắng, dấu + . - ; 8–15 ký tự. Để trống được. */
export const phoneField = z
  .string()
  .trim()
  .regex(/^[0-9+\s.-]{8,15}$/, "Số điện thoại không hợp lệ (8–15 số).")
  .optional()
  .or(z.literal(""));

/** Ngày sinh: đúng định dạng, không ở tương lai, không trước 1900. Để trống được. */
export const birthDateField = z
  .string()
  .refine(isRealDate, "Ngày sinh không hợp lệ.")
  .refine((value) => value >= "1900-01-01" && value <= new Date().toISOString().slice(0, 10), {
    message: "Ngày sinh phải từ năm 1900 và không được ở tương lai.",
  })
  .optional()
  .or(z.literal(""));
