{
  "title": "Agenda",
  "$comment": "Discussion https://forum.en-root.org/t/signification-de-lagenda/172",
  "description": "Toutes les réunions de commissions, les séances publiques, les groupes d'amitiés `etc <organe.html#code-du-type-d-organe>`__. Réunion qui a lieu dans une salle réservée dans le système informatique de l’assemblée nationale, y compris les séances publiques qui ont lieu dans l'hémicycle. Cela peut aussi être une réunion dite internationale qui a lieu hors de l'assemblée.",

  "type": "object",
  "additionalProperties": false,
  "properties": {
    "uid": {
      "description": "Identifiant unique.",
      "type": "string"
    },
    "timestampDebut": {
      "description": "Date et heure du début de la réunion.",
      "format": "date-time",
      "type": "string"
    },
    "timestampFin": {
      "description": "Date et heure de la fin de la réunion.",
      "format": "date-time",
      "type": "string"
    },
    "captationVideo": {
      "description": "Vrai si la réunion est enregistrée en vidéo.",
      "type": "boolean"
    },
    "compteRenduRef": {
      "description": "Identifiant unique du `compte rendu <http://data.assemblee-nationale.fr/travaux-parlementaires/debats>`__ d'une séance publique. Uniquement si xsiType égal à 'seance_type'.",
      "$comment": "Discussion https://forum.en-root.org/t/signfication-du-champ-compterenduref-dans-un-agenda/170",
      "type": "string"
    },
    "cycleDeVie": {
      "description": "Cycle de vie de la réunion.",
      "$ref": "CycleDeVie.json"
    },
    "demandeurs": {
      "description": "Le cas échéant l'`organe <organe.html>`__ et/ou les `acteurs <acteur.html>`__ à l'initiative de la réunion.",
      "properties": {
        "acteurs": {
	  "description": "Liste des `personnes <acteur.html>`__ à l'initiative de la réunion.",
          "items": {
            "properties": {
              "acteurRef": {
		"description": "Identifiant unique `de l'acteur <acteur.html>`__.",
                "type": "string"
              },
              "nom": {
		"description": "Civilité Prénom Nom `de l'acteur <acteur.html>`__.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "organe": {
          "properties": {
            "nom": {
	      "description": "Nom de l'`organe <organe.html>`__",
              "type": "string"
            },
            "organeRef": {
	      "description": "Identifiant unique de l'`organe <organe.html>`__",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "formatReunion": {
      "$comment": "Discussion https://forum.en-root.org/t/signification-du-champ-reunionformat-dans-un-agenda/174",
      "description": "Le contenu de ce champ n'est pas défini.",
      "enum": [
        "AuditionExterne",
        "AuditionParPresidentCommission",
        "Ordinaire"
      ],
      "type": "string"
    },
    "identifiants": {
      "description": "Identifiant de la séance publique. Uniquement si xsiType égal à 'seance_type'.",
      "properties": {
        "dateSeance": {
	  "description": "Date à laquelle la séance publique a lieu.",
          "type": "string"
        },
        "idJo": {
	  "description": "Identifiant du journal officiel composé de l'année sur quatre chiffres et du numéro de séance (**numSeanceJo**) sur quatre chiffres (exemple: 20190053).",
          "type": "string"
        },
        "numSeanceJo": {
	  "description": "Numérotation de la séance selon l'ordre du journal officiel.",
          "type": "string"
        },
        "quantieme": {
	  "description": "Numéro de la séance dans la journée.",
          "enum": [
            "Deuxième",
            "Première",
            "Troisième",
            "Unique"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "infosReunionsInternationale": {
      "description": "Informations sur les personnes et pays concernées par une réunion de commission qui concerne l'international, le cas échéant. Uniquement si xsiType égal à 'reunionCommission_type'.",
      "properties": {
        "estReunionInternationale": {
	  "description": "'false' si la réunion ne concerne pas l'international, 'true' sinon.",
          "type": "boolean"
        },
        "informationsComplementaires": {
	  "description": "Contient parfois le nom de la personne qui organise la réunion.",
          "type": "string"
        },
        "listePays": {
	  "description": "Le contenu de ce champ n'est pas défini.",
          "items": {
	    "$comment": "Discussion https://forum.en-root.org/t/signification-du-champ-listepays-dun-organe-ou-dun-agenda/61",
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "lieu": {
      "description": "Lieu de la réunion.",
      "properties": {
        "code": {
	  "description": "Code du lieu de la réunion: S pour sénat, AN pour assemblée nationale, CG pour congrès, SALREU* pour les salles de réunion.",
          "type": "string"
        },
        "libelleCourt": {
	  "description": "Nom du lieu de la réunion.",
          "type": "string"
        },
        "libelleLong": {
	  "description": "Nom du lieu de la réunion et une indication sur son addresse.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "odj": {
      "properties": {
        "convocationOdj": {
	  "description": "Texte décrivant l'objet de la réunion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pointsOdj": {
	  "description": "Liste des points inscrits à l'ordre du jour de la réunion",
          "items": {
            "$ref": "PointOdj.json"
          },
          "type": "array"
        },
        "resumeOdj": {
	  "description": "Texte court décrivant l'objet de la réunion.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "organeReuniRef": {
      "$comment": "Discussion https://forum.en-root.org/t/signification-du-champ-organereuniref-dans-un-agenda/173",
      "description": "Le cas échéant, l’organe qui se réunit. Ce n’est pas nécessairement identique au demandeur. Par exemple le président de l’assemblée nationale convoque la conférence des présidents.",
      "type": "string"
    },
    "ouverturePresse": {
      "description": "'true' si la réunion est accessible à la presse, 'false' sinon",
      "type": "boolean"
    },
    "participants": {
      "properties": {
        "participantsInternes": {
	  "description": "Liste des personnes participant à la réunion.",
          "items": {
            "properties": {
              "acteurRef": {
		"description": "Indentifiant unique (uid) de l'`acteur <acteur.html>`__ participant à la réunion.",
                "type": "string"
              },
              "presence": {
		"description": "La valeur est 'absent' ou 'excusé' si la personne n'a pas participé à la réunion, 'présent' sinon.",
		"enum": [
                  "absent",
                  "excusé",
                  "présent"
		],
		"type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "personnesAuditionnees": {
	  "description": "Liste des personnes auditionnées durant la réunion.",
          "items": {
            "properties": {
              "dateNais": {
		"description": "Date de naissance.",
		"anyOf": [
		  { "format": "date-time", "type": "string" },
		  { "type": "null" }
		]
              },
              "ident": {
		"properties": {
                  "alpha": {
		    "description": "Le contenu de ce champ n'est pas défini.",
                    "type": "string"
                  },
                  "civ": {
		    "description": "Civilité.",
		    "enum": [
                      "M.",
                      "Mme"
		    ],
		    "type": "string"
                  },
                  "nom": {
		    "description": "Nom de famille.",
                    "type": "string"
                  },
                  "prenom": {
		    "description": "Prénom.",
                    "type": "string"
                  },
                  "trigramme": {
		    "description": "Le contenu de ce champ n'est pas défini.",
                    "type": "string"
                  }
		},
		"type": "object"
              },
              "uid": {
		"description": "Identifiant unique de l'`acteur <acteur.html>`__ ou bien, dans le cas ou il ne s'agit pas d'un acteur, un identifiant unique de personne externe débutant par PE qui est utilisé uniquement dans ce contexte.",
                "type": "string"
              },
              "xsiType": {
		"enum": [
                  "IdActeur_type",
                  "IdPersonneExterne_type"
		],
		"type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "session": {
      "description": "La `session parlementaire <https://fr.wikipedia.org/wiki/Session_parlementaire>`__ durant laquelle la séance publique a eu lieu. Uniquement si xsiType égal à 'seance_type'.",
      "$comment": "Discussion https://git.en-root.org/tricoteuses/tricoteuses-assemblee-qa/issues/11",
      "properties": {
        "label": {
	  "description": "Description de la session parlementaire, incluant les dates de début et de fin.",
          "type": "string"
        },
        "debut": {
	  "description": "Date du début de la session parlementaire.",
	  "format": "date",
          "type": "string"
        },
        "fin": {
	  "description": "Date de la fin de la session parlementaire.",
	  "format": "date",
          "type": "string"
        }
      },
      "required": [
	"label",
	"debut"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "typeReunion": {
      "description": "Le contenu de ce champ n'est pas défini.",
      "$comment": "Discussion https://forum.en-root.org/t/signification-du-champ-typereunion-dun-agenda/190",
      "type": "string"
    },
    "schemaVersion": {
      "type": "string"
    },
    "xsiType": {
      "enum": [
        "reunionCommission_type",
        "reunionInitParlementaire_type",
        "seance_type"
      ],
      "type": "string"
    }
  },
  "required": [
    "uid"
  ],

  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "Agenda.json",
  "$$target": "Agenda.json"
}
