import 'dart:convert';

class PatientVaccineResponseModel {
  String? setupId;
  int? projectId;
  int? patientId;
  int? invoiceNo;
  String? procedureId;
  String? vaccineName;
  dynamic vaccineNameN;
  String? invoiceDate;
  int? doctorId;
  int? clinicId;
  String? firstName;
  String? middleName;
  String? lastName;
  dynamic firstNameN;
  dynamic middleNameN;
  dynamic lastNameN;
  String? dateofBirth;
  int? actualDoctorRate;
  String? age;
  String? clinicName;
  double? decimalDoctorRate;
  dynamic doctorImageUrl;
  String? doctorName;
  int? doctorRate;
  double? doctorStarsRate;
  String? doctorTitle;
  int? gender;
  dynamic genderDescription;
  dynamic invoiceNoVp;
  bool? isActiveDoctorProfile;
  bool? isDoctorAllowVedioCall;
  bool? isExecludeDoctor;
  int? noOfPatientsRate;
  String? patientName;
  String? projectName;
  String? qr;
  List<dynamic>? speciality;
  String? vaccinationDate;

  PatientVaccineResponseModel({
    this.setupId,
    this.projectId,
    this.patientId,
    this.invoiceNo,
    this.procedureId,
    this.vaccineName,
    this.vaccineNameN,
    this.invoiceDate,
    this.doctorId,
    this.clinicId,
    this.firstName,
    this.middleName,
    this.lastName,
    this.firstNameN,
    this.middleNameN,
    this.lastNameN,
    this.dateofBirth,
    this.actualDoctorRate,
    this.age,
    this.clinicName,
    this.decimalDoctorRate,
    this.doctorImageUrl,
    this.doctorName,
    this.doctorRate,
    this.doctorStarsRate,
    this.doctorTitle,
    this.gender,
    this.genderDescription,
    this.invoiceNoVp,
    this.isActiveDoctorProfile,
    this.isDoctorAllowVedioCall,
    this.isExecludeDoctor,
    this.noOfPatientsRate,
    this.patientName,
    this.projectName,
    this.qr,
    this.speciality,
    this.vaccinationDate,
  });

  factory PatientVaccineResponseModel.fromRawJson(String str) => PatientVaccineResponseModel.fromJson(json.decode(str));

  String toRawJson() => json.encode(toJson());

  factory PatientVaccineResponseModel.fromJson(Map<String, dynamic> json) => PatientVaccineResponseModel(
    setupId: json["SetupID"],
    projectId: json["ProjectID"],
    patientId: json["PatientID"],
    invoiceNo: json["InvoiceNo"],
    procedureId: json["ProcedureID"],
    vaccineName: json["VaccineName"],
    vaccineNameN: json["VaccineNameN"],
    invoiceDate: json["InvoiceDate"],
    doctorId: json["DoctorID"],
    clinicId: json["ClinicID"],
    firstName: json["FirstName"],
    middleName: json["MiddleName"],
    lastName: json["LastName"],
    firstNameN: json["FirstNameN"],
    middleNameN: json["MiddleNameN"],
    lastNameN: json["LastNameN"],
    dateofBirth: json["DateofBirth"],
    actualDoctorRate: json["ActualDoctorRate"],
    age: json["Age"],
    clinicName: json["ClinicName"],
    decimalDoctorRate: json["DecimalDoctorRate"]?.toDouble(),
    doctorImageUrl: json["DoctorImageURL"],
    doctorName: json["DoctorName"],
    doctorRate: json["DoctorRate"],
    doctorStarsRate: json["DoctorStarsRate"]?.toDouble(),
    doctorTitle: json["DoctorTitle"],
    gender: json["Gender"],
    genderDescription: json["GenderDescription"],
    invoiceNoVp: json["InvoiceNo_VP"],
    isActiveDoctorProfile: json["IsActiveDoctorProfile"],
    isDoctorAllowVedioCall: json["IsDoctorAllowVedioCall"],
    isExecludeDoctor: json["IsExecludeDoctor"],
    noOfPatientsRate: json["NoOfPatientsRate"],
    patientName: json["PatientName"],
    projectName: json["ProjectName"],
    qr: json["QR"],
    speciality: json["Speciality"] == null ? [] : List<dynamic>.from(json["Speciality"]!.map((x) => x)),
    vaccinationDate: json["VaccinationDate"],
  );

  Map<String, dynamic> toJson() => {
    "SetupID": setupId,
    "ProjectID": projectId,
    "PatientID": patientId,
    "InvoiceNo": invoiceNo,
    "ProcedureID": procedureId,
    "VaccineName": vaccineName,
    "VaccineNameN": vaccineNameN,
    "InvoiceDate": invoiceDate,
    "DoctorID": doctorId,
    "ClinicID": clinicId,
    "FirstName": firstName,
    "MiddleName": middleName,
    "LastName": lastName,
    "FirstNameN": firstNameN,
    "MiddleNameN": middleNameN,
    "LastNameN": lastNameN,
    "DateofBirth": dateofBirth,
    "ActualDoctorRate": actualDoctorRate,
    "Age": age,
    "ClinicName": clinicName,
    "DecimalDoctorRate": decimalDoctorRate,
    "DoctorImageURL": doctorImageUrl,
    "DoctorName": doctorName,
    "DoctorRate": doctorRate,
    "DoctorStarsRate": doctorStarsRate,
    "DoctorTitle": doctorTitle,
    "Gender": gender,
    "GenderDescription": genderDescription,
    "InvoiceNo_VP": invoiceNoVp,
    "IsActiveDoctorProfile": isActiveDoctorProfile,
    "IsDoctorAllowVedioCall": isDoctorAllowVedioCall,
    "IsExecludeDoctor": isExecludeDoctor,
    "NoOfPatientsRate": noOfPatientsRate,
    "PatientName": patientName,
    "ProjectName": projectName,
    "QR": qr,
    "Speciality": speciality == null ? [] : List<dynamic>.from(speciality!.map((x) => x)),
    "VaccinationDate": vaccinationDate,
  };
}
