function t(o, i) {
  const e = [], s = `sidebarItems[${i}]`;
  return typeof o != "object" || o === null ? (e.push({ path: s, message: "SidebarItem должен быть объектом", value: o }), e) : ((!o.itemId || typeof o.itemId != "string") && e.push({ path: `${s}.itemId`, message: "Поле itemId обязательно и должно быть строкой", value: o.itemId }), (!o.icon || typeof o.icon != "string") && e.push({ path: `${s}.icon`, message: "Поле icon обязательно и должно быть строкой", value: o.icon }), o.notificationCount === void 0 || typeof o.notificationCount != "number" ? e.push({ path: `${s}.notificationCount`, message: "Поле notificationCount обязательно и должно быть числом", value: o.notificationCount }) : o.notificationCount < 0 && e.push({ path: `${s}.notificationCount`, message: "Поле notificationCount не может быть отрицательным", value: o.notificationCount }), (o.selected === void 0 || typeof o.selected != "boolean") && e.push({ path: `${s}.selected`, message: "Поле selected обязательно и должно быть boolean", value: o.selected }), o.name !== void 0 && typeof o.name != "string" && e.push({ path: `${s}.name`, message: "Поле name должно быть строкой", value: o.name }), o.notificationColor !== void 0 && typeof o.notificationColor != "string" && e.push({ path: `${s}.notificationColor`, message: "Поле notificationColor должно быть строкой", value: o.notificationColor }), o.isFixedBottom !== void 0 && typeof o.isFixedBottom != "boolean" && e.push({ path: `${s}.isFixedBottom`, message: "Поле isFixedBottom должно быть boolean", value: o.isFixedBottom }), o.isFixedTop !== void 0 && typeof o.isFixedTop != "boolean" && e.push({ path: `${s}.isFixedTop`, message: "Поле isFixedTop должно быть boolean", value: o.isFixedTop }), e);
}
function p(o) {
  const i = [], e = [];
  if (!Array.isArray(o))
    return {
      isValid: !1,
      errors: [{ path: "sidebarItems", message: "Данные должны быть массивом", value: o }],
      warnings: []
    };
  o.length === 0 && e.push({ path: "sidebarItems", message: "Массив sidebar items пустой" });
  const s = /* @__PURE__ */ new Set();
  return o.forEach((a, n) => {
    a && typeof a == "object" && a.itemId !== void 0 && (s.has(a.itemId) ? i.push({
      path: `sidebarItems[${n}].itemId`,
      message: "Дублирующийся itemId",
      value: a.itemId
    }) : s.add(a.itemId));
  }), o.forEach((a, n) => {
    i.push(...t(a, n));
  }), {
    isValid: i.length === 0,
    errors: i,
    warnings: e
  };
}
function d(o) {
  const i = [];
  return i.push(`=== РЕЗУЛЬТАТ ВАЛИДАЦИИ SIDEBAR ITEMS ===
`), o.isValid ? i.push(`✅ Данные валидны!
`) : i.push(`❌ Обнаружены ошибки!
`), o.errors.length > 0 && (i.push(`
🔴 ОШИБКИ (${o.errors.length}):`), o.errors.forEach((e, s) => {
    i.push(`  ${s + 1}. [${e.path}] ${e.message}`), e.value !== void 0 && i.push(`     Значение: ${JSON.stringify(e.value)}`);
  })), o.warnings.length > 0 && (i.push(`
⚠️  ПРЕДУПРЕЖДЕНИЯ (${o.warnings.length}):`), o.warnings.forEach((e, s) => {
    i.push(`  ${s + 1}. [${e.path}] ${e.message}`), e.value !== void 0 && i.push(`     Значение: ${JSON.stringify(e.value)}`);
  })), i.push(`
` + "=".repeat(42)), i.join(`
`);
}
export {
  d as getSidebarValidationReport,
  p as validateSidebarItems
};
