Files

58 lines
1.8 KiB
Dart
Raw Permalink Normal View History

2026-09-21 16:33:51 -04:00
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<String, dynamic> 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<String, dynamic> toJson({bool includeId = false}) {
final map = <String, dynamic>{
'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,
);
}
}