package com.banesco.infrastructure.dtos.osb;

import io.quarkus.runtime.annotations.RegisterForReflection;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

@RegisterForReflection
public class Status {


    protected String statusType;

    protected String statusCode;

    protected String statusDesc;

    protected String applicationName;

    protected BigInteger lineNumber;

    protected List<AdditionalStatus> additionalStatus;

    protected String severity;

    protected String statusInd;

    protected String logId;

    /**
     * Gets the value of the statusType property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getStatusType() {
        return statusType;
    }

    /**
     * Sets the value of the statusType property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setStatusType(String value) {
        this.statusType = value;
    }

    /**
     * Gets the value of the statusCode property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getStatusCode() {
        return statusCode;
    }

    /**
     * Sets the value of the statusCode property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setStatusCode(String value) {
        this.statusCode = value;
    }

    /**
     * Gets the value of the statusDesc property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getStatusDesc() {
        return statusDesc;
    }

    /**
     * Sets the value of the statusDesc property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setStatusDesc(String value) {
        this.statusDesc = value;
    }

    /**
     * Gets the value of the applicationName property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getApplicationName() {
        return applicationName;
    }

    /**
     * Sets the value of the applicationName property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setApplicationName(String value) {
        this.applicationName = value;
    }

    /**
     * Gets the value of the lineNumber property.
     *
     * @return possible object is
     * {@link BigInteger }
     */
    public BigInteger getLineNumber() {
        return lineNumber;
    }

    /**
     * Sets the value of the lineNumber property.
     *
     * @param value allowed object is
     *              {@link BigInteger }
     */
    public void setLineNumber(BigInteger value) {
        this.lineNumber = value;
    }

    /**
     * Gets the value of the additionalStatus property.
     *
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the Jakarta XML Binding object.
     * This is why there is not a <CODE>set</CODE> method for the additionalStatus property.
     *
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAdditionalStatus().add(newItem);
     * </pre>
     *
     *
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link AdditionalStatus }
     */
    public List<AdditionalStatus> getAdditionalStatus() {
        if (additionalStatus == null) {
            additionalStatus = new ArrayList<AdditionalStatus>();
        }
        return this.additionalStatus;
    }

    /**
     * Gets the value of the severity property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getSeverity() {
        return severity;
    }

    /**
     * Sets the value of the severity property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setSeverity(String value) {
        this.severity = value;
    }

    /**
     * Gets the value of the statusInd property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getStatusInd() {
        return statusInd;
    }

    /**
     * Sets the value of the statusInd property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setStatusInd(String value) {
        this.statusInd = value;
    }

    /**
     * Gets the value of the logId property.
     *
     * @return possible object is
     * {@link String }
     */
    public String getLogId() {
        return logId;
    }

    /**
     * Sets the value of the logId property.
     *
     * @param value allowed object is
     *              {@link String }
     */
    public void setLogId(String value) {
        this.logId = value;
    }

}
