
# Bailleur

## Ajout d'un objectif bailleur

    POST /api/dmo/lessor_objectives
avec en attribut de la requete :

    {
        "data": {
            "attributes": {
                  "lessor_id": "string", //id du bailleur auquel est rataché l'objectif
                  "activation_date": "Date", //date d'activation
                  "district": "string", //ville sur laquelle s'applique l'objectif 
                                        // (attention, la facon dont est rempli ce champs doit correspondre directement au champs housing_offer.district 
                                        // pour que l'assignation se fasse - sensible a la casse )
                  "department": "string", //département sur lequel s'applique l'objectif 
                                          //(à renseigner si la ville est renseigné, 
                                          // attention, la facon dont est rempli ce champs doit correspondre directement au champs housing_offer.departement 
                                          // pour que l'assignation se fasse - sensible a la casse )
                  "threshold_type": "string", //norme
                  "priority_public": true, //public prioritaire
                  "new_offer": true, //Mise à l’habitation
                  "target_by_typologies": {  
                                            "T2": 30 //renseigner ici l'objectif attendu pour un type de logement donné
                                                     // valeurs possibles : "T1" ,"T2", "T3" etc...  utilisez "all" si l'objectif est pour tout les types de logements
                                            }
                   "agency_id": "string" //Entity_id de la filiale concernée
            }
      }
    }

format json de l'objet retourné :

                     {
                                 ...    
                            "department" : "String",
                              "district" : "String",
                        "threshold_type" : "String",
                       "priority_public" : "String",
                             "new_offer" : "String",
                    "present_typologies" : ["T1"],   //liste des Typologies présentes sur l'objectif
                             "lessor_id" : "String", //ID bailleur
                             "agency_id" : "String", //entity ID
                           "agency_name" : "String", //title de l'entity fournie 
                        "operation_name" : "String",  
                  "target_by_typologies" : {T1: 200}, //objectif initial
                "realized_by_typologies" : {T1:50}, //réalisé
    "objective_difference_by_typologies" : {T1:150} //reste à faire
         "targeted_offers_count" : 200 //nombre d'offre ayant la capacité de valider l'objectif si elles sont "LOUE"
         "lessor_objective_history_ids" : ["6DYZFHDUUS", ".....] id des objet lessor_objective_history concernés
                    }   
 
### Detail des evenements d'objectif bailleurs

recuperer toute l'historique d'un objectif donné :

    GET /api/dmo/lessor_objective_histories?lessor_objective_id={:id}

recuperer un evenement particulier à partir de son id :

    GET /api/dmo/lessor_objective_histories/{:id}

rechercher toutes les offres qui ont validé un objectif donné

    GET /api/dmo/housing_offers?target_objective_ids={objective_id}&lessor_status="LOUE"

rechercher toutes les offres qui pouraient valider un objectif donné si elles passaient à LOUE 

    GET /api/dmo/housing_offers?target_objective_ids={objective_id}&lessor_status[$ne]="LOUE"

   


## Récuperer toutes les opération_name des offres d'un bailleur

    GET /api/dmo/lessor/{:id}/current_operation_names
    
retour json

    [
        "Nom d'opération 1",
        "Nom d'opération 2",
        ...
    ]

## Lier ou dé-lier un utilisateur à un bailleur
Permet de pouvoir identifier le Lessor d'un utilisateur courant (dans les cas ou le bailleur veut lier plusieurs utilisateurs à son compte bailleur, donc en plus du champ `:user_id` du modèle `Hermes::Lessor`)

    Put /api/dmo/lessor/{:id}/add_user
    Put /api/dmo/lessor/{:id}/remove_user

avec en attribut de requete :

    {
        "data": {
            "attributes": {
                "user_id": "string" // id de l'utilisateur à lier au compte bailleur
            }
        }
    }
    
retour json

    "user updated"




## Changer le  champ manual mode d'un bailleur

  Le user doit avoir comme rôle Superadmin
  Si l'objet lessor à un manual mode en true il changera en false et vice versa

    PUT /api/dmo/lessors/{id}/switch_manual_mode

  params nécessaire : id

  retour json: 

    {status: "success", code: 200, message: "manual mode switch to true / false"}



## Operations, secteurs de gestions et contact bailleur

  Pour créer une operation, un secteur de gestion ou un contact bailleur: 

      POST /api/dmo/operations
      POST /api/dmo/management_areas
      data:{
        attributes:{
          name: 'name', # requis
          code: 'code', # non requis, unique et ALSOP|ALSSG par défault
          lessor_id: 'id' #requis si non superadmin

        }
      }

      POST /api/dmo/lessor_contacts
      data:{
        attributes:{
          name: 'name', # requis
          email: 'email', # non requis
          phone: 'phone', # non requis
          lessor_id: 'id' #requis si non superadmin
        }
      }

  Les comptes superadministateur peuvent créer toutes les operations/secteurs/contacts (avec/sans lessor_id)
  Les autres comptes doivent avoir des droits d'accés au bailleur pour pouvoir ajouter des operation/secteur/contact liés

  Pour récupérer la liste des operations/secteurs/contacts :

      GET /api/dmo/operations
      GET /api/dmo/management_areas
      GET /api/dmo/lessor_contacts

  Retourne toutes les opérations/secteurs sans lessor_id + ceux avec un lessor_id dont l'utilisateur a les droits d'accés.
  Possiblité de filtrer par lessor_id en ajoutant &lessor_id=id

## Récupération du/des utilisateurs rdsl affecté à un bailleur 

  Retourne la liste des utilisateurs `rdsl` qui ont une habilitation `administrator` sur ce bailleur.
    
      GET /api/dmo/lessors/:id/rdsl


