package org.deke.risk.riskahead.helper;

import android.content.Context;
import android.graphics.Color;
import android.util.Log;

import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.google.maps.android.clustering.ClusterItem;

import org.deke.risk.riskahead.R;
import org.json.JSONException;
import org.json.JSONObject;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 *
 * (C) Copyright 2016 RiskAhead (http://www.riskahead.net)
 * Developer & Contributor: Dennis Thießen (dennis.thiessen@riskahead.net)
 * Date of Release: 10.02.2016
 *
 */
public class IncidentReport implements ClusterItem {
    private final static String TAG = IncidentReport.class.getSimpleName();

    private int id = 0;
    private LatLng incidentPosition;
    private String incidentPositionDescription = "";

    private int fidFromUser = 0;
    private String fromUsername = "";

    private int votedScore = 0;

    private String createdAt = "";
    private String updatedAt = "";

    private int fidIncidentCategory = 0;
    private int fidIncidentSubCategory = 0;
    private String etcIncidentCategory = "";

    private int fidTimeCategory = 0;
    private int fidTimeSubCategory = 0;
    private String fromTime = "";
    private String fromDate = "";
    private String toTime = "";
    private String toDate = "";

    private int fidSuspectCategory = 0;
    private int fidSuspectSubCategory = 0;
    private String etcSuspectCategory = "";

    private int fidSuspectWeaponCategory = 0;
    private int fidSuspectWeaponSubCategory = 0;
    private String etcSuspectWeaponCategory = "";

    private int fidSuspectCountCategory = 0;
    private String etcSuspectCountCategory = "";

    private int fidVictimCategory = 0;

    private int fidVictimOriginCategory = 0;
    private String etcVictimOriginCategory = "";

    private int fidSuspectTransportationCategory = 0;
    private String etcSuspectTransportationCategory = "";

    private int fidVictimBelongingCategory = 0;
    private String etcVictimBelongingCategory = "";

    private int fidSuspectCharacteristicsCategory = 0;
    private String etcSuspectCharacteristicsCategory = "";

    private int fidOthersCategory = 0;
    private String etcOthersCategory = "";

    public IncidentReport(JSONObject mIncident, LatLng position) {
        setAllAttributes(mIncident, position);
    }

    public IncidentReport(JSONObject mIncident) {
        setAllAttributes(mIncident,null);
    }

    public IncidentReport(){

    }

    private void setAllAttributes(JSONObject mIncident, LatLng position) {
        try {
            this.id = mIncident.getInt("id");

            if(position != null) {
                this.incidentPosition = position;
            }else{
                this.incidentPosition = new LatLng(mIncident.getDouble("latitude"),mIncident.getDouble("longitude"));
            }

            if(mIncident.has("created_at")) this.createdAt = mIncident.getString("created_at");
            if(mIncident.has("updated_at")) this.updatedAt = mIncident.getString("updated_at");

            if(mIncident.has("upvoted") && mIncident.has("downvoted")) this.votedScore = mIncident.getInt("upvoted") - mIncident.getInt("downvoted");
            if(mIncident.has("username")) this.fromUsername = mIncident.getString("username");

            if(mIncident.has("fid_user")) this.fidFromUser = mIncident.getInt("fid_user");
            this.fidIncidentCategory = mIncident.getInt("fid_incident");
            this.fidIncidentSubCategory = mIncident.getInt("fid_subincident");
            if(mIncident.has("etc_incident")) this.etcIncidentCategory = mIncident.getString("etc_incident");
            this.fidTimeCategory = mIncident.getInt("fid_time");
            this.fidTimeSubCategory = mIncident.getInt("fid_subtime");
            this.fromTime = mIncident.getString("happened_from_datetime").split(" ")[1];
            this.fromDate = mIncident.getString("happened_from_datetime").split(" ")[0];
            this.toTime = mIncident.getString("happened_to_datetime").split(" ")[1];
            this.toDate = mIncident.getString("happened_to_datetime").split(" ")[0];
            if(mIncident.has("fid_suspect")) this.fidSuspectCategory = mIncident.getInt("fid_suspect");
            if(mIncident.has("fid_subsuspect")) this.fidSuspectSubCategory = mIncident.getInt("fid_subsuspect");
            if(mIncident.has("etc_suspect")) this.etcSuspectCategory = mIncident.getString("etc_suspect");
            if(mIncident.has("fid_weapon")) this.fidSuspectWeaponCategory = mIncident.getInt("fid_weapon");
            if(mIncident.has("fid_subweapon")) this.fidSuspectWeaponSubCategory = mIncident.getInt("fid_subweapon");
            if(mIncident.has("etc_weapon")) this.etcSuspectWeaponCategory = mIncident.getString("etc_weapon");
            if(mIncident.has("fid_suspectcount")) this.fidSuspectCountCategory = mIncident.getInt("fid_suspectcount");
            if(mIncident.has("etc_suspectcount")) this.etcSuspectCountCategory = mIncident.getString("etc_suspectcount");
            if(mIncident.has("fid_victim")) this.fidVictimCategory = mIncident.getInt("fid_victim");
            if(mIncident.has("fid_victimorigin")) this.fidVictimOriginCategory = mIncident.getInt("fid_victimorigin");
            if(mIncident.has("etc_victimorigin")) this.etcVictimOriginCategory = mIncident.getString("etc_victimorigin");
            if(mIncident.has("fid_suspecttransportation")) this.fidSuspectTransportationCategory = mIncident.getInt("fid_suspecttransportation");
            if(mIncident.has("etc_suspecttransportation"))  this.etcSuspectTransportationCategory = mIncident.getString("etc_suspecttransportation");
            if(mIncident.has("fid_victimbelonging")) this.fidVictimBelongingCategory = mIncident.getInt("fid_victimbelonging");
            if(mIncident.has("etc_victimbelonging")) this.etcVictimBelongingCategory = mIncident.getString("etc_victimbelonging");
            if(mIncident.has("fid_suspectcharacteristics")) this.fidSuspectCharacteristicsCategory = mIncident.getInt("fid_suspectcharacteristics");
            if(mIncident.has("etc_suspectcharacteristics")) this.etcSuspectCharacteristicsCategory = mIncident.getString("etc_suspectcharacteristics");
            if(mIncident.has("fid_others")) this.fidOthersCategory = mIncident.getInt("fid_others");
            if(mIncident.has("etc_others")) this.etcOthersCategory = mIncident.getString("etc_others");
        } catch (JSONException e) {
            FirebaseCrashlytics.getInstance().log("Exception caught: " + e);
            FirebaseCrashlytics.getInstance().recordException(e);
        }
    }

    public BitmapDescriptor getIcon() {
        return BitmapDescriptorFactory.fromResource(getIconDrawable());
    }

    public int getIconDrawable() {
        int mIcon;

        Date tmpFromDate = null;
        SimpleDateFormat simpleDateFormat;
        Date today = new Date(System.currentTimeMillis()-60*60*1000);

        try {
            if(this.fromDate != null && this.fromTime != null){
                simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US);
                tmpFromDate = simpleDateFormat.parse(this.fromDate+" "+this.fromTime);
            }else if(this.fromDate != null){
                simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
                tmpFromDate = simpleDateFormat.parse(this.fromDate);
            }
        } catch (ParseException e) {
            FirebaseCrashlytics.getInstance().log("Exception caught: " + e);
            FirebaseCrashlytics.getInstance().recordException(e);
        }

        switch (this.fidIncidentCategory) {
            case 1:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_general_w_f;
                    }else{
                        mIcon = R.drawable.icon_general_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_general_w;
                    }else{
                        mIcon = R.drawable.icon_general;
                    }
                }
                break;
            case 2:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_verbal_w_f;
                    }else{
                        mIcon = R.drawable.icon_verbal_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_verbal_w;
                    }else{
                        mIcon = R.drawable.icon_verbal;
                    }
                }
                break;
            case 3:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_middle_violance_w_f;
                    }else{
                        mIcon = R.drawable.icon_middle_violance_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_middle_violance_w;
                    }else{
                        mIcon = R.drawable.icon_middle_violance;
                    }
                }
                break;
            case 4:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_high_violance_w_f;
                    }else{
                        mIcon = R.drawable.icon_high_violance_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_high_violance_w;
                    }else{
                        mIcon = R.drawable.icon_high_violance;
                    }
                }
                break;
            case 5:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_nature_w_f;
                    }else{
                        mIcon = R.drawable.icon_nature_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_nature_w;
                    }else{
                        mIcon = R.drawable.icon_nature;
                    }
                }
                break;
            case 6:
                if((this.fidTimeCategory == 2) || (tmpFromDate != null && tmpFromDate.after(today))){
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_infra_v2_w_f;
                    }else{
                        mIcon = R.drawable.icon_infra_v2_f;
                    }
                }else{
                    if(fidVictimCategory == 1){
                        mIcon = R.drawable.icon_infra_v2_w;
                    }else{
                        mIcon = R.drawable.icon_infra_v2;
                    }
                }
                break;
            default:
                mIcon = R.drawable.icon_general;
                break;
        }



        return mIcon;
    }

    public float getScoreStars() {
        if(this.votedScore < 0){
            return 0.0f;
        }else if(this.votedScore < 1){
            return 0.5f;
        }else if(this.votedScore < 2){
            return 1.0f;
        }else if(this.votedScore < 3){
            return 1.5f;
        }else if(this.votedScore < 4){
            return 2.0f;
        }else if(this.votedScore < 5){
            return 2.5f;
        }else if(this.votedScore < 6){
            return 3.0f;
        }else if(this.votedScore < 7){
            return 3.5f;
        }else if(this.votedScore < 8){
            return 4.0f;
        }else if(this.votedScore < 9){
            return 4.5f;
        }else{
            return 5.0f;
        }
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getIncidentCategoryName(Context context){
        String returnValue = "";
        String[] stringArray = context.getResources().getStringArray(R.array.cat_situation_main);

        if((this.fidIncidentCategory > 0) && (this.fidIncidentCategory <= stringArray.length)){
            returnValue = stringArray[this.fidIncidentCategory-1];
        }

        return returnValue;
    }

    public String getIncidentSubCategoryName(Context context){
        String returnValue;
        String[] stringArray;

        switch(this.fidIncidentCategory){
            case 1:
                stringArray = context.getResources().getStringArray(R.array.cat_situation_sub_threat);
                returnValue = stringArray[this.fidIncidentSubCategory-1];

                break;
            case 2:
                stringArray = context.getResources().getStringArray(R.array.cat_situation_sub_physical);
                returnValue = stringArray[this.fidIncidentSubCategory-1];

                break;
            case 3:
                stringArray = context.getResources().getStringArray(R.array.cat_situation_sub_lifethreat);
                returnValue = stringArray[this.fidIncidentSubCategory-1];

                break;
            case 4:
                stringArray = context.getResources().getStringArray(R.array.cat_situation_sub_disaster);
                returnValue = stringArray[this.fidIncidentSubCategory-1];

                break;
            default:
                stringArray = null;
                returnValue = "";

                break;
        }


        if((stringArray != null) && (this.fidIncidentSubCategory > 0) && (this.fidIncidentSubCategory <= stringArray.length)){
            returnValue = stringArray[this.fidIncidentSubCategory-1];
            if((this.fidIncidentSubCategory == stringArray.length) && (this.etcIncidentCategory.trim().length() > 0)){
                returnValue = this.etcIncidentCategory;
            }else if(this.etcIncidentCategory.trim().length() > 0){
                returnValue += " ("+this.etcIncidentCategory+")";
            }
        }

        return returnValue;
    }

    public String getTimeString(Context context){
        String returnString = "";
        String[] returnTimeArray = context.getResources().getStringArray(R.array.cat_time_main);
        String[] returnSubTimeArray = context.getResources().getStringArray(R.array.cat_time_sub_periodical);

        switch (this.fidTimeCategory){
            case 1:
            case 3:
                if((this.fromDate != null) && !(this.fromDate.equals("0000-00-00")) && (this.fromTime != null) && (this.fromTime.length() > 4)){
                    returnString = this.fromDate+" "+this.fromTime.substring(0,5);
                }else if((this.fromDate != null) && (this.fromDate.equals("0000-00-00")) && (this.createdAt.length() > 15)){
                    returnString = this.createdAt.substring(0,16);
                }else if((this.fidTimeCategory > 0) && (this.fidTimeCategory <= returnTimeArray.length)){
                    returnString = returnTimeArray[this.fidTimeCategory-1];
                }
                break;
            case 2:
                if(this.fidTimeSubCategory > 0 && this.fidTimeSubCategory <= returnSubTimeArray.length){
                    returnString = returnSubTimeArray[this.fidTimeSubCategory-1];
                }
                break;
            case 4:
                if((this.fromTime != null) && !(this.fromTime.equals("00:00")) && (this.toTime != null) && !(this.toTime.equals("00:00"))){
                    returnString = this.fromDate+" "+this.fromTime.substring(0,5)+" -> "+this.toDate+" "+this.toTime.substring(0,5);
                }else{
                    returnString = this.fromDate+" -> "+this.toDate;
                }
                break;
            default:
                if((this.createdAt != null) && (this.createdAt.length() > 15)) {
                    returnString = this.createdAt.substring(0, 16);
                }else{
                    returnString = "";
                }
                break;
        }
        return returnString;
    }

    public String getSuspectString(Context context){
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_suspect_main);

        if(this.fidSuspectCategory > 0 && this.fidSuspectCategory <= stringArray.length){
            if(stringArray.length == this.fidSuspectCategory){
                returnValue = getEtcSuspectCategory();
            }else{
                returnValue = stringArray[this.fidSuspectCategory-1];


                if((this.fidSuspectCategory == 4) || (this.fidSuspectCategory == 5) || (this.fidSuspectCategory == 6)) {

                    String[] stringSubArray = context.getResources().getStringArray(R.array.cat_suspect_sub_location);
                    if(this.fidSuspectSubCategory > 0 && this.fidSuspectSubCategory <= stringSubArray.length){
                        returnValue += " ("+stringSubArray[this.fidSuspectSubCategory-1]+")";
                    }
                }
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getVictimString(Context context){
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_victim);

        if(this.fidVictimCategory > 0 && this.fidVictimCategory <= stringArray.length){
            returnValue = stringArray[this.fidVictimCategory-1];
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public int getCategoryColor(){
        String color = "FFFFFF";
        switch (this.fidIncidentCategory) {
            case 1:
                color = "3ac1e2";
                break;
            case 2:
                color = "3ed78d";
                break;
            case 3:
                color = "ed8d53";
                break;
            case 4:
                color = "ff3433";
                break;
            case 5:
                color = "3f7efd";
                break;
            case 6:
                color = "929292";
                break;
        }
        return Color.parseColor("#" + color);
    }

    public String getSuspectWeaponsString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_suspect_weapons);

        if(this.fidSuspectWeaponCategory > 0 && this.fidSuspectWeaponCategory <= stringArray.length){
            if(stringArray.length == this.fidSuspectWeaponCategory){
                returnValue = etcSuspectWeaponCategory;
            }else{
                returnValue = stringArray[this.fidSuspectWeaponCategory-1];

                if(this.fidSuspectWeaponCategory < 5 && this.etcSuspectWeaponCategory.trim().length() > 0) {
                    returnValue += " ( "+this.etcSuspectWeaponCategory+" )";
                }
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getSuspectNoOfString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_suspect_count);

        if(this.fidSuspectCountCategory > 0 && this.fidSuspectCountCategory <= stringArray.length){
            if(stringArray.length == this.fidSuspectCountCategory){
                returnValue = etcSuspectCountCategory;
            }else{
                returnValue = stringArray[this.fidSuspectCountCategory-1];
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getVictimOriginString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_victim_origin);

        if(this.fidVictimOriginCategory > 0 && this.fidVictimOriginCategory <= stringArray.length){
            if(stringArray.length == this.fidVictimOriginCategory){
                returnValue = etcVictimOriginCategory;
            }else{
                returnValue = stringArray[this.fidVictimOriginCategory-1];
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getSuspectTransportString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_details_vehicle);

        if(this.fidSuspectTransportationCategory > 0 && this.fidSuspectTransportationCategory <= stringArray.length){
            if(stringArray.length == this.fidSuspectTransportationCategory){
                returnValue = etcSuspectTransportationCategory;
            }else{
                returnValue = stringArray[this.fidSuspectTransportationCategory-1];
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getVictimAffiliationString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_details_victimaff);

        if(this.fidVictimBelongingCategory > 0 && this.fidVictimBelongingCategory <= stringArray.length){
            if(stringArray.length == this.fidVictimBelongingCategory){
                returnValue = etcVictimBelongingCategory;
            }else{
                returnValue = stringArray[this.fidVictimBelongingCategory-1];
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }

    public String getSuspectRecognitionString(Context context) {
        String returnValue;
        String[] stringArray = context.getResources().getStringArray(R.array.cat_details_suspect_recon);

        if(this.fidSuspectCharacteristicsCategory > 0){
            if(stringArray.length == this.fidSuspectCharacteristicsCategory){
                returnValue = etcSuspectCharacteristicsCategory;
            }else{
                returnValue = stringArray[this.fidSuspectCharacteristicsCategory-1];
            }
        }else{
            returnValue = "";
        }

        return returnValue;
    }



    /*
    Simple Getters and Setter below
    */

    public void setPosition(LatLng position) {
        this.incidentPosition = position;
    }

    public String getFromUsername() {
        return fromUsername;
    }

    public void setFromUsername(String fromUsername) {
        this.fromUsername = fromUsername;
    }

    public int getFidIncidentCategory() {
        return fidIncidentCategory;
    }

    public void setFidIncidentCategory(int fidIncidentCategory) {
        this.fidIncidentCategory = fidIncidentCategory;
    }

    @Override
    public LatLng getPosition() {
        return this.incidentPosition;
    }

    @Override
    public String getTitle() {
        return "Title";
    }

    @Override
    public String getSnippet() {
        return "Snippet";
    }

    public int getVotedScore(){
        return this.votedScore;
    }

    public int getFidFromUser() {
        return fidFromUser;
    }

    public void setFidFromUser(int fidFromUser) {
        this.fidFromUser = fidFromUser;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(String updatedAt) {
        this.updatedAt = updatedAt;
    }

    public int getFidIncidentSubCategory() {
        return fidIncidentSubCategory;
    }

    public void setFidIncidentSubCategory(int fidIncidentSubCategory) {
        this.fidIncidentSubCategory = fidIncidentSubCategory;
    }

    public String getEtcIncidentCategory() {
        return etcIncidentCategory;
    }

    public void setEtcIncidentCategory(String etcIncidentCategory) {
        this.etcIncidentCategory = etcIncidentCategory;
    }

    public int getFidTimeCategory() {
        return fidTimeCategory;
    }

    public void setFidTimeCategory(int fidTimeCategory) {
        this.fidTimeCategory = fidTimeCategory;
    }

    public int getFidTimeSubCategory() {
        return fidTimeSubCategory;
    }

    public void setFidTimeSubCategory(int fidTimeSubCategory) {
        this.fidTimeSubCategory = fidTimeSubCategory;
    }

    public String getFromTime() {
        return fromTime;
    }

    public void setFromTime(String fromTime) {
        this.fromTime = fromTime;
    }

    public String getFromDate() {
        return fromDate;
    }

    public void setFromDate(String fromDate) {
        this.fromDate = fromDate;
    }

    public String getToTime() {
        return toTime;
    }

    public void setToTime(String toTime) {
        this.toTime = toTime;
    }

    public String getToDate() {
        return toDate;
    }

    public void setToDate(String toDate) {
        this.toDate = toDate;
    }

    public int getFidSuspectCategory() {
        return fidSuspectCategory;
    }

    public void setFidSuspectCategory(int fidSuspectCategory) {
        this.fidSuspectCategory = fidSuspectCategory;
    }

    public int getFidSuspectSubCategory() {
        return fidSuspectSubCategory;
    }

    public void setFidSuspectSubCategory(int fidSuspectSubCategory) {
        this.fidSuspectSubCategory = fidSuspectSubCategory;
    }

    public String getEtcSuspectCategory() {
        return etcSuspectCategory;
    }

    public void setEtcSuspectCategory(String etcSuspectCategory) {
        this.etcSuspectCategory = etcSuspectCategory;
    }

    public int getFidSuspectWeaponCategory() {
        return fidSuspectWeaponCategory;
    }

    public void setFidSuspectWeaponCategory(int fidSuspectWeaponCategory) {
        this.fidSuspectWeaponCategory = fidSuspectWeaponCategory;
    }

    public int getFidSuspectWeaponSubCategory() {
        return fidSuspectWeaponSubCategory;
    }

    public void setFidSuspectWeaponSubCategory(int fidSuspectWeaponSubCategory) {
        this.fidSuspectWeaponSubCategory = fidSuspectWeaponSubCategory;
    }

    public String getEtcSuspectWeaponCategory() {
        return etcSuspectWeaponCategory;
    }

    public void setEtcSuspectWeaponCategory(String etcSuspectWeaponCategory) {
        this.etcSuspectWeaponCategory = etcSuspectWeaponCategory;
    }

    public int getFidSuspectCountCategory() {
        return fidSuspectCountCategory;
    }

    public void setFidSuspectCountCategory(int fidSuspectCountCategory) {
        this.fidSuspectCountCategory = fidSuspectCountCategory;
    }

    public String getEtcSuspectCountCategory() {
        return etcSuspectCountCategory;
    }

    public void setEtcSuspectCountCategory(String etcSuspectCountCategory) {
        this.etcSuspectCountCategory = etcSuspectCountCategory;
    }

    public int getFidVictimCategory() {
        return fidVictimCategory;
    }

    public void setFidVictimCategory(int fidVictimCategory) {
        this.fidVictimCategory = fidVictimCategory;
    }

    public int getFidVictimOriginCategory() {
        return fidVictimOriginCategory;
    }

    public void setFidVictimOriginCategory(int fidVictimOriginCategory) {
        this.fidVictimOriginCategory = fidVictimOriginCategory;
    }

    public String getEtcVictimOriginCategory() {
        return etcVictimOriginCategory;
    }

    public void setEtcVictimOriginCategory(String etcVictimOriginCategory) {
        this.etcVictimOriginCategory = etcVictimOriginCategory;
    }

    public int getFidSuspectTransportationCategory() {
        return fidSuspectTransportationCategory;
    }

    public void setFidSuspectTransportationCategory(int fidSuspectTransportationCategory) {
        this.fidSuspectTransportationCategory = fidSuspectTransportationCategory;
    }

    public String getEtcSuspectTransportationCategory() {
        return etcSuspectTransportationCategory;
    }

    public void setEtcSuspectTransportationCategory(String etcSuspectTransportationCategory) {
        this.etcSuspectTransportationCategory = etcSuspectTransportationCategory;
    }

    public int getFidVictimBelongingCategory() {
        return fidVictimBelongingCategory;
    }

    public void setFidVictimBelongingCategory(int fidVictimBelongingCategory) {
        this.fidVictimBelongingCategory = fidVictimBelongingCategory;
    }

    public String getEtcVictimBelongingCategory() {
        return etcVictimBelongingCategory;
    }

    public void setEtcVictimBelongingCategory(String etcVictimBelongingCategory) {
        this.etcVictimBelongingCategory = etcVictimBelongingCategory;
    }

    public int getFidSuspectCharacteristicsCategory() {
        return fidSuspectCharacteristicsCategory;
    }

    public void setFidSuspectCharacteristicsCategory(int fidSuspectCharacteristicsCategory) {
        this.fidSuspectCharacteristicsCategory = fidSuspectCharacteristicsCategory;
    }

    public String getEtcSuspectCharacteristicsCategory() {
        return etcSuspectCharacteristicsCategory;
    }

    public void setEtcSuspectCharacteristicsCategory(String etcSuspectCharacteristicsCategory) {
        this.etcSuspectCharacteristicsCategory = etcSuspectCharacteristicsCategory;
    }

    public int getFidOthersCategory() {
        return fidOthersCategory;
    }

    public void setFidOthersCategory(int fidOthersCategory) {
        this.fidOthersCategory = fidOthersCategory;
    }

    public String getEtcOthersCategory() {
        return etcOthersCategory;
    }

    public void setEtcOthersCategory(String etcOthersCategory) {
        this.etcOthersCategory = etcOthersCategory;
    }

    public String getIncidentPositionDescription() {
        return incidentPositionDescription;
    }

    public void setIncidentPositionDescription(String incidentPositionDescription) {
        this.incidentPositionDescription = incidentPositionDescription;
    }



}
