class paymentRequisitionDetailsResponse {
  RequestDetails? requestDetails;
  PaymentDetails? paymentDetails;
  String? error;
  String? message;

  paymentRequisitionDetailsResponse(
      {this.requestDetails, this.paymentDetails, this.error, this.message});

  paymentRequisitionDetailsResponse.fromJson(Map<String, dynamic> json) {
    requestDetails = json['request_details'] != null
        ? new RequestDetails.fromJson(json['request_details'])
        : null;
    paymentDetails = json['payment_details'] != null
        ? new PaymentDetails.fromJson(json['payment_details'])
        : null;
    error = json['error'];
    message = json['message'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.requestDetails != null) {
      data['request_details'] = this.requestDetails!.toJson();
    }
    if (this.paymentDetails != null) {
      data['payment_details'] = this.paymentDetails!.toJson();
    }
    data['error'] = this.error;
    data['message'] = this.message;
    return data;
  }
}

class RequestDetails {
  String? id;
  String? isProcessedPaymentRequest;
  String? accountId;
  String? accountName;
  String? branch;
  String? requestingPurpose;
  String? transDis;
  String? description;
  String? amount;
  String? formattedAmount;
  String? requestedAmount;
  String? requestMode;
  String? status;
  String? createdEmployee;
  String? level1Employee;
  String? level2Employee;
  String? level1ApprovalRemarks;
  String? level2ApprovalRemarks;
  String? attachmentViewFileName;
  String? attachmentDirFilePath;
  String? date;
  String? createdDatetime;
  String? updatedDatetime;
  String? proposedAccount;
  String? proposedAccountId;
  String? bankName;
  String? bankBranchname;
  String? bankIfscCode;
  String? bankAccountHolderName;
  String? bankAccountNumber;
  String? bankUpiId;

  RequestDetails({this.id,
    this.isProcessedPaymentRequest,
    this.accountId,
    this.accountName,
    this.branch,
    this.requestingPurpose,
    this.transDis,
    this.description,
    this.amount,
    this.formattedAmount,
    this.requestedAmount,
    this.requestMode,
    this.status,
    this.createdEmployee,
    this.level1Employee,
    this.level2Employee,
    this.level1ApprovalRemarks,
    this.level2ApprovalRemarks,
    this.attachmentViewFileName,
    this.attachmentDirFilePath,
    this.date,
    this.createdDatetime,
    this.updatedDatetime,
    this.proposedAccount,
    this.proposedAccountId,
    this.bankName,
    this.bankBranchname,
    this.bankIfscCode,
    this.bankAccountHolderName,
    this.bankAccountNumber,
    this.bankUpiId,
  });

  RequestDetails.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    isProcessedPaymentRequest = json['is_processed_payment_request'];
    accountId = json['account_id'];
    accountName = json['account_name'];
    branch = json['branch'];
    requestingPurpose = json['requesting_purpose'];
    transDis = json['trans_dis'];
    description = json['description'];
    amount = json['amount'];
    formattedAmount = json['formatted_amount'];
    requestedAmount = json['requested_amount'];
    requestMode = json['request_mode'];
    status = json['status'];
    createdEmployee = json['created_employee'];
    level1Employee = json['level1_employee'];
    level2Employee = json['level2_employee'];
    level1ApprovalRemarks = json['level_1_approval_remarks'];
    level2ApprovalRemarks = json['level_2_approval_remarks'];
    attachmentViewFileName = json['attachment_view_file_name'];
    attachmentDirFilePath = json['attachment_dir_file_path'];
    date = json['date'];
    createdDatetime = json['created_datetime'];
    updatedDatetime = json['updated_datetime'];
    proposedAccount = json['proposed_account'];
    proposedAccountId = json['proposed_account_id'];
    bankName = json['bank_name'];
    bankBranchname = json['bank_branch_name'];
    bankIfscCode = json['bank_ifsc_code'];
    bankAccountHolderName = json['bank_account_holder_name'];
    bankAccountNumber = json['bank_account_number'];
    bankUpiId = json['bank_upi_id'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['is_processed_payment_request'] = this.isProcessedPaymentRequest;
    data['account_id'] = this.accountId;
    data['account_name'] = this.accountName;
    data['branch'] = this.branch;
    data['requesting_purpose'] = this.requestingPurpose;
    data['trans_dis'] = this.transDis;
    data['description'] = this.description;
    data['amount'] = this.amount;
    data['formatted_amount'] = this.formattedAmount;
    data['requested_amount'] = this.requestedAmount;
    data['request_mode'] = this.requestMode;
    data['status'] = this.status;
    data['created_employee'] = this.createdEmployee;
    data['level1_employee'] = this.level1Employee;
    data['level2_employee'] = this.level2Employee;
    data['level_1_approval_remarks'] = this.level1ApprovalRemarks;
    data['level_2_approval_remarks'] = this.level2ApprovalRemarks;
    data['attachment_view_file_name'] = this.attachmentViewFileName;
    data['attachment_dir_file_path'] = this.attachmentDirFilePath;
    data['date'] = this.date;
    data['created_datetime'] = this.createdDatetime;
    data['updated_datetime'] = this.updatedDatetime;
    data['proposed_account'] = this.proposedAccount;
    data['proposed_account_id'] = this.proposedAccountId;
    data['bank_name'] = this.bankName;
    data['bank_branch_name'] = this.bankBranchname;
    data['bank_ifsc_code'] = this.bankIfscCode;
    data['bank_account_holder_name'] = this.bankAccountHolderName;
    data['bank_account_number'] = this.bankAccountNumber;
    data['bank_upi_id'] = this.bankUpiId;
    return data;
  }
}

