package org.fao.fenix.commons.msd.dto.full;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.fao.fenix.commons.annotations.Description;
import org.fao.fenix.commons.annotations.Label;
import org.fao.fenix.commons.msd.dto.JSONEntity;
import org.fao.fenix.commons.msd.dto.type.ConfidentialityStatus;

import javax.persistence.Embedded;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;

public class SeResourceRecords extends JSONEntity implements Serializable {

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private String recordID;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private OjCodeList originOfCollectedValue;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private Date creationDate;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private Map<String, String> dataReliabilityQualifier;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private Double dataReliabilityIndicator;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private ConfidentialityStatus confidentialityStatus;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private OjCodeList observationStatus;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private Map<String, String> remarks;


    public String getRecordID() {
        return recordID;
    }

    public void setRecordID(String recordID) {
        this.recordID = recordID;
    }

    public OjCodeList getOriginOfCollectedValue() {
        return originOfCollectedValue;
    }
    @Embedded
    public void setOriginOfCollectedValue(OjCodeList originOfCollectedValue) {
        this.originOfCollectedValue = originOfCollectedValue;
    }

    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public Map<String, String> getDataReliabilityQualifier() {
        return dataReliabilityQualifier;
    }

    public void setDataReliabilityQualifier(Map<String, String> dataReliabilityQualifier) {
        this.dataReliabilityQualifier = dataReliabilityQualifier;
    }

    public Double getDataReliabilityIndicator() {
        return dataReliabilityIndicator;
    }

    public void setDataReliabilityIndicator(Double dataReliabilityIndicator) {
        this.dataReliabilityIndicator = dataReliabilityIndicator;
    }

    public ConfidentialityStatus getConfidentialityStatus() {
        return confidentialityStatus;
    }

    public void setConfidentialityStatus(ConfidentialityStatus confidentialityStatus) {
        this.confidentialityStatus = confidentialityStatus;
    }

    public OjCodeList getObservationStatus() {
        return observationStatus;
    }
    @Embedded
    public void setObservationStatus(OjCodeList observationStatus) {
        this.observationStatus = observationStatus;
    }

    public Map<String, String> getRemarks() {
        return remarks;
    }

    public void setRemarks(Map<String, String> remarks) {
        this.remarks = remarks;
    }
}

@@ -521,32 +521,49 @@
 %0A    @Label(en=%22
+Record identifier
 %22)%0A    @Descript
@@ -575,99 +575,270 @@
 n= %22
-%22)%0A    private String recordID;%0A%0A    @JsonProperty%0A    @Label(en=%22%22)%0A    @Description(en= %22
+Row identifier. A code that identi%0Ces the measured value associated to each row of the dataset.%22)%0A    private String recordID;%0A%0A    @JsonProperty%0A    @Label(en=%22Origin of collected value%22)%0A    @Description(en= %22The origin of collected data at single-value level.
 %22)%0A 
@@ -909,32 +909,45 @@
 %0A    @Label(en=%22
+Creation date
 %22)%0A    @Descript
@@ -947,32 +947,60 @@
 escription(en= %22
+Creation date of the record.
 %22)%0A    private D
@@ -1055,153 +1055,366 @@
 en=%22
-%22)%0A    @Description(en= %22%22)%0A    private Map%3CString, String%3E dataReliabilityQualifier;%0A%0A    @JsonProperty%0A    @Label(en=%22%22)%0A    @Description(en= %22
+Data reliability qualifier%22)%0A    @Description(en= %22Qualitative assessment of the consistence and stability of the observation.%22)%0A    private Map%3CString, String%3E dataReliabilityQualifier;%0A%0A    @JsonProperty%0A    @Label(en=%22Quantitative indicator of reliability%22)%0A    @Description(en= %22Quantitative indicator of the consistence and stability of the observation.
 %22)%0A 
@@ -1483,32 +1483,53 @@
 %0A    @Label(en=%22
+Restriction in access
 %22)%0A    @Descript
@@ -1529,32 +1529,110 @@
 escription(en= %22
+Level of confidentiality of single values (e.g. pubblic, shared, restricted ).
 %22)%0A    private C
@@ -1701,32 +1701,50 @@
 %0A    @Label(en=%22
+Observation status
 %22)%0A    @Descript
@@ -1744,32 +1744,126 @@
 escription(en= %22
+The status of the reported value (e.g. estmated value, missing value, time seies break . . . )
 %22)%0A    private O
@@ -1925,16 +1925,23 @@
 bel(en=%22
+Remarks
 %22)%0A    @
@@ -1957,16 +1957,70 @@
 on(en= %22
+Additional information related to a single data point.
 %22)%0A    p

Update SeResourceRecords.java