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.Format;
import org.fao.fenix.commons.annotations.Label;
import org.fao.fenix.commons.annotations.Order;
import org.fao.fenix.commons.msd.dto.JSONEntity;
import org.fao.fenix.commons.msd.dto.type.ResponsiblePartyRole;

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

public class OjResponsibleParty extends JSONEntity implements Serializable {

    @JsonProperty
    @Label(en="Point of contact")
    @Description(en="Responsible person-surname, given name, title separated by a delimiter. It contains information about the party who can be contacted for acquiring knowledge the resource.")
    @Order(3)
    @Format(Format.FORMAT.string)
    private String pointOfContact;

    @JsonProperty
    @Label(en="Organization")
    @Description(en="Name of the responsible organization.")
    @Order(1)
    @Format(Format.FORMAT.string)
    private Map<String, String> organization;

    @JsonProperty
    @Label(en="Organization unit/division")
    @Description(en="Addressable subdivision of an organization.")
    @Order(2)
    @Format(Format.FORMAT.string)
    private Map<String, String> organizationUnit;

    @JsonProperty
    @Label(en="Position")
    @Description(en="Role or position of the responsible person.")
    @Order(4)
    @Format(Format.FORMAT.string)
    private Map<String, String> position;

    @JsonProperty
    @Label(en="Role")
    @Description(en="Function performed by the responsible party concerning the resource (e.g. owner, distributor, user. . . )")
    @Order(5)
    @Format(Format.FORMAT.string)
    private ResponsiblePartyRole role;

    @JsonProperty
    @Label(en="Specify")
    @Description(en="Textual metadata element that allows to specify the role performed by the responsible party. This field is conditional to the element <role>.")
    @Order(6)
    @Format(Format.FORMAT.string)
    private Map<String, String> specify;

    @JsonProperty
    @Label(en="Contact information")
    @Description(en="Address/phone number/email of the responsible party.")
    @Order(7)
    @Format(Format.FORMAT.string)
    private OjContact contactInfo;



    public String getPointOfContact() {
        return pointOfContact;
    }

    public void setPointOfContact(String pointOfContact) {
        this.pointOfContact = pointOfContact;
    }

    public Map<String, String> getPosition() {
        return position;
    }

    public void setPosition(Map<String, String> position) {
        this.position = position;
    }

    public ResponsiblePartyRole getRole() {
        return role;
    }

    public void setRole(ResponsiblePartyRole role) {
        this.role = role;
    }

    public Map<String, String> getSpecify() {
        return specify;
    }

    public void setSpecify(Map<String, String> specify) {
        this.specify = specify;
    }

    public OjContact getContactInfo() {
        return contactInfo;
    }
    @Embedded
    public void setContactInfo(OjContact contactInfo) {
        this.contactInfo = contactInfo;
    }

    public Map<String, String> getOrganization() {
        return organization;
    }

    public void setOrganization(Map<String, String> organization) {
        this.organization = organization;
    }

    public Map<String, String> getOrganizationUnit() {
        return organizationUnit;
    }

    public void setOrganizationUnit(Map<String, String> organizationUnit) {
        this.organizationUnit = organizationUnit;
    }
}

@@ -620,18 +620,65 @@
 contact%22
+, fr=%22Point de contact%22, es=%22Punto de contacto%22
 )%0A
-
     @Des
@@ -989,24 +989,62 @@
 rganization%22
+, fr=%22Organisation%22, es=%22Organizaci%C3%B3n%22
 )%0A    @Descr
@@ -1245,24 +1245,103 @@
 it/division%22
+, fr=%22Unit%C3%A9/division dans l'organisation%22, es=%22Unidad/divisi%C3%B3n de organizaci%C3%B3n%22
 )%0A    @Descr
@@ -1534,24 +1534,54 @@
 n=%22Position%22
+, fr=%22Position%22, es=%22Posici%C3%B3n%22
 )%0A    @Descr
@@ -1766,16 +1766,45 @@
 n=%22Role%22
+, fr=%22R%C3%B4le%22, es=%22Funci%C3%B3n/rol%22
 )%0A    @D
@@ -2055,16 +2055,50 @@
 Specify%22
+, fr=%22Sp%C3%A9cifier%22, es=%22Especificar%22
 )%0A    @D
@@ -2356,32 +2356,32 @@
   @JsonProperty%0A
-
     @Label(en=%22C
@@ -2399,16 +2399,45 @@
 rmation%22
+, fr=%22Contact%22, es=%22Contacto%22
 )%0A    @D

Update OjResponsibleParty.java