// To parse this JSON data, do
//
//     final propertyAssessment = propertyAssessmentFromJson(jsonString);

import 'package:meta/meta.dart';
import 'dart:convert';

PropertyAssessment propertyAssessmentFromJson(String str) =>
    PropertyAssessment.fromJson(json.decode(str));

String propertyAssessmentToJson(PropertyAssessment data) =>
    json.encode(data.toJson());

class PropertyAssessment {
  final int id;
  final int bldgapprDetailsId;
  final String? assessedById;
  final String? assessedByName;
  final String? dateCreated;
  final String? dateModified;
  final String actualUse;
  final String marketValue;
  final String assessmentLevel;
  final String assessedValue;
  final String taxable;
  final String exempt;
  final String qtr;
  final String yr;
  final String appraisedbyName;
  final String appraisedbyDate;
  final String recommendapprName;
  final String recommendapprDate;
  final String approvedbyName;
  final String approvedbyDate;
  final String memoranda;
  final String swornstatementNo;
  final String dateReceived;
  final String entryDateAssessment;
  final String entryDateBy;
  final String genCode;
  final String note;
  final String? appraisedbyDesignation;
  final String? recommendapprDesignation;
  final String? approvedbyDesignation;

  PropertyAssessment({
    required this.id,
    required this.bldgapprDetailsId,
    required this.assessedById,
    required this.assessedByName,
    required this.dateCreated,
    required this.dateModified,
    required this.actualUse,
    required this.marketValue,
    required this.assessmentLevel,
    required this.assessedValue,
    required this.taxable,
    required this.exempt,
    required this.qtr,
    required this.yr,
    required this.appraisedbyName,
    required this.appraisedbyDate,
    required this.recommendapprName,
    required this.recommendapprDate,
    required this.approvedbyName,
    required this.approvedbyDate,
    required this.memoranda,
    required this.swornstatementNo,
    required this.dateReceived,
    required this.entryDateAssessment,
    required this.entryDateBy,
    required this.genCode,
    required this.note,
    required this.appraisedbyDesignation,
    required this.recommendapprDesignation,
    required this.approvedbyDesignation,
  });

  PropertyAssessment copy({
    int? id,
    int? bldgapprDetailsId,
    String? ass,
    String? assessedById,
    String? assessedByName,
    String? dateCreated,
    String? dateModified,
    String? actualUse,
    String? marketValue,
    String? assessmentLevel,
    String? assessedValue,
    String? taxable,
    String? exempt,
    String? qtr,
    String? yr,
    String? appraisedbyName,
    String? appraisedbyDate,
    String? recommendapprName,
    String? recommendapprDate,
    String? approvedbyName,
    String? approvedbyDate,
    String? memoranda,
    String? swornstatementNo,
    String? dateReceived,
    String? entryDateAssessment,
    String? entryDateBy,
    String? genCode,
    String? note,
    String? appraisedbyDesignation,
    String? recommendapprDesignation,
    String? approvedbyDesignation,
  }) =>
      PropertyAssessment(
        id: id ?? this.id,
        bldgapprDetailsId: bldgapprDetailsId ?? this.bldgapprDetailsId,
        assessedById: assessedById ?? this.assessedById,
        assessedByName: assessedByName ?? this.assessedByName,
        dateCreated: dateCreated ?? this.dateCreated,
        dateModified: dateModified ?? this.dateModified,
        actualUse: actualUse ?? this.actualUse,
        marketValue: marketValue ?? this.marketValue,
        assessmentLevel: assessmentLevel ?? this.assessmentLevel,
        assessedValue: assessedValue ?? this.assessedValue,
        taxable: taxable ?? this.taxable,
        exempt: exempt ?? this.exempt,
        qtr: qtr ?? this.qtr,
        yr: yr ?? this.yr,
        appraisedbyName: appraisedbyName ?? this.appraisedbyName,
        appraisedbyDate: appraisedbyDate ?? this.appraisedbyDate,
        recommendapprName: recommendapprName ?? this.recommendapprName,
        recommendapprDate: recommendapprDate ?? this.recommendapprDate,
        approvedbyName: approvedbyName ?? this.approvedbyName,
        approvedbyDate: approvedbyDate ?? this.approvedbyDate,
        memoranda: memoranda ?? this.memoranda,
        swornstatementNo: swornstatementNo ?? this.swornstatementNo,
        dateReceived: dateReceived ?? this.dateReceived,
        entryDateAssessment: entryDateAssessment ?? this.entryDateAssessment,
        entryDateBy: entryDateBy ?? this.entryDateBy,
        genCode: genCode ?? this.genCode,
        note: note ?? this.note,
        appraisedbyDesignation:
            appraisedbyDesignation ?? this.appraisedbyDesignation,
        recommendapprDesignation:
            recommendapprDesignation ?? this.recommendapprDesignation,
        approvedbyDesignation:
            approvedbyDesignation ?? this.approvedbyDesignation,
      );