class PaymentDetails {
  String? id;
  String? refType;
  String? refId;
  String? paymentAccountId;
  String? accountId;
  String? paymentModeId;
  String? amount;

  String? bankName;
  String? bankBranchName;
  String? bankIfscCode;
  String? bankAccountHolderName;
  String? bankAccountNumber;
  String? bankUpiId;
  String? attachmentDirFilePath;
  String? attachmentViewFileName;
  String? description;
  String? paymentReferenceNumber;
  String? createdEmployeeId;
  String? paymentDate;
  String? paymentRemarks;
  String? isExists;
  String? createdDatetime;
  String? updatedDatetime;
  String? accountName;
  String? paymentAccountName;
  String? paymentEmployeeName;
  String? mode;

  PaymentDetails({this.id,
    this.refType,
    this.refId,
    this.paymentAccountId,
    this.accountId,
    this.paymentModeId,
    this.amount,

    this.bankName,
    this.bankBranchName,
    this.bankIfscCode,
    this.bankAccountHolderName,
    this.bankAccountNumber,
    this.bankUpiId,
    this.attachmentDirFilePath,
    this.attachmentViewFileName,
    this.description,
    this.paymentReferenceNumber,
    this.createdEmployeeId,
    this.paymentDate,
    this.paymentRemarks,
    this.isExists,
    this.createdDatetime,
    this.updatedDatetime,
    this.accountName,
    this.paymentAccountName,
    this.paymentEmployeeName,
    this.mode});

  PaymentDetails.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    refType = json['ref_type'];
    refId = json['ref_id'];
    paymentAccountId = json['payment_account_id'];
    accountId = json['account_id'];
    paymentModeId = json['payment_mode_id'];
    amount = json['amount'];

    bankName = json['bank_name'];
    bankBranchName = json['bank_branch_name'];
    bankIfscCode = json['bank_ifsc_code'];
    bankAccountHolderName = json['bank_account_holder_name'];
    bankAccountNumber = json['bank_account_number'];
    bankUpiId = json['bank_upi_id'];
    attachmentDirFilePath = json['attachment_dir_file_path'];
    attachmentViewFileName = json['attachment_view_file_name'];
    description = json['description'];
    paymentReferenceNumber = json['payment_reference_number'];
    createdEmployeeId = json['created_employee_id'];
    paymentDate = json['payment_date'];
    paymentRemarks = json['payment_remarks'];
    isExists = json['is_exists'];
    createdDatetime = json['created_datetime'];
    updatedDatetime = json['updated_datetime'];
    accountName = json['account_name'];
    paymentAccountName = json['payment_account_name'];
    paymentEmployeeName = json['payment_employee_name'];
    mode = json['mode'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['ref_type'] = this.refType;
    data['ref_id'] = this.refId;
    data['payment_account_id'] = this.paymentAccountId;
    data['account_id'] = this.accountId;
    data['payment_mode_id'] = this.paymentModeId;
    data['amount'] = this.amount;
    data['bank_name'] = this.bankName;
    data['bank_branch_name'] = this.bankBranchName;
    data['bank_ifsc_code'] = this.bankIfscCode;
    data['bank_account_holder_name'] = this.bankAccountHolderName;
    data['bank_account_number'] = this.bankAccountNumber;
    data['bank_upi_id'] = this.bankUpiId;
    data['attachment_dir_file_path'] = this.attachmentDirFilePath;
    data['attachment_view_file_name'] = this.attachmentViewFileName;
    data['description'] = this.description;
    data['payment_reference_number'] = this.paymentReferenceNumber;
    data['created_employee_id'] = this.createdEmployeeId;
    data['payment_date'] = this.paymentDate;
    data['payment_remarks'] = this.paymentRemarks;
    data['is_exists'] = this.isExists;
    data['created_datetime'] = this.createdDatetime;
    data['updated_datetime'] = this.updatedDatetime;
    data['account_name'] = this.accountName;
    data['payment_account_name'] = this.paymentAccountName;
    data['payment_employee_name'] = this.paymentEmployeeName;
    data['mode'] = this.mode;
    return data;
  }
}
