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.DocumentType;

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

public class OjCitation extends JSONEntity implements Serializable {

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private DocumentType documentKind;

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

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

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private OjResponsibleParty documentContact;

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

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

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

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


    public DocumentType getDocumentKind() {
        return documentKind;
    }

    public void setDocumentKind(DocumentType documentKind) {
        this.documentKind = documentKind;
    }

    public Map<String, String> getTitle() {
        return title;
    }

    public void setTitle(Map<String, String> title) {
        this.title = title;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public OjResponsibleParty getDocumentContact() {
        return documentContact;
    }
    @Embedded
    public void setDocumentContact(OjResponsibleParty documentContact) {
        this.documentContact = documentContact;
    }

    public Map<String, String> getNotes() {
        return notes;
    }

    public void setNotes(Map<String, String> notes) {
        this.notes = notes;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getIssn() {
        return issn;
    }

    public void setIssn(String issn) {
        this.issn = issn;
    }
}

@@ -505,32 +505,48 @@
 %0A    @Label(en=%22
+Kind of document
 %22)%0A    @Descript
@@ -545,32 +545,66 @@
 Description(en=%22
+Kind of resource attached to data.
 %22)%0A    private D
@@ -655,32 +655,37 @@
 %0A    @Label(en=%22
+Title
 %22)%0A    @Descript
@@ -684,32 +684,126 @@
 Description(en=%22
+Title by which the cited resource is known which offers a quick information about its content.
 %22)%0A    private M
@@ -854,32 +854,36 @@
 %0A    @Label(en=%22
+Date
 %22)%0A    @Descript
@@ -882,32 +882,70 @@
 Description(en=%22
+Reference date for the cited document.
 %22)%0A    private D
@@ -980,32 +980,39 @@
 %0A    @Label(en=%22
+Contact
 %22)%0A    @Descript
@@ -1011,32 +1011,133 @@
 Description(en=%22
+Name and position information for an individual or organization that is responsible for the resource.
 %22)%0A    private O
@@ -1197,32 +1197,37 @@
 %0A    @Label(en=%22
+Notes
 %22)%0A    @Descript
@@ -1226,32 +1226,133 @@
 Description(en=%22
+Some additional details about the resource mainly concerning the domain to which the resource refers.
 %22)%0A    private M
@@ -1403,32 +1403,50 @@
 %0A    @Label(en=%22
+Resource hyperlink
 %22)%0A    @Descript
@@ -1445,32 +1445,99 @@
 Description(en=%22
+Web site link allowing the user access to the information resource.
 %22)%0A    private S
@@ -1574,32 +1574,41 @@
 %0A    @Label(en=%22
+ISBN code
 %22)%0A    @Descript
@@ -1607,32 +1607,150 @@
 Description(en=%22
+If available, the International Standard Book Number can be reported in order to uniquely identify the resource cited.
 %22)%0A    private S
@@ -1791,24 +1791,33 @@
  @Label(en=%22
+ISNN code
 %22)%0A    @Desc
@@ -1828,16 +1828,219 @@
 ion(en=%22
+If available, the International Standard Serial Number (used to identify periodical publications such as reviews and scientific journals) can be reported in order to uniquely identify the resource cited.
 %22)%0A    p

Update OjCitation.java