/**
 * 字段渲染策略接口
 * 策略模式：每种字段类型有独立的渲染策略
 */

import React from 'react';
import type { FieldConfig } from '../types';

/**
 * 字段渲染上下文
 */
export interface FieldRenderContext {
  field: FieldConfig;
  value?: any;
  onChange?: (value: any) => void;
  isDisabled: boolean;
  isReadonly: boolean;
  readonlyStyle?: React.CSSProperties;
  options?: any[];
  cascadeOptions?: any[];
  loadData?: (selectedOptions: any[]) => void;
}

/**
 * 字段渲染策略接口
 */
export interface IFieldRenderStrategy {
  /** 渲染字段组件 */
  render(context: FieldRenderContext): React.ReactNode;
  
  /** 是否支持只读属性（如果不支持，将使用 disabled） */
  supportsReadonly?: boolean;
}

