Publication de simulations
==========================

Ce web-service permet de publier des simulations stockées en PHyC.

Les simulations de débit sont associées à des sites hydro tandis que les simulations de hauteur
sont associées à des stations hydro.

Contrairement au web-service de publication de prévisions, les prévisions associées aux simulations
ne sont pas renvoyées.

Paramètres HTTP
---------------

========= ===========
Paramètre Valeur
========= ===========
Route     simulations
Méthode   POST
========= ===========

Paramètres
----------

Les paramètres doivent être transmis dans le contenu de la requête au format format JSON.

============== ===================================== ========= ===
Nom            Description                           Type      O/F
============== ===================================== ========= ===
cdentites      liste de codes de site                list(str) O
               et/ou de codes de station
grandeur       grandeurs(combinaison de H, Q ou HQ)  str       O
cdmodeles      liste de codes de modèle              list(str) F
statut         statut de la simulation               int       F
qualite        Qualité de la simulation              int       F
apublier       simulations publiques si à true       bool      F
dtproddebut    Date de début de production           datetime  F
dtprodfin      Date de fin de production             datetime  F
dtprevdebut    Date de début des prévisions          datetime  F
dtprevfin      Date de fin des prévisions            datetime  F
dtinsdebut     Date de début d'insertion             datetime  F
dtinsfin       Date de fin d'insertion               datetime  F
nbruns         Nombre de simulations à retourner     int       F
============== ===================================== ========= ===

Paramètres dtminproduction et dtmax production
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ces deux paramètres facultatifs permettent de filtrer selon la date de production des simulations.
Si par exemple ces deux dates sont spécifiées, le ws retourne les simulations dont la date de
production est comprise entre dtminproduction et dtmaxproduction.

Paramètres dtminprevisions et dtmaxprevisions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ces deux paramètres facultatifs permettent de filtrer les simulations selon les dates des prévisions
de la simulation. Si par exemple ces deux dates sont spécifiées, le ws retourne les simulations
contenant des prévisions sont comprises dans l’intervalle de temps
[dtminprevisions - dtmaxprevisions].

Paramètres dtmininsertion et dtmaxinsertion
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Ces deux paramètres facultatifs permettent de filtrer selon les dates de mise en base des
simulations. Si par exemple ces deux dates sont spécifiées, le ws retourne les simulations dont la
date de mise en base est comprise entre dtmininsertion et dtmaxinsertion.

Qualité
^^^^^^^

Le filtre qualité doit être compris entre 0 et 100.

Le web-service renvoie les simulations dont la qualité est supérieure ou égale à ce filtre.

A publier
---------

| Si le filtre est non défini, retourne l'ensemble des simulations.
| Si le filtre est à true, le web-service ne retourne que les simulations publiques
  (type de publication < 20).
| Si le filtre est à false, le web-service ne retourne que les simulations restreintes et privées
  (type de publication >= 20).

Droits de publication
---------------------

Les droits de publication dépendent des droits de publication :

- des sites et des stations;
- des types de publication des simulations.


Type de simulation
^^^^^^^^^^^^^^^^^^

Pour les simulations publiques, les droits de publication ne dépendent que des entités.

Pour les simulations restreintes et privées, il faut être authentifié et avoir le profil modélisateur
ou posséder le droit ADM ou PREVI sur le site ou la station. 

Droits de publication sur les entités
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Pour publier des observations sur une station, il faut avoir les bons droits sur le site dont dépend
 la station **et** la station.

Sites publics et stations publiques ou "publiques sans ct et cc" ou "Hauteur publique"
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Il n'est pas nécessaire d'être authentifié pour publier des observations sur ces entités.

Sites et stations restreints et station de droit "Débit public"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

L'utilisateur doit être authentifié et avoir le profil institutionnel ou posséder un droit sur le
site ou la station.

Sites et stations privés
""""""""""""""""""""""""

L'utilisateur doit être authentifié et posséder un droit sur le site ou la station.

Réponse du  web-service
-----------------------

Le web-service renvoie un json hydrométrie contenant les simulations à publier.

Le json hydrométrie contient les deux propriétés Scenario et Donnees.

Données
^^^^^^^

L'objet Données contiendra l'unique propriété Simuls.

Simuls est une liste non vide d'objets Simul.

Simul
^^^^^

Propriétés de l'objet Simul:

- CdSiteHydro ou CdStationHydro
- DtProdSimul
- GrdSimul
- CdSimul
- IndiceQualSimul
- DtFinValidSimul
- DtDebSimul
- DtFinSimul
- DtBaseSimul
- DtDerObsSimul
- ModeCalSimul
- StSimul
- TypPubliSimul
- SysAltiSimul
- ContexteSimul
- ComSimul
- ComPrivSimul
- ModeSimul
- CdModelePrevision
- CdContact
- CdIntervenant
- schemeAgencyID
- ScnSimul : objet ScnSimul

ScnSimul
^^^^^^^^

Propriétés de l'objet ScnSimul:

- LbScnSimul
- DescScnSimul

Exemple
^^^^^^^

.. code-block:: json
   :caption: Observations hydro au format json

   {
     "Scenario": {},
     "Donnnees": {
       "Simuls": [
         {
           "CdSiteHydro": "A1234567",
           "DtProdSimul": "2021-01-01T10:00:00",
           "GrdSimul": "Q",
           "CdSimul": 0,
           "IndiceQualSimul": 100,
           "DtFinValidSimul": "2021-01-01T12:00:00",
           "DtDebSimul": "2021-01-01T11:00:00",
           "DtFinSimul": "2021-01-01T16:00:00",
           "DtBaseSimul": "2021-01-01T10:00:00",
           "DtDerObsSimul": "2021-01-01T16:00:00",
           "ModeCalSimul": 1,
           "StSimul": 16,
           "TypPubliSimul": 12,
           "SysAltiSimul": 31,
           "ContexteSimul": "Contexte",
           "ComSimul": "Cmnt",
           "ComPrivSimul": "Cmnt privé",
           "ModeSimul": 1,
           "CdModelePrevision": "31XXXX000",
           "CdContact": "0",
           "CdIntervenant": "1537",
           "schemeAgencyID": "SANDRE",
           "ScnSimul": {
             "LbScnSimul": "Lb scénario",
             "DescScnSimul": "Description"
           }
         }
       ]
     }
   }
