{
  "$id": "urn:person",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "version": "0.4",
  "type": "object",
  "title": "Détails de l'enregistrement de la personne",
  "description": "Informations sur une personne physique.",
  "properties": {
    "isComponent": {
      "title": "Est un composant",
      "description": "Si cette personne est un composant d'une relation indirecte. Lorsque `isComponent` est 'true' : 1) le `recordId` de cette personne DOIT être un élément dans le tableau `componentRecords` de cet énoncé de relation principal, 2) cet énoncé de personne DOIT être antérieur à l'énoncé de relation principal dans un paquet ou un flux de la BODS, 3) le remplacement de cet énoncé de personne DEVRAIT être envisagé lors du remplacement de l'énoncé de relation principal. La valeur `isComponent` de l'énoncé de relation principal DOIT être 'false'.",
      "type": "boolean"
    },
    "personType": {
      "title": "Type de personne",
      "description": "Statut de cette personne, à l'aide de la liste de codes personType. Lorsqu'une personne a le type 'anonymousPerson' ou 'unknownPerson', un motif de l'absence d'information DEVRAIT être fourni dans 'unspecifiedPersonDetails'",
      "type": "string",
      "enum": [
        "anonymousPerson",
        "unknownPerson",
        "knownPerson"
      ],
      "propertyOrder": 4,
      "codelist": "personType.csv",
      "openCodelist": false
    },
    "unspecifiedPersonDetails": {
      "$ref": "urn:components#/$defs/UnspecifiedRecord",
      "description": "Une explication de la raison pour laquelle une personne est anonyme ou inconnue."
    },
    "names": {
      "title": "Noms",
      "description": "Un ou plusieurs noms de cette personne.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Name"
      },
      "propertyOrder": 10
    },
    "identifiers": {
      "title": "Identifiants",
      "description": "Un ou plusieurs identifiants officiels de cette personne. Les numéros d'enregistrement officiel doivent être fournis, le cas échéant.",
      "type": "array",
      "items": {
        "$ref": "urn:components#/$defs/Identifier"
      },
      "propertyOrder": 20
    },
    "nationalities": {
      "title": "Nationalité",
      "description": "Nationalités de cette personne.",
      "type": "array",
      "items": {
        "$ref": "urn:components#/$defs/Country"
      },
      "propertyOrder": 30
    },
    "placeOfBirth": {
      "title": "Lieu de naissance",
      "description": "Lieu où la personne est née.",
      "propertyOrder": 40,
      "$ref": "urn:components#/$defs/Address",
      "properties": {
        "type": {
          "enum": [
            "placeOfBirth"
          ]
        }
      }
    },
    "birthDate": {
      "title": "Date de naissance",
      "description": "Date de naissance de cette personne sous le format AAAA, AAAA-MM ou AAAA-MM-JJ.",
      "type": "string",
      "anyOf": [
        {
          "pattern": "^(\\d{4})(-(1[0-2]|0[1-9]))?$"
        },
        {
          "format": "date"
        }
      ],
      "propertyOrder": 35
    },
    "deathDate": {
      "title": "Date de décès",
      "description": "Date de décès de cette personne sous le format AAAA, AAAA-MM ou AAAA-MM-JJ.",
      "type": "string",
      "anyOf": [
        {
          "pattern": "^(\\d{4})(-(1[0-2]|0[1-9]))?$"
        },
        {
          "format": "date"
        }
      ],
      "propertyOrder": 36
    },
    "taxResidencies": {
      "title": "Domicile fiscal",
      "description": "Domiciles fiscaux de cette personne, comme tableau des objets Pays.",
      "type": "array",
      "items": {
        "$ref": "urn:components#/$defs/Country"
      },
      "propertyOrder": 55
    },
    "addresses": {
      "title": "Adresses",
      "description": "Une ou plusieurs adresses de cette personne.",
      "type": "array",
      "items": {
        "$ref": "urn:components#/$defs/Address",
        "properties": {
          "type": {
            "enum": [
              "residence",
              "service",
              "alternative"
            ]
          }
        }
      },
      "propertyOrder": 60
    },
    "politicalExposure": {
      "type": "object",
      "title": "Exposition politique",
      "description": "Information sur l'éventuelle exposition politique de la personne décrite par cet énoncé. Il convient d'utiliser cette propriété uniquement si les déclarations de personne politiquement exposée (PPE) sont attendues dans le cadre des déclarations des bénéficiaires effectifs.",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "title": "Statut de personne politiquement exposée (PPE)",
          "description": "Cette valeur est 'isPep' ou 'isNotPep' selon que la personne décrite par cet énoncé possède ou non le statut de personne politiquement exposée (PPE). Une valeur 'unknown' signifie que la déclaration du statut de PPE est attendue mais manquante ; le motif de l'absence de données DEVRAIT être fourni dans le tableau `details`.",
          "enum": [
            "isPep",
            "isNotPep",
            "unknown"
          ]
        },
        "details": {
          "type": "array",
          "title": "Détails de la personne politiquement exposée (PPE)",
          "description": "Une ou plusieurs descriptions du statut de personne politiquement exposée (PPE) de cette personne.",
          "items": {
            "$ref": "#/$defs/PepStatusDetails"
          }
        }
      }
    }
  },
  "required": [
    "personType",
    "isComponent"
  ],
  "$defs": {
    "Name": {
      "title": "Nom",
      "description": "Nom par lequel cette personne est connue. Un nom DOIT être indiqué dans `fullName`, et PEUT être réparti dans les champs `familyName`, `givenName` et `patronymicName`, selon les définitions du vocabulaire pour décrire des personnes (Core Person Vocabulary) développé par le programme ISA de la Commission européenne (https://joinup.ec.europa.eu/solution/e-government-core-vocabularies).",
      "type": "object",
      "required": [
        "fullName"
      ],
      "properties": {
        "type": {
          "title": "Type",
          "description": "Statut du nom de la personne, à l'aide de la liste de codes nameType.",
          "type": "string",
          "enum": [
            "legal",
            "translation",
            "transliteration",
            "former",
            "alternative",
            "birth"
          ],
          "codelist": "nameType.csv",
          "openCodelist": false
        },
        "fullName": {
          "title": "Nom complet",
          "description": "Nom complet de la personne.",
          "type": "string"
        },
        "familyName": {
          "title": "Nom de famille",
          "description": "Partie du `fullName` de la personne commun aux membres de sa famille. La valeur peut inclure des préfixes ou des suffixes. (Par ex. 'de Boer', 'van de Putte', 'von und zu Orlow'.) La valeur peut être un nom de famille composé, comme dans les pays hispaniques. Par exemple, le nom de famille de Miguel de Cervantes Saavedra sera enregistré comme 'de Cervantes Saavedra.'",
          "type": "string"
        },
        "givenName": {
          "title": "Prénoms",
          "description": "Partie du `fullName` de la personne qui identifie la personne au sein de sa famille. Le prénom est choisi par les parents à la naissance de la personne ou il peut être reconnu sur le plan juridique comme 'given names' au moyen d'une procédure officielle. Par exemple, le prénom de Johann Sebastian Bach est 'Johann Sebastian'.",
          "type": "string"
        },
        "patronymicName": {
          "title": "Nom patronymique",
          "description": "Partie du `fullName` de la personne qui est héritée du père, une pratique courante dans certains pays comme l'Islande, l'Éthiopie et la Russie. Par exemple, 'Sergeyevich' dans 'Mikhail Sergeyevich Gorbachev'.",
          "type": "string"
        }
      }
    },
    "PepStatusDetails": {
      "title": "Détails du statut de PPE",
      "description": "Informations sur l'engagement politique d'une personne.",
      "type": "object",
      "properties": {
        "reason": {
          "title": "Motif",
          "description": "Motif pour lequel cette personne est déclarée comme personne politiquement exposée.",
          "type": "string"
        },
        "missingInfoReason": {
          "title": "Motifs d'informations manquantes",
          "description": "Explication de l'absence d'indication du statut de PPE de la personne (`politicalExposure.status` est 'unknown'). Il peut s'agir d'une phrase descriptive type du système source ou d'une justification sous forme de texte libre. Lorsque ce champ est présent, il doit être le seul champ à l'exception de la `source`.",
          "type": "string"
        },
        "jurisdiction": {
          "title": "Juridiction",
          "description": "Juridiction où la personne est politiquement exposée.",
          "$ref": "urn:components#/$defs/Jurisdiction"
        },
        "startDate": {
          "title": "Date d'obtention du statut",
          "description": "Date à laquelle cette personne a obtenu le statut de personne politiquement exposée (PPE)\". La date DOIT respecter le format AAAA-MM-JJ. En cas d'absence de précision sur le mois ou la date, la valeur peut être arrondie au premier jour du (premier) mois. Cet arrondi DEVRAIT être noté dans les documents relatifs (comme une politique de publication ou un guide d'utilisation des données).",
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "title": "Date de fin",
          "description": "Date à laquelle cette personne n'a plus le statut de personne politiquement exposée (PPE). La date DOIT respecter le format AAAA-MM-JJ. En cas d'absence de précision sur le mois ou la date, la valeur peut être arrondie au premier jour du (premier) mois. Cet arrondi DEVRAIT être noté dans les documents relatifs (comme une politique de publication ou un guide d'utilisation des données).",
          "type": "string",
          "format": "date"
        },
        "source": {
          "title": "Source",
          "description": "Source de ces informations sur la PPE",
          "$ref": "urn:components#/$defs/Source"
        }
      }
    }
  }
}
