import 'package:equatable/equatable.dart'; class CompanyExecutiveModel extends Equatable { final String name; final String title; final int? age; final double? compensation; final String? payment; const CompanyExecutiveModel({ required this.name, required this.title, this.age, this.compensation, this.payment, }); factory CompanyExecutiveModel.fromJson(Map json) { double? compVal; if (json['compensation'] != null) { compVal = (json['compensation'] as num?)?.toDouble() ?? double.tryParse(json['compensation'].toString()); } final rawPayment = json['payment']?.toString(); if (compVal == null && rawPayment != null && rawPayment.isNotEmpty) { compVal = double.tryParse(rawPayment); } return CompanyExecutiveModel( name: json['name']?.toString() ?? '', title: json['title']?.toString() ?? '', age: json['age'] != null ? int.tryParse(json['age'].toString()) : null, compensation: compVal, payment: rawPayment, ); } Map toJson() { return { 'name': name, 'title': title, if (age != null) 'age': age, if (compensation != null) 'compensation': compensation, if (payment != null) 'payment': payment, }; } @override List get props => [name, title, age, compensation, payment]; }