class DoctorInfoModel { final int? id; final String nombreDoctor; final String especialidad; final String descripEspecialidad; final String descripGeneral; const DoctorInfoModel({ this.id, required this.nombreDoctor, required this.especialidad, required this.descripEspecialidad, required this.descripGeneral, }); factory DoctorInfoModel.fromJson(Map json) { final doctor = (json['nombre_doctor']?.toString() ?? 'Dr. Luis A. Castro Sosa').trim(); final esp = (json['especialidad']?.toString() ?? 'Cirujano Urólogo').trim(); return DoctorInfoModel( id: json['id'] is int ? json['id'] as int : int.tryParse(json['id']?.toString() ?? ''), nombreDoctor: doctor.isEmpty ? 'Dr. Luis A. Castro Sosa' : doctor, especialidad: esp.isEmpty ? 'Cirujano Urólogo' : esp, descripEspecialidad: json['descrip_especialidad']?.toString() ?? '', descripGeneral: json['descrip_general']?.toString() ?? '', ); } Map toJson({bool includeId = false}) { final map = { 'nombre_doctor': nombreDoctor, 'especialidad': especialidad, 'descrip_especialidad': descripEspecialidad, 'descrip_general': descripGeneral, }; if (includeId && id != null) { map['id'] = id; } return map; } DoctorInfoModel copyWith({ int? id, String? nombreDoctor, String? especialidad, String? descripEspecialidad, String? descripGeneral, }) { return DoctorInfoModel( id: id ?? this.id, nombreDoctor: nombreDoctor ?? this.nombreDoctor, especialidad: especialidad ?? this.especialidad, descripEspecialidad: descripEspecialidad ?? this.descripEspecialidad, descripGeneral: descripGeneral ?? this.descripGeneral, ); } }