  factory PropertyAssessment.fromJson(Map<String, dynamic> json) =>
      PropertyAssessment(
        id: json["id"],
        bldgapprDetailsId: json["bldgappr_details_id"],
        assessedById: json["assessed_by_id"],
        assessedByName: json["assessed_by_name"],
        dateCreated: json["date_created"],
        dateModified: json["date_modified"],
        actualUse: json["actual_use"],
        marketValue: json["market_value"],
        assessmentLevel: json["assessment_level"],
        assessedValue: json["assessed_value"],
        taxable: json["taxable"],
        exempt: json["exempt"],
        qtr: json["qtr"],
        yr: json["yr"],
        appraisedbyName: json["appraisedby_name"],
        appraisedbyDate: json["appraisedby_date"],
        recommendapprName: json["recommendappr_name"],
        recommendapprDate: json["recommendappr_date"],
        approvedbyName: json["approvedby_name"],
        approvedbyDate: json["approvedby_date"],
        memoranda: json["memoranda"],
        swornstatementNo: json["swornstatement_no"],
        dateReceived: json["date_received"],
        entryDateAssessment: json["entry_date_assessment"],
        entryDateBy: json["entry_date_by"],
        genCode: json["gen_code"],
        note: json["note"],
        appraisedbyDesignation: json["appraisedby_designation"],
        recommendapprDesignation: json["recommendappr_designation"],
        approvedbyDesignation: json["approvedby_designation"],
      );

  factory PropertyAssessment.fromJson2(Map<String, dynamic> json) =>
      PropertyAssessment(
        id: json["id"],
        bldgapprDetailsId: json["bldgapprDetailsId"],
        assessedById: json["assessedById"],
        assessedByName: json["assessedByName"],
        dateCreated: json["dateCreated"],
        dateModified: json["dateModified"],
        actualUse: json["actualUse"],
        marketValue: json["marketValue"],
        assessmentLevel: json["assessmentLevel"],
        assessedValue: json["assessedValue"],
        taxable: json["taxable"],
        exempt: json["exempt"],
        qtr: json["qtr"],
        yr: json["yr"],
        appraisedbyName: json["appraisedbyName"],
        appraisedbyDate: json["appraisedbyDate"],
        recommendapprName: json["recommendapprName"],
        recommendapprDate: json["recommendapprDate"],
        approvedbyName: json["approvedbyName"],
        approvedbyDate: json["approvedbyDate"],
        memoranda: json["memoranda"],
        swornstatementNo: json["swornstatementNo"],
        dateReceived: json["dateReceived"],
        entryDateAssessment: json["entryDateAssessment"],
        entryDateBy: json["entryDateBy"],
        genCode: json["gen_code"],
        note: json["note"],
        appraisedbyDesignation: json["appraisedby_designation"],
        recommendapprDesignation: json["recommendappr_designation"],
        approvedbyDesignation: json["approvedby_designation"],
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "bldgappr_details_id": bldgapprDetailsId,
        "assessed_by_id": assessedById,
        "assessed_by_name": assessedByName,
        "date_created": dateCreated,
        "date_modified": dateModified,
        "actual_use": actualUse,
        "market_value": marketValue,
        "assessment_level": assessmentLevel,
        "assessed_value": assessedValue,
        "taxable": taxable,
        "exempt": exempt,
        "qtr": qtr,
        "yr": yr,
        "appraisedby_name": appraisedbyName,
        "appraisedby_date": appraisedbyDate,
        "recommendappr_name": recommendapprName,
        "recommendappr_date": recommendapprDate,
        "approvedby_name": approvedbyName,
        "approvedby_date": approvedbyDate,
        "memoranda": memoranda,
        "swornstatement_no": swornstatementNo,
        "date_received": dateReceived,
        "entry_date_by": entryDateBy,
        "gen_code": genCode,
        "note": note,
        "appraisedby_designation": appraisedbyDesignation,
        "recommendappr_designation": recommendapprDesignation,
        "approvedby_designation": approvedbyDesignation,
      };
}
