FieldDefinition.fromJson constructor

FieldDefinition.fromJson(
  1. Map<String, dynamic> json
)

Creates a FieldDefinition from JSON

Implementation

factory FieldDefinition.fromJson(Map<String, dynamic> json) {
  Type fieldType;
  final typeString = json['type'] as String;

  switch (typeString.toLowerCase()) {
    case 'string':
      fieldType = String;
      break;
    case 'int':
    case 'integer':
      fieldType = int;
      break;
    case 'double':
    case 'num':
    case 'number':
      fieldType = double;
      break;
    case 'bool':
    case 'boolean':
      fieldType = bool;
      break;
    case 'datetime':
      fieldType = DateTime;
      break;
    default:
      fieldType = String; // fallback
  }

  return FieldDefinition(
    name: json['name'],
    displayName: json['displayName'] ?? json['name'],
    type: fieldType,
    isRequired: json['isRequired'] ?? false,
    defaultValue: json['defaultValue'],
    validationRules: List<String>.from(json['validationRules'] ?? []),
    description: json['description'],
    metadata: json['metadata'],
  );
}