export interface GenericModalData {
  title: string;
  subtitle?: string;
  data: Record<string, any>;
  fields: ModalField[];
  actions?: ModalAction[];
}

export interface ModalField {
  key: string;
  label: string;
  type: 'text' | 'date' | 'status' | 'badge' | 'description' | 'input' | 'textarea';
  format?: string; // Para formatação de datas, etc.
  required?: boolean;
  placeholder?: string;
  validation?: FieldValidation[];
}

export interface FieldValidation {
  type: 'required' | 'email' | 'minLength' | 'maxLength' | 'pattern';
  value?: any;
  message: string;
}

export interface ModalAction {
  label: string;
  action: string;
  type: 'primary' | 'secondary' | 'danger';
  icon?: string;
  loading?: boolean;
}

// Interface para modal de conexão/reconexão
export interface ConnectionModalData {
  title: string;
  subtitle?: string;
  fields: ConnectionField[];
  isReconnect?: boolean;
}

export interface ConnectionField {
  key: string;
  label: string;
  type: 'text' | 'password' | 'url';
  required: boolean;
  placeholder?: string;
  value?: string;
} 