'use client';

/**
 * 全局/系统记录标识（规则 §5.3.4 UX 提示）
 *
 * 当业务列表里混入 organizationId=null 的全局记录（如字典/系统配置）时，
 * 用本组件标注，并在业务层把编辑按钮禁用或隐藏。
 *
 * @example
 *   {row.organizationId === null && <SystemRecordBadge />}
 */
export function SystemRecordBadge({ className = '' }: { className?: string }) {
  return (
    <span
      className={`inline-flex items-center rounded-full bg-blue-50 px-2 py-0.5 text-xs font-medium text-blue-700 ring-1 ring-inset ring-blue-200 ${className}`}
      title="系统内置记录，需 system:admin 权限修改"
    >
      系统内置
    </span>
  );
}

/**
 * 写操作按钮包裹器：对 organizationId=null 记录自动禁用。
 *
 * @example
 *   <DisabledForSystemRecord record={row}>
 *     <Button onClick={() => edit(row.id)}>编辑</Button>
 *   </DisabledForSystemRecord>
 */
export function DisabledForSystemRecord({
  record,
  children,
  fallback = null,
}: {
  record: { organizationId?: string | null } | null | undefined;
  children: React.ReactNode;
  fallback?: React.ReactNode;
}) {
  const isSystemRecord = record?.organizationId === null;
  if (isSystemRecord) return <>{fallback}</>;
  return <>{children}</>;
}
