diff --git a/3/ecolyo.74e890e09b54b83ef4d1.js b/1/ecolyo.79418538f98e522ffa14.js
similarity index 99%
rename from 3/ecolyo.74e890e09b54b83ef4d1.js
rename to 1/ecolyo.79418538f98e522ffa14.js
index d4cea06104074ca668608e70c0e1bef45b9126b8..1df9d5fb69958a769e643d8e76fb22377b983efe 100644
--- a/3/ecolyo.74e890e09b54b83ef4d1.js
+++ b/1/ecolyo.79418538f98e522ffa14.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{
 
 /***/ "/Sqe":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/11/ecolyo.e87a00fb80b75474ca62.js b/10/ecolyo.1a07d85ce2906255e036.js
similarity index 99%
rename from 11/ecolyo.e87a00fb80b75474ca62.js
rename to 10/ecolyo.1a07d85ce2906255e036.js
index 2c1b0f49e6dc5b00f4d30f2f25aba8ec4bc65629..df773a5680755feefd399b5befaef5fa9634f4bc 100644
--- a/11/ecolyo.e87a00fb80b75474ca62.js
+++ b/10/ecolyo.1a07d85ce2906255e036.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "GwQd":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/12/ecolyo.6c8d5abaa410f671dff9.js b/11/ecolyo.9b513c202205eecc62de.js
similarity index 99%
rename from 12/ecolyo.6c8d5abaa410f671dff9.js
rename to 11/ecolyo.9b513c202205eecc62de.js
index 59998eb5882450e9db6cd992358d159edebe014a..3ea18934ceb40ebbd8f4d43a6843374189610bc4 100644
--- a/12/ecolyo.6c8d5abaa410f671dff9.js
+++ b/11/ecolyo.9b513c202205eecc62de.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{
 
 /***/ "LUT6":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/5/ecolyo.2cec1248000a16de3703.js b/12/ecolyo.a93c3508be46cf2c2aa2.js
similarity index 78%
rename from 5/ecolyo.2cec1248000a16de3703.js
rename to 12/ecolyo.a93c3508be46cf2c2aa2.js
index 28bba325a9d26958f3a166f7024785be1fded937..603e73f69fb82217a5759d259220cc5f9df3e148 100644
--- a/5/ecolyo.2cec1248000a16de3703.js
+++ b/12/ecolyo.a93c3508be46cf2c2aa2.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{
 
 /***/ "/wWz":
 /***/ (function(module, exports, __webpack_require__) {
@@ -295,297 +295,6 @@ exports.default = _default2;
 
 /***/ }),
 
-/***/ "VjcQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(module) {
-
-var _interopRequireDefault = __webpack_require__("TqRt");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
-
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
-
-var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
-
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
-var _cozyClient = __webpack_require__("SH7X");
-
-var _doctypes = __webpack_require__("D2hQ");
-
-var _fluidConfig = _interopRequireDefault(__webpack_require__("JIzA"));
-
-(function () {
-  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
-  enterModule && enterModule(module);
-})();
-
-var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
-  return a;
-};
-
-var FluidPricesService = /*#__PURE__*/function () {
-  function FluidPricesService(_client) {
-    (0, _classCallCheck2.default)(this, FluidPricesService);
-    (0, _defineProperty2.default)(this, "_client", void 0);
-    this._client = _client;
-  }
-  /**
-   * Get all prices available in database
-   * @returns {FluidPrice[]}
-   */
-
-
-  (0, _createClass2.default)(FluidPricesService, [{
-    key: "getAllPrices",
-    value: function () {
-      var _getAllPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var query, _yield$this$_client$q, fluidsPrices;
-
-        return _regenerator.default.wrap(function _callee$(_context) {
-          while (1) {
-            switch (_context.prev = _context.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE);
-                _context.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q = _context.sent;
-                fluidsPrices = _yield$this$_client$q.data;
-                return _context.abrupt("return", fluidsPrices);
-
-              case 6:
-              case "end":
-                return _context.stop();
-            }
-          }
-        }, _callee, this);
-      }));
-
-      function getAllPrices() {
-        return _getAllPrices.apply(this, arguments);
-      }
-
-      return getAllPrices;
-    }()
-    /**
-     * Get a price according to a fluidType and a data. This method return the nearest and valid price for the given date.
-     * @param {FluidType} fluidType
-     * @param {DateTime} date
-     * @returns {FluidPrice}
-     */
-
-  }, {
-    key: "getPrices",
-    value: function () {
-      var _getPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fluidType, date) {
-        var query, _yield$this$_client$q2, fluidsPrices;
-
-        return _regenerator.default.wrap(function _callee2$(_context2) {
-          while (1) {
-            switch (_context2.prev = _context2.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
-                  startDate: {
-                    $lt: date.toString()
-                  },
-                  fluidType: fluidType
-                }).sortBy([{
-                  startDate: 'desc'
-                }]).limitBy(1);
-                _context2.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q2 = _context2.sent;
-                fluidsPrices = _yield$this$_client$q2.data;
-                return _context2.abrupt("return", fluidsPrices[0]);
-
-              case 6:
-              case "end":
-                return _context2.stop();
-            }
-          }
-        }, _callee2, this);
-      }));
-
-      function getPrices(_x, _x2) {
-        return _getPrices.apply(this, arguments);
-      }
-
-      return getPrices;
-    }()
-    /**
-     * Get current prices for all fluidTypes.
-     * @returns {FluidPrice[]}
-     */
-
-  }, {
-    key: "getAllLastPrices",
-    value: function () {
-      var _getAllLastPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-        var query, _yield$this$_client$q3, fluidsPrices, configService, fluidConfig, recoveredFluidsPrices;
-
-        return _regenerator.default.wrap(function _callee3$(_context3) {
-          while (1) {
-            switch (_context3.prev = _context3.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
-                  endDate: {
-                    $eq: null
-                  }
-                }).limitBy(3);
-                _context3.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q3 = _context3.sent;
-                fluidsPrices = _yield$this$_client$q3.data;
-
-                if (!(fluidsPrices.length !== 3)) {
-                  _context3.next = 12;
-                  break;
-                }
-
-                configService = new _fluidConfig.default();
-                fluidConfig = configService.getFluidConfig();
-                recoveredFluidsPrices = []; // Getting default fluid price
-
-                fluidConfig.forEach(function (config) {
-                  recoveredFluidsPrices.push({
-                    _id: '0',
-                    fluidType: config.fluidTypeId,
-                    price: config.coefficient,
-                    startDate: config.startDate,
-                    endDate: ''
-                  });
-                }); // Replacing default prices if available
-
-                fluidsPrices.forEach(function (fluidPrice) {
-                  recoveredFluidsPrices[fluidPrice.fluidType] = fluidPrice;
-                });
-                return _context3.abrupt("return", recoveredFluidsPrices);
-
-              case 12:
-                return _context3.abrupt("return", fluidsPrices);
-
-              case 13:
-              case "end":
-                return _context3.stop();
-            }
-          }
-        }, _callee3, this);
-      }));
-
-      function getAllLastPrices() {
-        return _getAllLastPrices.apply(this, arguments);
-      }
-
-      return getAllLastPrices;
-    }()
-    /**
-     * Delete all fluidPrices entities from the db
-     * @returns {boolean} - true when deleted with success
-     * @throws {Error}
-     */
-
-  }, {
-    key: "deleteAllFluidsPrices",
-    value: function () {
-      var _deleteAllFluidsPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
-        var fluidsPrices, index;
-        return _regenerator.default.wrap(function _callee4$(_context4) {
-          while (1) {
-            switch (_context4.prev = _context4.next) {
-              case 0:
-                _context4.next = 2;
-                return this.getAllPrices();
-
-              case 2:
-                fluidsPrices = _context4.sent;
-                _context4.prev = 3;
-                index = 0;
-
-              case 5:
-                if (!(index < fluidsPrices.length)) {
-                  _context4.next = 11;
-                  break;
-                }
-
-                _context4.next = 8;
-                return this._client.destroy(fluidsPrices[index]);
-
-              case 8:
-                index++;
-                _context4.next = 5;
-                break;
-
-              case 11:
-                return _context4.abrupt("return", true);
-
-              case 14:
-                _context4.prev = 14;
-                _context4.t0 = _context4["catch"](3);
-                return _context4.abrupt("return", false);
-
-              case 17:
-              case "end":
-                return _context4.stop();
-            }
-          }
-        }, _callee4, this, [[3, 14]]);
-      }));
-
-      function deleteAllFluidsPrices() {
-        return _deleteAllFluidsPrices.apply(this, arguments);
-      }
-
-      return deleteAllFluidsPrices;
-    }()
-  }, {
-    key: "__reactstandin__regenerateByEval",
-    value: // @ts-ignore
-    function __reactstandin__regenerateByEval(key, code) {
-      // @ts-ignore
-      this[key] = eval(code);
-    }
-  }]);
-  return FluidPricesService;
-}();
-
-exports.default = FluidPricesService;
-;
-
-(function () {
-  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
-
-  if (!reactHotLoader) {
-    return;
-  }
-
-  reactHotLoader.register(FluidPricesService, "FluidPricesService", "/builds/web-et-numerique/llle_project/ecolyo/src/services/fluidsPrices.service.ts");
-})();
-
-;
-
-(function () {
-  var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
-  leaveModule && leaveModule(module);
-})();
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))
-
-/***/ }),
-
 /***/ "eJYr":
 /***/ (function(module, exports, __webpack_require__) {
 
diff --git a/4/ecolyo.004f8f52b69002914058.js b/2/ecolyo.fa63fc2ae5b91e96431e.js
similarity index 99%
rename from 4/ecolyo.004f8f52b69002914058.js
rename to 2/ecolyo.fa63fc2ae5b91e96431e.js
index 36fec99a2942f4b7bff7dc3618845a3d8120b8fd..066489090357c3fad02169f495e758e9796358e6 100644
--- a/4/ecolyo.004f8f52b69002914058.js
+++ b/2/ecolyo.fa63fc2ae5b91e96431e.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
 
 /***/ "/knn":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/6/ecolyo.fefa59f541d74c8d4b51.js b/3/ecolyo.dbb25bab5bf2868d7581.js
similarity index 99%
rename from 6/ecolyo.fefa59f541d74c8d4b51.js
rename to 3/ecolyo.dbb25bab5bf2868d7581.js
index a889aeed484290f19ef5626ac8ed447bdfee9779..090f4e0bcf39cb29992d0be7755caee5f6ed1fbb 100644
--- a/6/ecolyo.fefa59f541d74c8d4b51.js
+++ b/3/ecolyo.dbb25bab5bf2868d7581.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{
 
 /***/ "/y87":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/7/ecolyo.aa4f45889934d2a358e5.js b/4/ecolyo.943c56d53127de0c0b5b.js
similarity index 99%
rename from 7/ecolyo.aa4f45889934d2a358e5.js
rename to 4/ecolyo.943c56d53127de0c0b5b.js
index e4c0106992420a291249d74757f9f2a450e0ed7d..4446215d5088d39d286f11d93408417387898a72 100644
--- a/7/ecolyo.aa4f45889934d2a358e5.js
+++ b/4/ecolyo.943c56d53127de0c0b5b.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[7],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{
 
 /***/ "1MlH":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/8/ecolyo.60331db9adc9ed9603b9.js b/5/ecolyo.732993d7f79b32a81919.js
similarity index 75%
rename from 8/ecolyo.60331db9adc9ed9603b9.js
rename to 5/ecolyo.732993d7f79b32a81919.js
index b8cac48468a0f9a29266fe536d4d7e8f3930cb2d..efe7c696f3f5fda9ce3bfb1314c7edc07f8a45ac 100644
--- a/8/ecolyo.60331db9adc9ed9603b9.js
+++ b/5/ecolyo.732993d7f79b32a81919.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{
 
 /***/ "1k9e":
 /***/ (function(module, exports, __webpack_require__) {
@@ -263,297 +263,6 @@ exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** BLUE **
 
 
 
-/***/ }),
-
-/***/ "VjcQ":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(module) {
-
-var _interopRequireDefault = __webpack_require__("TqRt");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
-
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
-
-var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
-
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
-var _cozyClient = __webpack_require__("SH7X");
-
-var _doctypes = __webpack_require__("D2hQ");
-
-var _fluidConfig = _interopRequireDefault(__webpack_require__("JIzA"));
-
-(function () {
-  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
-  enterModule && enterModule(module);
-})();
-
-var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
-  return a;
-};
-
-var FluidPricesService = /*#__PURE__*/function () {
-  function FluidPricesService(_client) {
-    (0, _classCallCheck2.default)(this, FluidPricesService);
-    (0, _defineProperty2.default)(this, "_client", void 0);
-    this._client = _client;
-  }
-  /**
-   * Get all prices available in database
-   * @returns {FluidPrice[]}
-   */
-
-
-  (0, _createClass2.default)(FluidPricesService, [{
-    key: "getAllPrices",
-    value: function () {
-      var _getAllPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var query, _yield$this$_client$q, fluidsPrices;
-
-        return _regenerator.default.wrap(function _callee$(_context) {
-          while (1) {
-            switch (_context.prev = _context.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE);
-                _context.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q = _context.sent;
-                fluidsPrices = _yield$this$_client$q.data;
-                return _context.abrupt("return", fluidsPrices);
-
-              case 6:
-              case "end":
-                return _context.stop();
-            }
-          }
-        }, _callee, this);
-      }));
-
-      function getAllPrices() {
-        return _getAllPrices.apply(this, arguments);
-      }
-
-      return getAllPrices;
-    }()
-    /**
-     * Get a price according to a fluidType and a data. This method return the nearest and valid price for the given date.
-     * @param {FluidType} fluidType
-     * @param {DateTime} date
-     * @returns {FluidPrice}
-     */
-
-  }, {
-    key: "getPrices",
-    value: function () {
-      var _getPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fluidType, date) {
-        var query, _yield$this$_client$q2, fluidsPrices;
-
-        return _regenerator.default.wrap(function _callee2$(_context2) {
-          while (1) {
-            switch (_context2.prev = _context2.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
-                  startDate: {
-                    $lt: date.toString()
-                  },
-                  fluidType: fluidType
-                }).sortBy([{
-                  startDate: 'desc'
-                }]).limitBy(1);
-                _context2.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q2 = _context2.sent;
-                fluidsPrices = _yield$this$_client$q2.data;
-                return _context2.abrupt("return", fluidsPrices[0]);
-
-              case 6:
-              case "end":
-                return _context2.stop();
-            }
-          }
-        }, _callee2, this);
-      }));
-
-      function getPrices(_x, _x2) {
-        return _getPrices.apply(this, arguments);
-      }
-
-      return getPrices;
-    }()
-    /**
-     * Get current prices for all fluidTypes.
-     * @returns {FluidPrice[]}
-     */
-
-  }, {
-    key: "getAllLastPrices",
-    value: function () {
-      var _getAllLastPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-        var query, _yield$this$_client$q3, fluidsPrices, configService, fluidConfig, recoveredFluidsPrices;
-
-        return _regenerator.default.wrap(function _callee3$(_context3) {
-          while (1) {
-            switch (_context3.prev = _context3.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
-                  endDate: {
-                    $eq: null
-                  }
-                }).limitBy(3);
-                _context3.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q3 = _context3.sent;
-                fluidsPrices = _yield$this$_client$q3.data;
-
-                if (!(fluidsPrices.length !== 3)) {
-                  _context3.next = 12;
-                  break;
-                }
-
-                configService = new _fluidConfig.default();
-                fluidConfig = configService.getFluidConfig();
-                recoveredFluidsPrices = []; // Getting default fluid price
-
-                fluidConfig.forEach(function (config) {
-                  recoveredFluidsPrices.push({
-                    _id: '0',
-                    fluidType: config.fluidTypeId,
-                    price: config.coefficient,
-                    startDate: config.startDate,
-                    endDate: ''
-                  });
-                }); // Replacing default prices if available
-
-                fluidsPrices.forEach(function (fluidPrice) {
-                  recoveredFluidsPrices[fluidPrice.fluidType] = fluidPrice;
-                });
-                return _context3.abrupt("return", recoveredFluidsPrices);
-
-              case 12:
-                return _context3.abrupt("return", fluidsPrices);
-
-              case 13:
-              case "end":
-                return _context3.stop();
-            }
-          }
-        }, _callee3, this);
-      }));
-
-      function getAllLastPrices() {
-        return _getAllLastPrices.apply(this, arguments);
-      }
-
-      return getAllLastPrices;
-    }()
-    /**
-     * Delete all fluidPrices entities from the db
-     * @returns {boolean} - true when deleted with success
-     * @throws {Error}
-     */
-
-  }, {
-    key: "deleteAllFluidsPrices",
-    value: function () {
-      var _deleteAllFluidsPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
-        var fluidsPrices, index;
-        return _regenerator.default.wrap(function _callee4$(_context4) {
-          while (1) {
-            switch (_context4.prev = _context4.next) {
-              case 0:
-                _context4.next = 2;
-                return this.getAllPrices();
-
-              case 2:
-                fluidsPrices = _context4.sent;
-                _context4.prev = 3;
-                index = 0;
-
-              case 5:
-                if (!(index < fluidsPrices.length)) {
-                  _context4.next = 11;
-                  break;
-                }
-
-                _context4.next = 8;
-                return this._client.destroy(fluidsPrices[index]);
-
-              case 8:
-                index++;
-                _context4.next = 5;
-                break;
-
-              case 11:
-                return _context4.abrupt("return", true);
-
-              case 14:
-                _context4.prev = 14;
-                _context4.t0 = _context4["catch"](3);
-                return _context4.abrupt("return", false);
-
-              case 17:
-              case "end":
-                return _context4.stop();
-            }
-          }
-        }, _callee4, this, [[3, 14]]);
-      }));
-
-      function deleteAllFluidsPrices() {
-        return _deleteAllFluidsPrices.apply(this, arguments);
-      }
-
-      return deleteAllFluidsPrices;
-    }()
-  }, {
-    key: "__reactstandin__regenerateByEval",
-    value: // @ts-ignore
-    function __reactstandin__regenerateByEval(key, code) {
-      // @ts-ignore
-      this[key] = eval(code);
-    }
-  }]);
-  return FluidPricesService;
-}();
-
-exports.default = FluidPricesService;
-;
-
-(function () {
-  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
-
-  if (!reactHotLoader) {
-    return;
-  }
-
-  reactHotLoader.register(FluidPricesService, "FluidPricesService", "/builds/web-et-numerique/llle_project/ecolyo/src/services/fluidsPrices.service.ts");
-})();
-
-;
-
-(function () {
-  var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
-  leaveModule && leaveModule(module);
-})();
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))
-
 /***/ }),
 
 /***/ "ZpZG":
diff --git a/9/ecolyo.9bc23205cb3016a1dea7.js b/6/ecolyo.a3016721fa562bc5b0bc.js
similarity index 98%
rename from 9/ecolyo.9bc23205cb3016a1dea7.js
rename to 6/ecolyo.a3016721fa562bc5b0bc.js
index 9b5521762cb8e06f977bb22e668b299dd9e55c64..87ddb8f04f8084f62731d63a8acb342693f46d62 100644
--- a/9/ecolyo.9bc23205cb3016a1dea7.js
+++ b/6/ecolyo.a3016721fa562bc5b0bc.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
 /***/ "1usQ":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/10/ecolyo.2441033c8574fc0fe5b1.js b/8/ecolyo.359bcab33751e9de7534.js
similarity index 99%
rename from 10/ecolyo.2441033c8574fc0fe5b1.js
rename to 8/ecolyo.359bcab33751e9de7534.js
index 18544b6c88f275a45149653fbf11818e5163b5b4..ae0594f99d77db5d09756f74355ef4639d29e29b 100644
--- a/10/ecolyo.2441033c8574fc0fe5b1.js
+++ b/8/ecolyo.359bcab33751e9de7534.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
 
 /***/ "2PQp":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/2/ecolyo.5b4a8e1d505e9d7001be.js b/9/ecolyo.ea36d9441e5e67ed4c61.js
similarity index 99%
rename from 2/ecolyo.5b4a8e1d505e9d7001be.js
rename to 9/ecolyo.ea36d9441e5e67ed4c61.js
index 62f9f182a5245d2ce23e0f45493895a808118026..35981c3a781624a51a8b040db7bd0a4a986b1ac9 100644
--- a/2/ecolyo.5b4a8e1d505e9d7001be.js
+++ b/9/ecolyo.ea36d9441e5e67ed4c61.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "+uHx":
 /***/ (function(module) {
diff --git a/app/ecolyo.2a7ea6cd34ec43873e45.js b/app/ecolyo.4094c8a63536ad3315d0.js
similarity index 99%
rename from app/ecolyo.2a7ea6cd34ec43873e45.js
rename to app/ecolyo.4094c8a63536ad3315d0.js
index f76853ae12376be7d013ece5e09443cd799836ac..9433e3f71983706a64158c4aee0cd7a2fec6cec8 100644
--- a/app/ecolyo.2a7ea6cd34ec43873e45.js
+++ b/app/ecolyo.4094c8a63536ad3315d0.js
@@ -57,14 +57,14 @@
 /******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
 /******/ 	// Promise = chunk loading, 0 = chunk loaded
 /******/ 	var installedChunks = {
-/******/ 		1: 0
+/******/ 		7: 0
 /******/ 	};
 /******/
 /******/ 	var deferredModules = [];
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"5b4a8e1d505e9d7001be","3":"74e890e09b54b83ef4d1","4":"004f8f52b69002914058","5":"2cec1248000a16de3703","6":"fefa59f541d74c8d4b51","7":"aa4f45889934d2a358e5","8":"60331db9adc9ed9603b9","9":"9bc23205cb3016a1dea7","10":"2441033c8574fc0fe5b1","11":"e87a00fb80b75474ca62","12":"6c8d5abaa410f671dff9"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"79418538f98e522ffa14","2":"fa63fc2ae5b91e96431e","3":"dbb25bab5bf2868d7581","4":"943c56d53127de0c0b5b","5":"732993d7f79b32a81919","6":"a3016721fa562bc5b0bc","8":"359bcab33751e9de7534","9":"ea36d9441e5e67ed4c61","10":"1a07d85ce2906255e036","11":"9b513c202205eecc62de","12":"a93c3508be46cf2c2aa2"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -1435,7 +1435,7 @@ var SplashRoot = function SplashRoot(_ref) {
 
     function _loadData() {
       _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var initializationService, partnersInfoService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone, partnersInfo, today, fluidService, _updatedFluidStatus, isConcernedByPartnerIssue, _iterator2, _step2, _fluid;
+        var initializationService, partnersInfoService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, fluidPricesHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone, partnersInfo, today, fluidService, _updatedFluidStatus, isConcernedByPartnerIssue, _iterator2, _step2, _fluid;
 
         return _regenerator.default.wrap(function _callee$(_context) {
           while (1) {
@@ -1481,24 +1481,26 @@ var SplashRoot = function SplashRoot(_ref) {
                 profileEcogesture = _context.sent;
 
                 if (!(subscribed && profile)) {
-                  _context.next = 46;
+                  _context.next = 48;
                   break;
                 }
 
                 setValidExploration(_userExploration.UserExplorationID.EXPLORATION007);
                 _context.next = 27;
-                return Promise.all([initializationService.initEcogesture(profile.ecogestureHash), initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
+                return Promise.all([initializationService.initEcogesture(profile.ecogestureHash), initializationService.initFluidPrices(profile.fluidPricesHash), initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
 
               case 27:
                 _yield$Promise$all = _context.sent;
-                _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 6);
+                _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 7);
                 ecogestureHash = _yield$Promise$all2[0];
-                duelHash = _yield$Promise$all2[1];
-                quizHash = _yield$Promise$all2[2];
-                challengeHash = _yield$Promise$all2[3];
-                explorationHash = _yield$Promise$all2[4];
-                analysisResult = _yield$Promise$all2[5];
+                fluidPricesHash = _yield$Promise$all2[1];
+                duelHash = _yield$Promise$all2[2];
+                quizHash = _yield$Promise$all2[3];
+                challengeHash = _yield$Promise$all2[4];
+                explorationHash = _yield$Promise$all2[5];
+                analysisResult = _yield$Promise$all2[6];
                 profile.ecogestureHash = ecogestureHash;
+                profile.fluidPricesHash = fluidPricesHash;
                 profile.duelHash = duelHash;
                 profile.quizHash = quizHash;
                 profile.challengeHash = challengeHash;
@@ -1517,11 +1519,11 @@ var SplashRoot = function SplashRoot(_ref) {
 
                 dispatch((0, _global.toggleAnalysisNotification)(!profile.haveSeenLastAnalysis));
 
-              case 46:
-                _context.next = 48;
+              case 48:
+                _context.next = 50;
                 return initializationService.initFluidStatus();
 
-              case 48:
+              case 50:
                 fluidStatus = _context.sent;
 
                 if (subscribed) {
@@ -1550,14 +1552,14 @@ var SplashRoot = function SplashRoot(_ref) {
                 } // Init Challenge
 
 
-                _context.next = 52;
+                _context.next = 54;
                 return initializationService.initUserChallenges(fluidStatus);
 
-              case 52:
+              case 54:
                 userChallengeList = _context.sent;
 
                 if (!subscribed) {
-                  _context.next = 79;
+                  _context.next = 81;
                   break;
                 }
 
@@ -1572,22 +1574,22 @@ var SplashRoot = function SplashRoot(_ref) {
 
 
                 if (!(filteredCurrentOngoingChallenge[0] && filteredCurrentOngoingChallenge[0].action.state === _userAction.UserActionState.ONGOING)) {
-                  _context.next = 63;
+                  _context.next = 65;
                   break;
                 }
 
                 actionService = new _action.default(client);
-                _context.next = 61;
+                _context.next = 63;
                 return actionService.isActionDone(filteredCurrentOngoingChallenge[0]);
 
-              case 61:
+              case 63:
                 updatedUserChallenge = _context.sent;
 
                 if (updatedUserChallenge) {
                   dispatch((0, _challenge.updateUserChallengeList)(updatedUserChallenge));
                 }
 
-              case 63:
+              case 65:
                 // Set Notification if action state is notification
                 if (filteredCurrentOngoingChallenge[0] && filteredCurrentOngoingChallenge[0].action.state === _userAction.UserActionState.NOTIFICATION) {
                   dispatch((0, _global.toggleChallengeActionNotification)(true));
@@ -1598,58 +1600,58 @@ var SplashRoot = function SplashRoot(_ref) {
                 });
 
                 if (!(filteredCurrentDuelChallenge[0] && filteredCurrentDuelChallenge[0].duel.state === _userDuel.UserDuelState.ONGOING)) {
-                  _context.next = 79;
+                  _context.next = 81;
                   break;
                 }
 
-                _context.next = 68;
+                _context.next = 70;
                 return initializationService.initDuelProgress(filteredCurrentDuelChallenge[0]);
 
-              case 68:
+              case 70:
                 _yield$initialization = _context.sent;
                 _updatedUserChallenge = _yield$initialization.updatedUserChallenge;
                 dataloads = _yield$initialization.dataloads;
 
                 if (!subscribed) {
-                  _context.next = 79;
+                  _context.next = 81;
                   break;
                 }
 
                 dispatch((0, _challenge.setChallengeConsumption)(_updatedUserChallenge, dataloads)); // Check is duel is done and display notification
 
                 challengeService = new _challenge2.default(client);
-                _context.next = 76;
+                _context.next = 78;
                 return challengeService.isChallengeDone(_updatedUserChallenge, dataloads);
 
-              case 76:
+              case 78:
                 _yield$challengeServi = _context.sent;
                 isDone = _yield$challengeServi.isDone;
                 dispatch((0, _global.toggleChallengeDuelNotification)(isDone));
 
-              case 79:
+              case 81:
                 if (!profile) {
-                  _context.next = 82;
+                  _context.next = 84;
                   break;
                 }
 
-                _context.next = 82;
+                _context.next = 84;
                 return _usageEvent.default.addEvent(client, {
                   type: _usageEvent2.UsageEventType.CONNECTION_EVENT,
                   result: profile.isFirstConnection ? 'firstConnection' : undefined,
                   context: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'mobile' : 'desktop'
                 });
 
-              case 82:
+              case 84:
                 setState(function (prev) {
                   return (0, _objectSpread2.default)({}, prev, {
                     splashStart: true
                   });
                 }); // Check partnersInfo from backoffice
 
-                _context.next = 85;
+                _context.next = 87;
                 return partnersInfoService.getPartnersInfo();
 
-              case 85:
+              case 87:
                 partnersInfo = _context.sent;
                 // Get last partnersIssueDate
                 today = _luxon.DateTime.local().setZone('utc', {
@@ -1657,15 +1659,15 @@ var SplashRoot = function SplashRoot(_ref) {
                 }).startOf('day').toISO(); // If notification is activated and konnector is connected, set FluidStatus to PARTNER_ISSUE
 
                 if (!(partnersInfo && partnersInfo.notification_activated)) {
-                  _context.next = 97;
+                  _context.next = 99;
                   break;
                 }
 
                 fluidService = new _fluid3.default(client);
-                _context.next = 91;
+                _context.next = 93;
                 return fluidService.getFluidStatus(partnersInfo);
 
-              case 91:
+              case 93:
                 _updatedFluidStatus = _context.sent;
                 isConcernedByPartnerIssue = false;
                 _iterator2 = _createForOfIteratorHelper(_updatedFluidStatus);
@@ -1687,21 +1689,21 @@ var SplashRoot = function SplashRoot(_ref) {
                   dispatch((0, _global.setPartnersIssue)(true));
                 }
 
-              case 97:
-                _context.next = 102;
+              case 99:
+                _context.next = 104;
                 break;
 
-              case 99:
-                _context.prev = 99;
+              case 101:
+                _context.prev = 101;
                 _context.t0 = _context["catch"](6);
                 setError(_context.t0);
 
-              case 102:
+              case 104:
               case "end":
                 return _context.stop();
             }
           }
-        }, _callee, null, [[6, 99]]);
+        }, _callee, null, [[6, 101]]);
       }));
       return _loadData.apply(this, arguments);
     }
@@ -5588,21 +5590,11 @@ var _luxon = __webpack_require__("ExVU");
 
 var _userQuiz = __webpack_require__("Ush/");
 
-var _fluidPrices = _interopRequireDefault(__webpack_require__("j6C6"));
-
-var _fluid = __webpack_require__("5Wkc");
-
 (function () {
   var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
   enterModule && enterModule(module);
 })();
 
-function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
-
-function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
 var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
   return a;
 };
@@ -5971,85 +5963,24 @@ var migrations = [{
   baseSchemaVersion: 8,
   targetSchemaVersion: 9,
   appVersion: '1.6.0',
-  description: 'Init new doctype fluidPrices',
+  description: 'Init new doctype fluidPrices --deprecated--',
   releaseNotes: null,
   docTypes: _doctypes.FLUIDPRICES_DOCTYPE,
   isCreate: true,
   run: function () {
-    var _run9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(_client, docs) {
-      var _iterator, _step, fluidPrice;
-
-      return _regenerator.default.wrap(function _callee10$(_context10) {
+    var _run9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(_client, docs) {
+      return _regenerator.default.wrap(function _callee9$(_context9) {
         while (1) {
-          switch (_context10.prev = _context10.next) {
+          switch (_context9.prev = _context9.next) {
             case 0:
-              if (docs.length > 0) {
-                console.log('collection already exists, delete all');
-                docs.forEach( /*#__PURE__*/function () {
-                  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(doc) {
-                    return _regenerator.default.wrap(function _callee9$(_context9) {
-                      while (1) {
-                        switch (_context9.prev = _context9.next) {
-                          case 0:
-                            _context9.next = 2;
-                            return _client.destroy(doc);
-
-                          case 2:
-                          case "end":
-                            return _context9.stop();
-                        }
-                      }
-                    }, _callee9);
-                  }));
-
-                  return function (_x19) {
-                    return _ref.apply(this, arguments);
-                  };
-                }());
-              }
-
-              _iterator = _createForOfIteratorHelper(_fluidPrices.default);
-              _context10.prev = 2;
-
-              _iterator.s();
-
-            case 4:
-              if ((_step = _iterator.n()).done) {
-                _context10.next = 10;
-                break;
-              }
-
-              fluidPrice = _step.value;
-              _context10.next = 8;
-              return _client.create(_doctypes.FLUIDPRICES_DOCTYPE, fluidPrice);
-
-            case 8:
-              _context10.next = 4;
-              break;
-
-            case 10:
-              _context10.next = 15;
-              break;
-
-            case 12:
-              _context10.prev = 12;
-              _context10.t0 = _context10["catch"](2);
+              return _context9.abrupt("return", null);
 
-              _iterator.e(_context10.t0);
-
-            case 15:
-              _context10.prev = 15;
-
-              _iterator.f();
-
-              return _context10.finish(15);
-
-            case 18:
+            case 1:
             case "end":
-              return _context10.stop();
+              return _context9.stop();
           }
         }
-      }, _callee10, null, [[2, 12, 15, 18]]);
+      }, _callee9);
     }));
 
     function run(_x17, _x18) {
@@ -6066,12 +5997,12 @@ var migrations = [{
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
   run: function () {
-    var _run10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(_client, docs) {
-      return _regenerator.default.wrap(function _callee11$(_context11) {
+    var _run10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(_client, docs) {
+      return _regenerator.default.wrap(function _callee10$(_context10) {
         while (1) {
-          switch (_context11.prev = _context11.next) {
+          switch (_context10.prev = _context10.next) {
             case 0:
-              return _context11.abrupt("return", docs.map(function (doc) {
+              return _context10.abrupt("return", docs.map(function (doc) {
                 doc.partnersIssueDate = _luxon.DateTime.local().minus({
                   day: 1
                 }).startOf('day');
@@ -6080,13 +6011,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context11.stop();
+              return _context10.stop();
           }
         }
-      }, _callee11);
+      }, _callee10);
     }));
 
-    function run(_x20, _x21) {
+    function run(_x19, _x20) {
       return _run10.apply(this, arguments);
     }
 
@@ -6100,12 +6031,12 @@ var migrations = [{
   releaseNotes: null,
   docTypes: _doctypes.PROFILE_DOCTYPE,
   run: function () {
-    var _run11 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(_client, docs) {
-      return _regenerator.default.wrap(function _callee12$(_context12) {
+    var _run11 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(_client, docs) {
+      return _regenerator.default.wrap(function _callee11$(_context11) {
         while (1) {
-          switch (_context12.prev = _context12.next) {
+          switch (_context11.prev = _context11.next) {
             case 0:
-              return _context12.abrupt("return", docs.map(function (doc) {
+              return _context11.abrupt("return", docs.map(function (doc) {
                 if (doc.tutorial) {
                   doc.onboarding = (0, _objectSpread2.default)({}, doc.tutorial);
                   delete doc.tutorial;
@@ -6120,13 +6051,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context12.stop();
+              return _context11.stop();
           }
         }
-      }, _callee12);
+      }, _callee11);
     }));
 
-    function run(_x22, _x23) {
+    function run(_x21, _x22) {
       return _run11.apply(this, arguments);
     }
 
@@ -6145,11 +6076,11 @@ var migrations = [{
     limit: 1000
   },
   run: function () {
-    var _run12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(_client, docs) {
+    var _run12 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(_client, docs) {
       var prevData;
-      return _regenerator.default.wrap(function _callee13$(_context13) {
+      return _regenerator.default.wrap(function _callee12$(_context12) {
         while (1) {
-          switch (_context13.prev = _context13.next) {
+          switch (_context12.prev = _context12.next) {
             case 0:
               prevData = {
                 id: '',
@@ -6160,7 +6091,7 @@ var migrations = [{
                 month: 0,
                 year: 0
               };
-              return _context13.abrupt("return", docs.map(function (doc) {
+              return _context12.abrupt("return", docs.map(function (doc) {
                 if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
                   doc.deleteAction = true;
                 }
@@ -6175,13 +6106,13 @@ var migrations = [{
 
             case 2:
             case "end":
-              return _context13.stop();
+              return _context12.stop();
           }
         }
-      }, _callee13);
+      }, _callee12);
     }));
 
-    function run(_x24, _x25) {
+    function run(_x23, _x24) {
       return _run12.apply(this, arguments);
     }
 
@@ -6200,11 +6131,11 @@ var migrations = [{
     limit: 1000
   },
   run: function () {
-    var _run13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(_client, docs) {
+    var _run13 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(_client, docs) {
       var prevData;
-      return _regenerator.default.wrap(function _callee14$(_context14) {
+      return _regenerator.default.wrap(function _callee13$(_context13) {
         while (1) {
-          switch (_context14.prev = _context14.next) {
+          switch (_context13.prev = _context13.next) {
             case 0:
               prevData = {
                 id: '',
@@ -6215,7 +6146,7 @@ var migrations = [{
                 month: 0,
                 year: 0
               };
-              return _context14.abrupt("return", docs.map(function (doc) {
+              return _context13.abrupt("return", docs.map(function (doc) {
                 if (prevData.day === doc.day && prevData.month === doc.month && prevData.year === doc.year) {
                   doc.deleteAction = true;
                 }
@@ -6230,13 +6161,13 @@ var migrations = [{
 
             case 2:
             case "end":
-              return _context14.stop();
+              return _context13.stop();
           }
         }
-      }, _callee14);
+      }, _callee13);
     }));
 
-    function run(_x26, _x27) {
+    function run(_x25, _x26) {
       return _run13.apply(this, arguments);
     }
 
@@ -6255,12 +6186,12 @@ var migrations = [{
     limit: 17
   },
   run: function () {
-    var _run14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(_client, docs) {
-      return _regenerator.default.wrap(function _callee15$(_context15) {
+    var _run14 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(_client, docs) {
+      return _regenerator.default.wrap(function _callee14$(_context14) {
         while (1) {
-          switch (_context15.prev = _context15.next) {
+          switch (_context14.prev = _context14.next) {
             case 0:
-              return _context15.abrupt("return", docs.map(function (doc) {
+              return _context14.abrupt("return", docs.map(function (doc) {
                 if (doc.price) {
                   delete doc.price;
                 }
@@ -6270,13 +6201,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context15.stop();
+              return _context14.stop();
           }
         }
-      }, _callee15);
+      }, _callee14);
     }));
 
-    function run(_x28, _x29) {
+    function run(_x27, _x28) {
       return _run14.apply(this, arguments);
     }
 
@@ -6295,12 +6226,12 @@ var migrations = [{
     limit: 3
   },
   run: function () {
-    var _run15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(_client, docs) {
-      return _regenerator.default.wrap(function _callee16$(_context16) {
+    var _run15 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(_client, docs) {
+      return _regenerator.default.wrap(function _callee15$(_context15) {
         while (1) {
-          switch (_context16.prev = _context16.next) {
+          switch (_context15.prev = _context15.next) {
             case 0:
-              return _context16.abrupt("return", docs.map(function (doc) {
+              return _context15.abrupt("return", docs.map(function (doc) {
                 if (doc.price) {
                   delete doc.price;
                 }
@@ -6310,13 +6241,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context16.stop();
+              return _context15.stop();
           }
         }
-      }, _callee16);
+      }, _callee15);
     }));
 
-    function run(_x30, _x31) {
+    function run(_x29, _x30) {
       return _run15.apply(this, arguments);
     }
 
@@ -6335,12 +6266,12 @@ var migrations = [{
     limit: 17
   },
   run: function () {
-    var _run16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(_client, docs) {
-      return _regenerator.default.wrap(function _callee17$(_context17) {
+    var _run16 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(_client, docs) {
+      return _regenerator.default.wrap(function _callee16$(_context16) {
         while (1) {
-          switch (_context17.prev = _context17.next) {
+          switch (_context16.prev = _context16.next) {
             case 0:
-              return _context17.abrupt("return", docs.map(function (doc) {
+              return _context16.abrupt("return", docs.map(function (doc) {
                 if (doc.price) {
                   delete doc.price;
                 }
@@ -6350,13 +6281,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context17.stop();
+              return _context16.stop();
           }
         }
-      }, _callee17);
+      }, _callee16);
     }));
 
-    function run(_x32, _x33) {
+    function run(_x31, _x32) {
       return _run16.apply(this, arguments);
     }
 
@@ -6375,12 +6306,12 @@ var migrations = [{
     limit: 3
   },
   run: function () {
-    var _run17 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(_client, docs) {
-      return _regenerator.default.wrap(function _callee18$(_context18) {
+    var _run17 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17(_client, docs) {
+      return _regenerator.default.wrap(function _callee17$(_context17) {
         while (1) {
-          switch (_context18.prev = _context18.next) {
+          switch (_context17.prev = _context17.next) {
             case 0:
-              return _context18.abrupt("return", docs.map(function (doc) {
+              return _context17.abrupt("return", docs.map(function (doc) {
                 if (doc.price) {
                   delete doc.price;
                 }
@@ -6390,13 +6321,13 @@ var migrations = [{
 
             case 1:
             case "end":
-              return _context18.stop();
+              return _context17.stop();
           }
         }
-      }, _callee18);
+      }, _callee17);
     }));
 
-    function run(_x34, _x35) {
+    function run(_x33, _x34) {
       return _run17.apply(this, arguments);
     }
 
@@ -6406,35 +6337,26 @@ var migrations = [{
   baseSchemaVersion: 17,
   targetSchemaVersion: 18,
   appVersion: '1.7.0',
-  description: 'Init new fluidPrices for water',
+  description: 'Init new fluidPrices for water -- deprecated --',
   releaseNotes: null,
   docTypes: _doctypes.FLUIDPRICES_DOCTYPE,
   run: function () {
-    var _run18 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(_client, docs) {
-      var waterPricesData, createWaterPricesData;
-      return _regenerator.default.wrap(function _callee19$(_context19) {
+    var _run18 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18(_client, docs) {
+      return _regenerator.default.wrap(function _callee18$(_context18) {
         while (1) {
-          switch (_context19.prev = _context19.next) {
+          switch (_context18.prev = _context18.next) {
             case 0:
-              waterPricesData = _fluidPrices.default.filter(function (fluidPriceData) {
-                return fluidPriceData.fluidType === _fluid.FluidType.WATER;
-              });
-              createWaterPricesData = waterPricesData.map(function (waterPriceData) {
-                waterPriceData.createAction = true;
-                waterPriceData.doctype = _doctypes.FLUIDPRICES_DOCTYPE;
-                return waterPriceData;
-              });
-              return _context19.abrupt("return", createWaterPricesData);
+              return _context18.abrupt("return", null);
 
-            case 3:
+            case 1:
             case "end":
-              return _context19.stop();
+              return _context18.stop();
           }
         }
-      }, _callee19);
+      }, _callee18);
     }));
 
-    function run(_x36, _x37) {
+    function run(_x35, _x36) {
       return _run18.apply(this, arguments);
     }
 
@@ -6448,10 +6370,10 @@ var migrations = [{
   releaseNotes: null,
   docTypes: _doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE,
   run: function () {
-    var _run19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20(_client, docs) {
-      return _regenerator.default.wrap(function _callee20$(_context20) {
+    var _run19 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19(_client, docs) {
+      return _regenerator.default.wrap(function _callee19$(_context19) {
         while (1) {
-          switch (_context20.prev = _context20.next) {
+          switch (_context19.prev = _context19.next) {
             case 0:
               docs.map(function (doc) {
                 if (doc.minLoad) {
@@ -6464,17 +6386,17 @@ var migrations = [{
                   delete doc.minLoad;
                 }
               });
-              return _context20.abrupt("return", docs);
+              return _context19.abrupt("return", docs);
 
             case 2:
             case "end":
-              return _context20.stop();
+              return _context19.stop();
           }
         }
-      }, _callee20);
+      }, _callee19);
     }));
 
-    function run(_x38, _x39) {
+    function run(_x37, _x38) {
       return _run19.apply(this, arguments);
     }
 
@@ -20060,6 +19982,326 @@ exports.default = _default2;
 
 /***/ }),
 
+/***/ "VjcQ":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(module) {
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
+
+var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
+
+var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
+
+var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
+
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
+
+var _cozyClient = __webpack_require__("SH7X");
+
+var _doctypes = __webpack_require__("D2hQ");
+
+var _fluidConfig = _interopRequireDefault(__webpack_require__("JIzA"));
+
+(function () {
+  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
+  enterModule && enterModule(module);
+})();
+
+function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
+  return a;
+};
+
+var FluidPricesService = /*#__PURE__*/function () {
+  function FluidPricesService(_client) {
+    (0, _classCallCheck2.default)(this, FluidPricesService);
+    (0, _defineProperty2.default)(this, "_client", void 0);
+    this._client = _client;
+  }
+  /**
+   * Get all prices available in database
+   * @returns {FluidPrice[]}
+   */
+
+
+  (0, _createClass2.default)(FluidPricesService, [{
+    key: "getAllPrices",
+    value: function () {
+      var _getAllPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
+        var query, _yield$this$_client$q, fluidsPrices;
+
+        return _regenerator.default.wrap(function _callee$(_context) {
+          while (1) {
+            switch (_context.prev = _context.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE);
+                _context.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                _yield$this$_client$q = _context.sent;
+                fluidsPrices = _yield$this$_client$q.data;
+                return _context.abrupt("return", fluidsPrices);
+
+              case 6:
+              case "end":
+                return _context.stop();
+            }
+          }
+        }, _callee, this);
+      }));
+
+      function getAllPrices() {
+        return _getAllPrices.apply(this, arguments);
+      }
+
+      return getAllPrices;
+    }()
+    /**
+     * Get a price according to a fluidType and a data. This method return the nearest and valid price for the given date.
+     * @param {FluidType} fluidType
+     * @param {DateTime} date
+     * @returns {FluidPrice}
+     */
+
+  }, {
+    key: "getPrices",
+    value: function () {
+      var _getPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fluidType, date) {
+        var query, _yield$this$_client$q2, fluidsPrices;
+
+        return _regenerator.default.wrap(function _callee2$(_context2) {
+          while (1) {
+            switch (_context2.prev = _context2.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
+                  startDate: {
+                    $lt: date.toString()
+                  },
+                  fluidType: fluidType
+                }).sortBy([{
+                  startDate: 'desc'
+                }]).limitBy(1);
+                _context2.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                _yield$this$_client$q2 = _context2.sent;
+                fluidsPrices = _yield$this$_client$q2.data;
+                return _context2.abrupt("return", fluidsPrices[0]);
+
+              case 6:
+              case "end":
+                return _context2.stop();
+            }
+          }
+        }, _callee2, this);
+      }));
+
+      function getPrices(_x, _x2) {
+        return _getPrices.apply(this, arguments);
+      }
+
+      return getPrices;
+    }()
+    /**
+     * Get current prices for all fluidTypes.
+     * @returns {FluidPrice[]}
+     */
+
+  }, {
+    key: "getAllLastPrices",
+    value: function () {
+      var _getAllLastPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
+        var query, _yield$this$_client$q3, fluidsPrices, configService, fluidConfig, recoveredFluidsPrices;
+
+        return _regenerator.default.wrap(function _callee3$(_context3) {
+          while (1) {
+            switch (_context3.prev = _context3.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.FLUIDPRICES_DOCTYPE).where({
+                  endDate: {
+                    $eq: null
+                  }
+                }).sortBy([{
+                  fluidType: 'asc'
+                }]).limitBy(3);
+                _context3.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                _yield$this$_client$q3 = _context3.sent;
+                fluidsPrices = _yield$this$_client$q3.data;
+
+                if (!(fluidsPrices.length !== 3)) {
+                  _context3.next = 12;
+                  break;
+                }
+
+                configService = new _fluidConfig.default();
+                fluidConfig = configService.getFluidConfig();
+                recoveredFluidsPrices = []; // Getting default fluid price
+
+                fluidConfig.forEach(function (config) {
+                  recoveredFluidsPrices.push({
+                    _id: '0',
+                    fluidType: config.fluidTypeId,
+                    price: config.coefficient,
+                    startDate: config.startDate,
+                    endDate: ''
+                  });
+                }); // Replacing default prices if available
+
+                fluidsPrices.forEach(function (fluidPrice) {
+                  recoveredFluidsPrices[fluidPrice.fluidType] = fluidPrice;
+                });
+                return _context3.abrupt("return", recoveredFluidsPrices);
+
+              case 12:
+                return _context3.abrupt("return", fluidsPrices);
+
+              case 13:
+              case "end":
+                return _context3.stop();
+            }
+          }
+        }, _callee3, this);
+      }));
+
+      function getAllLastPrices() {
+        return _getAllLastPrices.apply(this, arguments);
+      }
+
+      return getAllLastPrices;
+    }()
+    /**
+     * Delete all fluidPrices entities from the db
+     * @returns {boolean} - true when deleted with success
+     * @throws {Error}
+     */
+
+  }, {
+    key: "deleteAllFluidsPrices",
+    value: function () {
+      var _deleteAllFluidsPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
+        var fluidsPrices, _iterator, _step, price;
+
+        return _regenerator.default.wrap(function _callee4$(_context4) {
+          while (1) {
+            switch (_context4.prev = _context4.next) {
+              case 0:
+                _context4.next = 2;
+                return this.getAllPrices();
+
+              case 2:
+                fluidsPrices = _context4.sent;
+                _context4.prev = 3;
+                _iterator = _createForOfIteratorHelper(fluidsPrices);
+                _context4.prev = 5;
+
+                _iterator.s();
+
+              case 7:
+                if ((_step = _iterator.n()).done) {
+                  _context4.next = 13;
+                  break;
+                }
+
+                price = _step.value;
+                _context4.next = 11;
+                return this._client.destroy(price);
+
+              case 11:
+                _context4.next = 7;
+                break;
+
+              case 13:
+                _context4.next = 18;
+                break;
+
+              case 15:
+                _context4.prev = 15;
+                _context4.t0 = _context4["catch"](5);
+
+                _iterator.e(_context4.t0);
+
+              case 18:
+                _context4.prev = 18;
+
+                _iterator.f();
+
+                return _context4.finish(18);
+
+              case 21:
+                return _context4.abrupt("return", true);
+
+              case 24:
+                _context4.prev = 24;
+                _context4.t1 = _context4["catch"](3);
+                return _context4.abrupt("return", false);
+
+              case 27:
+              case "end":
+                return _context4.stop();
+            }
+          }
+        }, _callee4, this, [[3, 24], [5, 15, 18, 21]]);
+      }));
+
+      function deleteAllFluidsPrices() {
+        return _deleteAllFluidsPrices.apply(this, arguments);
+      }
+
+      return deleteAllFluidsPrices;
+    }()
+  }, {
+    key: "__reactstandin__regenerateByEval",
+    value: // @ts-ignore
+    function __reactstandin__regenerateByEval(key, code) {
+      // @ts-ignore
+      this[key] = eval(code);
+    }
+  }]);
+  return FluidPricesService;
+}();
+
+exports.default = FluidPricesService;
+;
+
+(function () {
+  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
+
+  if (!reactHotLoader) {
+    return;
+  }
+
+  reactHotLoader.register(FluidPricesService, "FluidPricesService", "/builds/web-et-numerique/llle_project/ecolyo/src/services/fluidsPrices.service.ts");
+})();
+
+;
+
+(function () {
+  var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
+  leaveModule && leaveModule(module);
+})();
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))
+
+/***/ }),
+
 /***/ "Vpb/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -33228,31 +33470,31 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
 };
 
 var ConsumptionView = (0, _react.lazy)(function () {
-  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(8), __webpack_require__.e(4)]).then(__webpack_require__.t.bind(null, "Fz84", 7));
+  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(5), __webpack_require__.e(2)]).then(__webpack_require__.t.bind(null, "Fz84", 7));
 });
 var EcogestureView = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 7).then(__webpack_require__.t.bind(null, "1MlH", 7));
+  return __webpack_require__.e(/* import() */ 4).then(__webpack_require__.t.bind(null, "1MlH", 7));
 });
 var SingleEcogesture = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 11).then(__webpack_require__.t.bind(null, "GwQd", 7));
+  return __webpack_require__.e(/* import() */ 10).then(__webpack_require__.t.bind(null, "GwQd", 7));
 });
 var OptionsView = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 10).then(__webpack_require__.t.bind(null, "e+zH", 7));
+  return __webpack_require__.e(/* import() */ 8).then(__webpack_require__.t.bind(null, "e+zH", 7));
 });
 var FAQView = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 5).then(__webpack_require__.t.bind(null, "OIzw", 7));
+  return __webpack_require__.e(/* import() */ 12).then(__webpack_require__.t.bind(null, "OIzw", 7));
 });
 var LegalNoticeView = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 12).then(__webpack_require__.t.bind(null, "LUT6", 7));
+  return __webpack_require__.e(/* import() */ 11).then(__webpack_require__.t.bind(null, "LUT6", 7));
 });
 var GCUView = (0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 9).then(__webpack_require__.t.bind(null, "1usQ", 7));
+  return __webpack_require__.e(/* import() */ 6).then(__webpack_require__.t.bind(null, "1usQ", 7));
 });
 var AnalysisView = (0, _react.lazy)(function () {
-  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(8), __webpack_require__.e(2), __webpack_require__.e(3)]).then(__webpack_require__.t.bind(null, "DTIR", 7));
+  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(9), __webpack_require__.e(5), __webpack_require__.e(1)]).then(__webpack_require__.t.bind(null, "DTIR", 7));
 });
 var ProfileTypeView = (0, _react.lazy)(function () {
-  return Promise.all(/* import() */[__webpack_require__.e(2), __webpack_require__.e(6)]).then(__webpack_require__.t.bind(null, "nKTC", 7));
+  return Promise.all(/* import() */[__webpack_require__.e(9), __webpack_require__.e(3)]).then(__webpack_require__.t.bind(null, "nKTC", 7));
 });
 
 var Routes = function Routes(_ref) {
@@ -36312,7 +36554,7 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 /***/ "xJBY":
 /***/ (function(module) {
 
-module.exports = JSON.parse("[{\"ecogestureHash\":\"\",\"challengeHash\":\"\",\"mailToken\":\"\",\"duelHash\":\"\",\"quizHash\":\"\",\"isFirstConnection\":true,\"lastConnectionDate\":\"0000-01-01T00:00:00.000Z\",\"haveSeenLastAnalysis\":true,\"sendAnalysisNotification\":true,\"monthlyAnalysisDate\":\"0000-01-01T00:00:00.000Z\",\"sendConsumptionAlert\":false,\"waterDailyConsumptionLimit\":0,\"isProfileTypeCompleted\":false,\"onboarding\":{\"isWelcomeSeen\":false},\"haveSeenEcogestureModal\":false}]");
+module.exports = JSON.parse("[{\"ecogestureHash\":\"\",\"challengeHash\":\"\",\"mailToken\":\"\",\"duelHash\":\"\",\"quizHash\":\"\",\"fluidPricesHash\":\"\",\"isFirstConnection\":true,\"lastConnectionDate\":\"0000-01-01T00:00:00.000Z\",\"haveSeenLastAnalysis\":true,\"sendAnalysisNotification\":true,\"monthlyAnalysisDate\":\"0000-01-01T00:00:00.000Z\",\"sendConsumptionAlert\":false,\"waterDailyConsumptionLimit\":0,\"isProfileTypeCompleted\":false,\"isProfileEcogestureCompleted\":false,\"onboarding\":{\"isWelcomeSeen\":false},\"haveSeenEcogestureModal\":false}]");
 
 /***/ }),
 
@@ -37659,6 +37901,8 @@ var _quizEntity2 = _interopRequireDefault(__webpack_require__("lMoa"));
 
 var _explorationEntity2 = _interopRequireDefault(__webpack_require__("66aa"));
 
+var _fluidPrices = _interopRequireDefault(__webpack_require__("j6C6"));
+
 var _profile = _interopRequireDefault(__webpack_require__("2l2O"));
 
 var _profileData = _interopRequireDefault(__webpack_require__("xJBY"));
@@ -37699,6 +37943,8 @@ var _logger = _interopRequireDefault(__webpack_require__("gjtA"));
 
 var _profileEcogesture = _interopRequireDefault(__webpack_require__("4iQs"));
 
+var _fluidsPrices = _interopRequireDefault(__webpack_require__("VjcQ"));
+
 (function () {
   var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
   enterModule && enterModule(module);
@@ -38220,31 +38466,31 @@ var InitializationService = /*#__PURE__*/function () {
       return initEcogesture;
     }()
   }, {
-    key: "initChallengeEntity",
+    key: "initFluidPrices",
     value: function () {
-      var _initChallengeEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(hash) {
-        var challengeHash, challengeService, loadedChallengeEntity, _iterator3, _step3, challengeEntity, checkCount, _iterator4, _step4, _challengeEntity, _checkCount2;
+      var _initFluidPrices = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(hash) {
+        var hashFluidPricesType, fpService, loadedPrices, _iterator3, _step3, price, checkCount, _iterator4, _step4, _price, _checkCount2;
 
         return _regenerator.default.wrap(function _callee7$(_context7) {
           while (1) {
             switch (_context7.prev = _context7.next) {
               case 0:
-                challengeHash = (0, _hash.hashFile)(_challengeEntity2.default);
-                challengeService = new _challenge.default(this._client); // Populate data if none challengeEntity exists
+                hashFluidPricesType = (0, _hash.hashFile)(_fluidPrices.default);
+                fpService = new _fluidsPrices.default(this._client); // Populate data if none ecogesture exists
 
                 _context7.next = 4;
-                return challengeService.getAllChallengeEntities();
+                return fpService.getAllPrices();
 
               case 4:
-                loadedChallengeEntity = _context7.sent;
+                loadedPrices = _context7.sent;
 
-                if (!(!loadedChallengeEntity || loadedChallengeEntity && loadedChallengeEntity.length === 0)) {
+                if (!(!loadedPrices || loadedPrices && loadedPrices.length === 0)) {
                   _context7.next = 37;
                   break;
                 }
 
                 _context7.prev = 6;
-                _iterator3 = _createForOfIteratorHelper(_challengeEntity2.default);
+                _iterator3 = _createForOfIteratorHelper(_fluidPrices.default);
                 _context7.prev = 8;
 
                 _iterator3.s();
@@ -38255,9 +38501,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                challengeEntity = _step3.value;
+                price = _step3.value;
                 _context7.next = 14;
-                return this._client.create(_doctypes.CHALLENGE_DOCTYPE, challengeEntity);
+                return this._client.create(_doctypes.FLUIDPRICES_DOCTYPE, price);
 
               case 14:
                 _context7.next = 10;
@@ -38282,44 +38528,44 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 24:
                 _context7.next = 26;
-                return challengeService.getAllChallengeEntities();
+                return fpService.getAllPrices();
 
               case 26:
                 checkCount = _context7.sent;
 
-                if (!(!checkCount || checkCount && checkCount.length !== _challengeEntity2.default.length)) {
+                if (!(!checkCount || checkCount && checkCount.length !== _fluidPrices.default.length)) {
                   _context7.next = 29;
                   break;
                 }
 
-                throw new Error('initChallengeEntity: Created challenge entities does not match');
+                throw new Error('initFluidPrices: Created fluidPrices type entities does not match');
 
               case 29:
-                _logger.default.info('[Initialization] Challenge entities created');
+                _logger.default.info('[Initialization] FluidPrices list created');
 
-                return _context7.abrupt("return", challengeHash);
+                return _context7.abrupt("return", hashFluidPricesType);
 
               case 33:
                 _context7.prev = 33;
                 _context7.t1 = _context7["catch"](6);
 
-                _logger.default.error('Initialization error - initChallengeEntity: ', _context7.t1);
+                _logger.default.error('Initialization error - initFluidPrices: ', _context7.t1);
 
                 throw _context7.t1;
 
               case 37:
-                if (!(hash !== challengeHash)) {
+                if (!(hash !== hashFluidPricesType)) {
                   _context7.next = 73;
                   break;
                 }
 
                 _context7.prev = 38;
                 _context7.next = 41;
-                return challengeService.deleteAllChallengeEntities();
+                return fpService.deleteAllFluidsPrices();
 
               case 41:
                 // Population with the data
-                _iterator4 = _createForOfIteratorHelper(_challengeEntity2.default);
+                _iterator4 = _createForOfIteratorHelper(_fluidPrices.default);
                 _context7.prev = 42;
 
                 _iterator4.s();
@@ -38330,9 +38576,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                _challengeEntity = _step4.value;
+                _price = _step4.value;
                 _context7.next = 48;
-                return this._client.create(_doctypes.CHALLENGE_DOCTYPE, _challengeEntity);
+                return this._client.create(_doctypes.FLUIDPRICES_DOCTYPE, _price);
 
               case 48:
                 _context7.next = 44;
@@ -38357,28 +38603,28 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 58:
                 _context7.next = 60;
-                return challengeService.getAllChallengeEntities();
+                return fpService.getAllPrices();
 
               case 60:
                 _checkCount2 = _context7.sent;
 
-                if (!(!_checkCount2 || _checkCount2 && _checkCount2.length !== _challengeEntity2.default.length)) {
+                if (!(!_checkCount2 || _checkCount2 && _checkCount2.length !== _fluidPrices.default.length)) {
                   _context7.next = 63;
                   break;
                 }
 
-                throw new Error('initChallengeEntity: Created challenge entities does not match');
+                throw new Error('initFluidPrices: Created fluidPrices type entities does not match');
 
               case 63:
-                _logger.default.info('[Initialization] Challenge entities updated');
+                _logger.default.info('[Initialization] FluidPrices updated');
 
-                return _context7.abrupt("return", challengeHash);
+                return _context7.abrupt("return", hashFluidPricesType);
 
               case 67:
                 _context7.prev = 67;
                 _context7.t3 = _context7["catch"](38);
 
-                _logger.default.error('Initialization error - initChallengeEntity: ', _context7.t3);
+                _logger.default.error('Initialization error - initFluidPrices: ', _context7.t3);
 
                 throw _context7.t3;
 
@@ -38388,9 +38634,9 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 73:
                 // Doctype already up to date
-                _logger.default.info('[Initialization] Challenge Entity loaded');
+                _logger.default.info('[Initialization]  FluidPrices already up-to-date');
 
-                return _context7.abrupt("return", challengeHash);
+                return _context7.abrupt("return", hashFluidPricesType);
 
               case 75:
               case "end":
@@ -38400,38 +38646,38 @@ var InitializationService = /*#__PURE__*/function () {
         }, _callee7, this, [[6, 33], [8, 18, 21, 24], [38, 67], [42, 52, 55, 58]]);
       }));
 
-      function initChallengeEntity(_x4) {
-        return _initChallengeEntity.apply(this, arguments);
+      function initFluidPrices(_x4) {
+        return _initFluidPrices.apply(this, arguments);
       }
 
-      return initChallengeEntity;
+      return initFluidPrices;
     }()
   }, {
-    key: "initDuelEntity",
+    key: "initChallengeEntity",
     value: function () {
-      var _initDuelEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(hash) {
-        var hashDuelEntity, duelService, loadedDuelTypes, _iterator5, _step5, duelEntity, checkCount, _iterator6, _step6, _duelEntity, _checkCount3;
+      var _initChallengeEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(hash) {
+        var challengeHash, challengeService, loadedChallengeEntity, _iterator5, _step5, challengeEntity, checkCount, _iterator6, _step6, _challengeEntity, _checkCount3;
 
         return _regenerator.default.wrap(function _callee8$(_context8) {
           while (1) {
             switch (_context8.prev = _context8.next) {
               case 0:
-                hashDuelEntity = (0, _hash.hashFile)(_duelEntity2.default);
-                duelService = new _duel.default(this._client); // Populate data if none DuelEntity exists
+                challengeHash = (0, _hash.hashFile)(_challengeEntity2.default);
+                challengeService = new _challenge.default(this._client); // Populate data if none challengeEntity exists
 
                 _context8.next = 4;
-                return duelService.getAllDuelEntities();
+                return challengeService.getAllChallengeEntities();
 
               case 4:
-                loadedDuelTypes = _context8.sent;
+                loadedChallengeEntity = _context8.sent;
 
-                if (!(!loadedDuelTypes || loadedDuelTypes && loadedDuelTypes.length === 0)) {
+                if (!(!loadedChallengeEntity || loadedChallengeEntity && loadedChallengeEntity.length === 0)) {
                   _context8.next = 37;
                   break;
                 }
 
                 _context8.prev = 6;
-                _iterator5 = _createForOfIteratorHelper(_duelEntity2.default);
+                _iterator5 = _createForOfIteratorHelper(_challengeEntity2.default);
                 _context8.prev = 8;
 
                 _iterator5.s();
@@ -38442,9 +38688,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                duelEntity = _step5.value;
+                challengeEntity = _step5.value;
                 _context8.next = 14;
-                return this._client.create(_doctypes.DUEL_DOCTYPE, duelEntity);
+                return this._client.create(_doctypes.CHALLENGE_DOCTYPE, challengeEntity);
 
               case 14:
                 _context8.next = 10;
@@ -38469,44 +38715,44 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 24:
                 _context8.next = 26;
-                return duelService.getAllDuelEntities();
+                return challengeService.getAllChallengeEntities();
 
               case 26:
                 checkCount = _context8.sent;
 
-                if (!(!checkCount || checkCount && checkCount.length !== _duelEntity2.default.length)) {
+                if (!(!checkCount || checkCount && checkCount.length !== _challengeEntity2.default.length)) {
                   _context8.next = 29;
                   break;
                 }
 
-                throw new Error('initDuelEntity: Created duel entities does not match');
+                throw new Error('initChallengeEntity: Created challenge entities does not match');
 
               case 29:
-                _logger.default.info('[Initialization] UserDuel entities created');
+                _logger.default.info('[Initialization] Challenge entities created');
 
-                return _context8.abrupt("return", hashDuelEntity);
+                return _context8.abrupt("return", challengeHash);
 
               case 33:
                 _context8.prev = 33;
                 _context8.t1 = _context8["catch"](6);
 
-                _logger.default.error('Initialization error - initDuelEntity: ', _context8.t1);
+                _logger.default.error('Initialization error - initChallengeEntity: ', _context8.t1);
 
                 throw _context8.t1;
 
               case 37:
-                if (!(hash !== hashDuelEntity)) {
+                if (!(hash !== challengeHash)) {
                   _context8.next = 73;
                   break;
                 }
 
                 _context8.prev = 38;
                 _context8.next = 41;
-                return duelService.deleteAllDuelEntities();
+                return challengeService.deleteAllChallengeEntities();
 
               case 41:
                 // Population with the data
-                _iterator6 = _createForOfIteratorHelper(_duelEntity2.default);
+                _iterator6 = _createForOfIteratorHelper(_challengeEntity2.default);
                 _context8.prev = 42;
 
                 _iterator6.s();
@@ -38517,9 +38763,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                _duelEntity = _step6.value;
+                _challengeEntity = _step6.value;
                 _context8.next = 48;
-                return this._client.create(_doctypes.DUEL_DOCTYPE, _duelEntity);
+                return this._client.create(_doctypes.CHALLENGE_DOCTYPE, _challengeEntity);
 
               case 48:
                 _context8.next = 44;
@@ -38544,28 +38790,28 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 58:
                 _context8.next = 60;
-                return duelService.getAllDuelEntities();
+                return challengeService.getAllChallengeEntities();
 
               case 60:
                 _checkCount3 = _context8.sent;
 
-                if (!(!_checkCount3 || _checkCount3 && _checkCount3.length !== _duelEntity2.default.length)) {
+                if (!(!_checkCount3 || _checkCount3 && _checkCount3.length !== _challengeEntity2.default.length)) {
                   _context8.next = 63;
                   break;
                 }
 
-                throw new Error('initDuelEntity: Created duel entities does not match');
+                throw new Error('initChallengeEntity: Created challenge entities does not match');
 
               case 63:
-                _logger.default.info('[Initialization] UserDuel entities updated');
+                _logger.default.info('[Initialization] Challenge entities updated');
 
-                return _context8.abrupt("return", hashDuelEntity);
+                return _context8.abrupt("return", challengeHash);
 
               case 67:
                 _context8.prev = 67;
                 _context8.t3 = _context8["catch"](38);
 
-                _logger.default.error('Initialization error - initDuelEntity: ', _context8.t3);
+                _logger.default.error('Initialization error - initChallengeEntity: ', _context8.t3);
 
                 throw _context8.t3;
 
@@ -38577,7 +38823,7 @@ var InitializationService = /*#__PURE__*/function () {
                 // Doctype already up to date
                 _logger.default.info('[Initialization] Challenge Entity loaded');
 
-                return _context8.abrupt("return", hashDuelEntity);
+                return _context8.abrupt("return", challengeHash);
 
               case 75:
               case "end":
@@ -38587,38 +38833,38 @@ var InitializationService = /*#__PURE__*/function () {
         }, _callee8, this, [[6, 33], [8, 18, 21, 24], [38, 67], [42, 52, 55, 58]]);
       }));
 
-      function initDuelEntity(_x5) {
-        return _initDuelEntity.apply(this, arguments);
+      function initChallengeEntity(_x5) {
+        return _initChallengeEntity.apply(this, arguments);
       }
 
-      return initDuelEntity;
+      return initChallengeEntity;
     }()
   }, {
-    key: "initQuizEntity",
+    key: "initDuelEntity",
     value: function () {
-      var _initQuizEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(hash) {
-        var quizHash, quizService, loadedQuizEntity, _iterator7, _step7, quizEntity, checkCount, _iterator8, _step8, _quizEntity, _checkCount4;
+      var _initDuelEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(hash) {
+        var hashDuelEntity, duelService, loadedDuelTypes, _iterator7, _step7, duelEntity, checkCount, _iterator8, _step8, _duelEntity, _checkCount4;
 
         return _regenerator.default.wrap(function _callee9$(_context9) {
           while (1) {
             switch (_context9.prev = _context9.next) {
               case 0:
-                quizHash = (0, _hash.hashFile)(_quizEntity2.default);
-                quizService = new _quiz.default(this._client); // Populate data if none quizEntity exists
+                hashDuelEntity = (0, _hash.hashFile)(_duelEntity2.default);
+                duelService = new _duel.default(this._client); // Populate data if none DuelEntity exists
 
                 _context9.next = 4;
-                return quizService.getAllQuizEntities();
+                return duelService.getAllDuelEntities();
 
               case 4:
-                loadedQuizEntity = _context9.sent;
+                loadedDuelTypes = _context9.sent;
 
-                if (!(!loadedQuizEntity || loadedQuizEntity && loadedQuizEntity.length === 0)) {
+                if (!(!loadedDuelTypes || loadedDuelTypes && loadedDuelTypes.length === 0)) {
                   _context9.next = 37;
                   break;
                 }
 
                 _context9.prev = 6;
-                _iterator7 = _createForOfIteratorHelper(_quizEntity2.default);
+                _iterator7 = _createForOfIteratorHelper(_duelEntity2.default);
                 _context9.prev = 8;
 
                 _iterator7.s();
@@ -38629,9 +38875,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                quizEntity = _step7.value;
+                duelEntity = _step7.value;
                 _context9.next = 14;
-                return this._client.create(_doctypes.QUIZ_DOCTYPE, quizEntity);
+                return this._client.create(_doctypes.DUEL_DOCTYPE, duelEntity);
 
               case 14:
                 _context9.next = 10;
@@ -38656,44 +38902,44 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 24:
                 _context9.next = 26;
-                return quizService.getAllQuizEntities();
+                return duelService.getAllDuelEntities();
 
               case 26:
                 checkCount = _context9.sent;
 
-                if (!(!checkCount || checkCount && checkCount.length !== _quizEntity2.default.length)) {
+                if (!(!checkCount || checkCount && checkCount.length !== _duelEntity2.default.length)) {
                   _context9.next = 29;
                   break;
                 }
 
-                throw new Error('initQuizEntity: Created quiz entities does not match');
+                throw new Error('initDuelEntity: Created duel entities does not match');
 
               case 29:
-                _logger.default.info('[Initialization] Quiz entities created');
+                _logger.default.info('[Initialization] UserDuel entities created');
 
-                return _context9.abrupt("return", quizHash);
+                return _context9.abrupt("return", hashDuelEntity);
 
               case 33:
                 _context9.prev = 33;
                 _context9.t1 = _context9["catch"](6);
 
-                _logger.default.error('Initialization error - initQuizEntity: ', _context9.t1);
+                _logger.default.error('Initialization error - initDuelEntity: ', _context9.t1);
 
                 throw _context9.t1;
 
               case 37:
-                if (!(hash !== quizHash)) {
+                if (!(hash !== hashDuelEntity)) {
                   _context9.next = 73;
                   break;
                 }
 
                 _context9.prev = 38;
                 _context9.next = 41;
-                return quizService.deleteAllQuizEntities();
+                return duelService.deleteAllDuelEntities();
 
               case 41:
                 // Population with the data
-                _iterator8 = _createForOfIteratorHelper(_quizEntity2.default);
+                _iterator8 = _createForOfIteratorHelper(_duelEntity2.default);
                 _context9.prev = 42;
 
                 _iterator8.s();
@@ -38704,9 +38950,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                _quizEntity = _step8.value;
+                _duelEntity = _step8.value;
                 _context9.next = 48;
-                return this._client.create(_doctypes.QUIZ_DOCTYPE, _quizEntity);
+                return this._client.create(_doctypes.DUEL_DOCTYPE, _duelEntity);
 
               case 48:
                 _context9.next = 44;
@@ -38731,28 +38977,28 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 58:
                 _context9.next = 60;
-                return quizService.getAllQuizEntities();
+                return duelService.getAllDuelEntities();
 
               case 60:
                 _checkCount4 = _context9.sent;
 
-                if (!(!_checkCount4 || _checkCount4 && _checkCount4.length !== _quizEntity2.default.length)) {
+                if (!(!_checkCount4 || _checkCount4 && _checkCount4.length !== _duelEntity2.default.length)) {
                   _context9.next = 63;
                   break;
                 }
 
-                throw new Error('initQuizEntity: Created quiz entities does not match');
+                throw new Error('initDuelEntity: Created duel entities does not match');
 
               case 63:
-                _logger.default.info('[Initialization] Quiz entities updated');
+                _logger.default.info('[Initialization] UserDuel entities updated');
 
-                return _context9.abrupt("return", quizHash);
+                return _context9.abrupt("return", hashDuelEntity);
 
               case 67:
                 _context9.prev = 67;
                 _context9.t3 = _context9["catch"](38);
 
-                _logger.default.error('Initialization error - initQuizEntity: ', _context9.t3);
+                _logger.default.error('Initialization error - initDuelEntity: ', _context9.t3);
 
                 throw _context9.t3;
 
@@ -38762,9 +39008,9 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 73:
                 // Doctype already up to date
-                _logger.default.info('[Initialization] Quiz Entity loaded');
+                _logger.default.info('[Initialization] Challenge Entity loaded');
 
-                return _context9.abrupt("return", quizHash);
+                return _context9.abrupt("return", hashDuelEntity);
 
               case 75:
               case "end":
@@ -38774,38 +39020,38 @@ var InitializationService = /*#__PURE__*/function () {
         }, _callee9, this, [[6, 33], [8, 18, 21, 24], [38, 67], [42, 52, 55, 58]]);
       }));
 
-      function initQuizEntity(_x6) {
-        return _initQuizEntity.apply(this, arguments);
+      function initDuelEntity(_x6) {
+        return _initDuelEntity.apply(this, arguments);
       }
 
-      return initQuizEntity;
+      return initDuelEntity;
     }()
   }, {
-    key: "initExplorationEntity",
+    key: "initQuizEntity",
     value: function () {
-      var _initExplorationEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(hash) {
-        var explorationHash, explorationService, loadedExplorationEntity, _iterator9, _step9, explorationEntity, checkCount, _iterator10, _step10, _explorationEntity, _checkCount5;
+      var _initQuizEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(hash) {
+        var quizHash, quizService, loadedQuizEntity, _iterator9, _step9, quizEntity, checkCount, _iterator10, _step10, _quizEntity, _checkCount5;
 
         return _regenerator.default.wrap(function _callee10$(_context10) {
           while (1) {
             switch (_context10.prev = _context10.next) {
               case 0:
-                explorationHash = (0, _hash.hashFile)(_explorationEntity2.default);
-                explorationService = new _exploration.default(this._client); // Populate data if none explorationEntity exists
+                quizHash = (0, _hash.hashFile)(_quizEntity2.default);
+                quizService = new _quiz.default(this._client); // Populate data if none quizEntity exists
 
                 _context10.next = 4;
-                return explorationService.getAllExplorationEntities();
+                return quizService.getAllQuizEntities();
 
               case 4:
-                loadedExplorationEntity = _context10.sent;
+                loadedQuizEntity = _context10.sent;
 
-                if (!(!loadedExplorationEntity || loadedExplorationEntity && loadedExplorationEntity.length === 0)) {
+                if (!(!loadedQuizEntity || loadedQuizEntity && loadedQuizEntity.length === 0)) {
                   _context10.next = 37;
                   break;
                 }
 
                 _context10.prev = 6;
-                _iterator9 = _createForOfIteratorHelper(_explorationEntity2.default);
+                _iterator9 = _createForOfIteratorHelper(_quizEntity2.default);
                 _context10.prev = 8;
 
                 _iterator9.s();
@@ -38816,9 +39062,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                explorationEntity = _step9.value;
+                quizEntity = _step9.value;
                 _context10.next = 14;
-                return this._client.create(_doctypes.EXPLORATION_DOCTYPE, explorationEntity);
+                return this._client.create(_doctypes.QUIZ_DOCTYPE, quizEntity);
 
               case 14:
                 _context10.next = 10;
@@ -38843,44 +39089,44 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 24:
                 _context10.next = 26;
-                return explorationService.getAllExplorationEntities();
+                return quizService.getAllQuizEntities();
 
               case 26:
                 checkCount = _context10.sent;
 
-                if (!(!checkCount || checkCount && checkCount.length !== _explorationEntity2.default.length)) {
+                if (!(!checkCount || checkCount && checkCount.length !== _quizEntity2.default.length)) {
                   _context10.next = 29;
                   break;
                 }
 
-                throw new Error('initExplorationEntity: Created exploration entities does not match');
+                throw new Error('initQuizEntity: Created quiz entities does not match');
 
               case 29:
-                _logger.default.info('[Initialization] Exploration entities created');
+                _logger.default.info('[Initialization] Quiz entities created');
 
-                return _context10.abrupt("return", explorationHash);
+                return _context10.abrupt("return", quizHash);
 
               case 33:
                 _context10.prev = 33;
                 _context10.t1 = _context10["catch"](6);
 
-                _logger.default.error('Initialization error - initExplorationEntity: ', _context10.t1);
+                _logger.default.error('Initialization error - initQuizEntity: ', _context10.t1);
 
                 throw _context10.t1;
 
               case 37:
-                if (!(hash !== explorationHash)) {
+                if (!(hash !== quizHash)) {
                   _context10.next = 73;
                   break;
                 }
 
                 _context10.prev = 38;
                 _context10.next = 41;
-                return explorationService.deleteAllExplorationEntities();
+                return quizService.deleteAllQuizEntities();
 
               case 41:
                 // Population with the data
-                _iterator10 = _createForOfIteratorHelper(_explorationEntity2.default);
+                _iterator10 = _createForOfIteratorHelper(_quizEntity2.default);
                 _context10.prev = 42;
 
                 _iterator10.s();
@@ -38891,9 +39137,9 @@ var InitializationService = /*#__PURE__*/function () {
                   break;
                 }
 
-                _explorationEntity = _step10.value;
+                _quizEntity = _step10.value;
                 _context10.next = 48;
-                return this._client.create(_doctypes.EXPLORATION_DOCTYPE, _explorationEntity);
+                return this._client.create(_doctypes.QUIZ_DOCTYPE, _quizEntity);
 
               case 48:
                 _context10.next = 44;
@@ -38918,28 +39164,28 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 58:
                 _context10.next = 60;
-                return explorationService.getAllExplorationEntities();
+                return quizService.getAllQuizEntities();
 
               case 60:
                 _checkCount5 = _context10.sent;
 
-                if (!(!_checkCount5 || _checkCount5 && _checkCount5.length !== _explorationEntity2.default.length)) {
+                if (!(!_checkCount5 || _checkCount5 && _checkCount5.length !== _quizEntity2.default.length)) {
                   _context10.next = 63;
                   break;
                 }
 
-                throw new Error('initExplorationEntity: Created exploration entities does not match');
+                throw new Error('initQuizEntity: Created quiz entities does not match');
 
               case 63:
-                _logger.default.info('[Initialization] Exploration entities updated');
+                _logger.default.info('[Initialization] Quiz entities updated');
 
-                return _context10.abrupt("return", explorationHash);
+                return _context10.abrupt("return", quizHash);
 
               case 67:
                 _context10.prev = 67;
                 _context10.t3 = _context10["catch"](38);
 
-                _logger.default.error('Initialization error - initExplorationEntity: ', _context10.t3);
+                _logger.default.error('Initialization error - initQuizEntity: ', _context10.t3);
 
                 throw _context10.t3;
 
@@ -38949,9 +39195,9 @@ var InitializationService = /*#__PURE__*/function () {
 
               case 73:
                 // Doctype already up to date
-                _logger.default.info('[Initialization] Exploration Entity loaded');
+                _logger.default.info('[Initialization] Quiz Entity loaded');
 
-                return _context10.abrupt("return", explorationHash);
+                return _context10.abrupt("return", quizHash);
 
               case 75:
               case "end":
@@ -38961,7 +39207,194 @@ var InitializationService = /*#__PURE__*/function () {
         }, _callee10, this, [[6, 33], [8, 18, 21, 24], [38, 67], [42, 52, 55, 58]]);
       }));
 
-      function initExplorationEntity(_x7) {
+      function initQuizEntity(_x7) {
+        return _initQuizEntity.apply(this, arguments);
+      }
+
+      return initQuizEntity;
+    }()
+  }, {
+    key: "initExplorationEntity",
+    value: function () {
+      var _initExplorationEntity = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(hash) {
+        var explorationHash, explorationService, loadedExplorationEntity, _iterator11, _step11, explorationEntity, checkCount, _iterator12, _step12, _explorationEntity, _checkCount6;
+
+        return _regenerator.default.wrap(function _callee11$(_context11) {
+          while (1) {
+            switch (_context11.prev = _context11.next) {
+              case 0:
+                explorationHash = (0, _hash.hashFile)(_explorationEntity2.default);
+                explorationService = new _exploration.default(this._client); // Populate data if none explorationEntity exists
+
+                _context11.next = 4;
+                return explorationService.getAllExplorationEntities();
+
+              case 4:
+                loadedExplorationEntity = _context11.sent;
+
+                if (!(!loadedExplorationEntity || loadedExplorationEntity && loadedExplorationEntity.length === 0)) {
+                  _context11.next = 37;
+                  break;
+                }
+
+                _context11.prev = 6;
+                _iterator11 = _createForOfIteratorHelper(_explorationEntity2.default);
+                _context11.prev = 8;
+
+                _iterator11.s();
+
+              case 10:
+                if ((_step11 = _iterator11.n()).done) {
+                  _context11.next = 16;
+                  break;
+                }
+
+                explorationEntity = _step11.value;
+                _context11.next = 14;
+                return this._client.create(_doctypes.EXPLORATION_DOCTYPE, explorationEntity);
+
+              case 14:
+                _context11.next = 10;
+                break;
+
+              case 16:
+                _context11.next = 21;
+                break;
+
+              case 18:
+                _context11.prev = 18;
+                _context11.t0 = _context11["catch"](8);
+
+                _iterator11.e(_context11.t0);
+
+              case 21:
+                _context11.prev = 21;
+
+                _iterator11.f();
+
+                return _context11.finish(21);
+
+              case 24:
+                _context11.next = 26;
+                return explorationService.getAllExplorationEntities();
+
+              case 26:
+                checkCount = _context11.sent;
+
+                if (!(!checkCount || checkCount && checkCount.length !== _explorationEntity2.default.length)) {
+                  _context11.next = 29;
+                  break;
+                }
+
+                throw new Error('initExplorationEntity: Created exploration entities does not match');
+
+              case 29:
+                _logger.default.info('[Initialization] Exploration entities created');
+
+                return _context11.abrupt("return", explorationHash);
+
+              case 33:
+                _context11.prev = 33;
+                _context11.t1 = _context11["catch"](6);
+
+                _logger.default.error('Initialization error - initExplorationEntity: ', _context11.t1);
+
+                throw _context11.t1;
+
+              case 37:
+                if (!(hash !== explorationHash)) {
+                  _context11.next = 73;
+                  break;
+                }
+
+                _context11.prev = 38;
+                _context11.next = 41;
+                return explorationService.deleteAllExplorationEntities();
+
+              case 41:
+                // Population with the data
+                _iterator12 = _createForOfIteratorHelper(_explorationEntity2.default);
+                _context11.prev = 42;
+
+                _iterator12.s();
+
+              case 44:
+                if ((_step12 = _iterator12.n()).done) {
+                  _context11.next = 50;
+                  break;
+                }
+
+                _explorationEntity = _step12.value;
+                _context11.next = 48;
+                return this._client.create(_doctypes.EXPLORATION_DOCTYPE, _explorationEntity);
+
+              case 48:
+                _context11.next = 44;
+                break;
+
+              case 50:
+                _context11.next = 55;
+                break;
+
+              case 52:
+                _context11.prev = 52;
+                _context11.t2 = _context11["catch"](42);
+
+                _iterator12.e(_context11.t2);
+
+              case 55:
+                _context11.prev = 55;
+
+                _iterator12.f();
+
+                return _context11.finish(55);
+
+              case 58:
+                _context11.next = 60;
+                return explorationService.getAllExplorationEntities();
+
+              case 60:
+                _checkCount6 = _context11.sent;
+
+                if (!(!_checkCount6 || _checkCount6 && _checkCount6.length !== _explorationEntity2.default.length)) {
+                  _context11.next = 63;
+                  break;
+                }
+
+                throw new Error('initExplorationEntity: Created exploration entities does not match');
+
+              case 63:
+                _logger.default.info('[Initialization] Exploration entities updated');
+
+                return _context11.abrupt("return", explorationHash);
+
+              case 67:
+                _context11.prev = 67;
+                _context11.t3 = _context11["catch"](38);
+
+                _logger.default.error('Initialization error - initExplorationEntity: ', _context11.t3);
+
+                throw _context11.t3;
+
+              case 71:
+                _context11.next = 75;
+                break;
+
+              case 73:
+                // Doctype already up to date
+                _logger.default.info('[Initialization] Exploration Entity loaded');
+
+                return _context11.abrupt("return", explorationHash);
+
+              case 75:
+              case "end":
+                return _context11.stop();
+            }
+          }
+        }, _callee11, this, [[6, 33], [8, 18, 21, 24], [38, 67], [42, 52, 55, 58]]);
+      }));
+
+      function initExplorationEntity(_x8) {
         return _initExplorationEntity.apply(this, arguments);
       }
 
@@ -38970,21 +39403,21 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initAnalysis",
     value: function () {
-      var _initAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(profile) {
+      var _initAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(profile) {
         var actualAnalysisDate;
-        return _regenerator.default.wrap(function _callee11$(_context11) {
+        return _regenerator.default.wrap(function _callee12$(_context12) {
           while (1) {
-            switch (_context11.prev = _context11.next) {
+            switch (_context12.prev = _context12.next) {
               case 0:
-                _context11.prev = 0;
+                _context12.prev = 0;
                 actualAnalysisDate = (0, _date.getActualAnalysisDate)();
 
                 if (!(profile.monthlyAnalysisDate && actualAnalysisDate <= profile.monthlyAnalysisDate)) {
-                  _context11.next = 6;
+                  _context12.next = 6;
                   break;
                 }
 
-                return _context11.abrupt("return", {
+                return _context12.abrupt("return", {
                   monthlyAnalysisDate: profile.monthlyAnalysisDate,
                   haveSeenLastAnalysis: profile.haveSeenLastAnalysis
                 });
@@ -38992,32 +39425,32 @@ var InitializationService = /*#__PURE__*/function () {
               case 6:
                 _logger.default.info('[Initialization] Analysis information from profile updated');
 
-                return _context11.abrupt("return", {
+                return _context12.abrupt("return", {
                   monthlyAnalysisDate: actualAnalysisDate,
                   haveSeenLastAnalysis: profile.isFirstConnection ? true : false
                 });
 
               case 8:
-                _context11.next = 14;
+                _context12.next = 14;
                 break;
 
               case 10:
-                _context11.prev = 10;
-                _context11.t0 = _context11["catch"](0);
+                _context12.prev = 10;
+                _context12.t0 = _context12["catch"](0);
 
-                _logger.default.error('Initialization error - initAnalysis: ', _context11.t0);
+                _logger.default.error('Initialization error - initAnalysis: ', _context12.t0);
 
-                throw _context11.t0;
+                throw _context12.t0;
 
               case 14:
               case "end":
-                return _context11.stop();
+                return _context12.stop();
             }
           }
-        }, _callee11, null, [[0, 10]]);
+        }, _callee12, null, [[0, 10]]);
       }));
 
-      function initAnalysis(_x8) {
+      function initAnalysis(_x9) {
         return _initAnalysis.apply(this, arguments);
       }
 
@@ -39032,50 +39465,50 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initFluidTypes",
     value: function () {
-      var _initFluidTypes = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
+      var _initFluidTypes = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
         var kss, fluidtypes;
-        return _regenerator.default.wrap(function _callee12$(_context12) {
+        return _regenerator.default.wrap(function _callee13$(_context13) {
           while (1) {
-            switch (_context12.prev = _context12.next) {
+            switch (_context13.prev = _context13.next) {
               case 0:
                 kss = new _konnectorStatus.default(this._client);
-                _context12.prev = 1;
-                _context12.next = 4;
+                _context13.prev = 1;
+                _context13.next = 4;
                 return kss.getKonnectorAccountStatus();
 
               case 4:
-                fluidtypes = _context12.sent;
+                fluidtypes = _context13.sent;
 
                 if (!fluidtypes) {
-                  _context12.next = 10;
+                  _context13.next = 10;
                   break;
                 }
 
                 _logger.default.info('[Initialization] Fluid Types loaded');
 
-                return _context12.abrupt("return", fluidtypes);
+                return _context13.abrupt("return", fluidtypes);
 
               case 10:
                 throw new Error('initFluidTypes: FluidTypes not found');
 
               case 11:
-                _context12.next = 17;
+                _context13.next = 17;
                 break;
 
               case 13:
-                _context12.prev = 13;
-                _context12.t0 = _context12["catch"](1);
+                _context13.prev = 13;
+                _context13.t0 = _context13["catch"](1);
 
-                _logger.default.error('Initialization error - initFluidTypes: ', _context12.t0);
+                _logger.default.error('Initialization error - initFluidTypes: ', _context13.t0);
 
-                throw _context12.t0;
+                throw _context13.t0;
 
               case 17:
               case "end":
-                return _context12.stop();
+                return _context13.stop();
             }
           }
-        }, _callee12, this, [[1, 13]]);
+        }, _callee13, this, [[1, 13]]);
       }));
 
       function initFluidTypes() {
@@ -39093,50 +39526,50 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initFluidStatus",
     value: function () {
-      var _initFluidStatus = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
+      var _initFluidStatus = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
         var fs, fluidStatus;
-        return _regenerator.default.wrap(function _callee13$(_context13) {
+        return _regenerator.default.wrap(function _callee14$(_context14) {
           while (1) {
-            switch (_context13.prev = _context13.next) {
+            switch (_context14.prev = _context14.next) {
               case 0:
                 fs = new _fluid.default(this._client);
-                _context13.prev = 1;
-                _context13.next = 4;
+                _context14.prev = 1;
+                _context14.next = 4;
                 return fs.getFluidStatus();
 
               case 4:
-                fluidStatus = _context13.sent;
+                fluidStatus = _context14.sent;
 
                 if (!fluidStatus) {
-                  _context13.next = 10;
+                  _context14.next = 10;
                   break;
                 }
 
                 _logger.default.info('[Initialization] Fluid Status loaded');
 
-                return _context13.abrupt("return", fluidStatus);
+                return _context14.abrupt("return", fluidStatus);
 
               case 10:
                 throw new Error('initFluidStatus: fluidStatus not found');
 
               case 11:
-                _context13.next = 17;
+                _context14.next = 17;
                 break;
 
               case 13:
-                _context13.prev = 13;
-                _context13.t0 = _context13["catch"](1);
+                _context14.prev = 13;
+                _context14.t0 = _context14["catch"](1);
 
-                _logger.default.error('Initialization error - initFluidStatus: ', _context13.t0);
+                _logger.default.error('Initialization error - initFluidStatus: ', _context14.t0);
 
-                throw _context13.t0;
+                throw _context14.t0;
 
               case 17:
               case "end":
-                return _context13.stop();
+                return _context14.stop();
             }
           }
-        }, _callee13, this, [[1, 13]]);
+        }, _callee14, this, [[1, 13]]);
       }));
 
       function initFluidStatus() {
@@ -39154,53 +39587,53 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initUserChallenges",
     value: function () {
-      var _initUserChallenges = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(fluidStatus) {
+      var _initUserChallenges = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(fluidStatus) {
         var challengeService, userChallengeList;
-        return _regenerator.default.wrap(function _callee14$(_context14) {
+        return _regenerator.default.wrap(function _callee15$(_context15) {
           while (1) {
-            switch (_context14.prev = _context14.next) {
+            switch (_context15.prev = _context15.next) {
               case 0:
                 challengeService = new _challenge.default(this._client);
-                _context14.prev = 1;
-                _context14.next = 4;
+                _context15.prev = 1;
+                _context15.next = 4;
                 return challengeService.buildUserChallengeList(fluidStatus);
 
               case 4:
-                userChallengeList = _context14.sent;
+                userChallengeList = _context15.sent;
 
                 if (!userChallengeList) {
-                  _context14.next = 10;
+                  _context15.next = 10;
                   break;
                 }
 
                 _logger.default.info('[Initialization] Challenges loaded');
 
-                return _context14.abrupt("return", userChallengeList);
+                return _context15.abrupt("return", userChallengeList);
 
               case 10:
                 throw new Error('initUserChallenges: userChallengeList not found');
 
               case 11:
-                _context14.next = 17;
+                _context15.next = 17;
                 break;
 
               case 13:
-                _context14.prev = 13;
-                _context14.t0 = _context14["catch"](1);
+                _context15.prev = 13;
+                _context15.t0 = _context15["catch"](1);
 
-                _logger.default.error('Initialization error - initUserChallenges: ', _context14.t0);
+                _logger.default.error('Initialization error - initUserChallenges: ', _context15.t0);
 
-                throw _context14.t0;
+                throw _context15.t0;
 
               case 17:
               case "end":
-                return _context14.stop();
+                return _context15.stop();
             }
           }
-        }, _callee14, this, [[1, 13]]);
+        }, _callee15, this, [[1, 13]]);
       }));
 
-      function initUserChallenges(_x9) {
+      function initUserChallenges(_x10) {
         return _initUserChallenges.apply(this, arguments);
       }
 
@@ -39215,54 +39648,54 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initDuelProgress",
     value: function () {
-      var _initDuelProgress = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15(userChallenge) {
+      var _initDuelProgress = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16(userChallenge) {
         var challengeService, consumptionService, dataloads, userConsumption, _userChallenge, updatedUserChallenge;
 
-        return _regenerator.default.wrap(function _callee15$(_context15) {
+        return _regenerator.default.wrap(function _callee16$(_context16) {
           while (1) {
-            switch (_context15.prev = _context15.next) {
+            switch (_context16.prev = _context16.next) {
               case 0:
                 challengeService = new _challenge.default(this._client);
                 consumptionService = new _consumption.default(this._client);
-                _context15.prev = 2;
-                _context15.next = 5;
+                _context16.prev = 2;
+                _context16.next = 5;
                 return challengeService.getUserChallengeDataload(userChallenge);
 
               case 5:
-                dataloads = _context15.sent;
+                dataloads = _context16.sent;
                 userConsumption = (0, _math.getRoundFloat)(consumptionService.calculatePerformanceIndicatorValue(dataloads));
                 _userChallenge = (0, _objectSpread2.default)({}, userChallenge, {
                   duel: (0, _objectSpread2.default)({}, userChallenge.duel, {
                     userConsumption: userConsumption
                   })
                 });
-                _context15.next = 10;
+                _context16.next = 10;
                 return challengeService.updateUserChallenge(_userChallenge, _userChallenge2.UserChallengeUpdateFlag.DUEL_CONSUMPTION);
 
               case 10:
-                updatedUserChallenge = _context15.sent;
-                return _context15.abrupt("return", {
+                updatedUserChallenge = _context16.sent;
+                return _context16.abrupt("return", {
                   updatedUserChallenge: updatedUserChallenge,
                   dataloads: dataloads
                 });
 
               case 14:
-                _context15.prev = 14;
-                _context15.t0 = _context15["catch"](2);
+                _context16.prev = 14;
+                _context16.t0 = _context16["catch"](2);
 
-                _logger.default.error('Initialization error: ', _context15.t0);
+                _logger.default.error('Initialization error: ', _context16.t0);
 
-                throw _context15.t0;
+                throw _context16.t0;
 
               case 18:
               case "end":
-                return _context15.stop();
+                return _context16.stop();
             }
           }
-        }, _callee15, this, [[2, 14]]);
+        }, _callee16, this, [[2, 14]]);
       }));
 
-      function initDuelProgress(_x10) {
+      function initDuelProgress(_x11) {
         return _initDuelProgress.apply(this, arguments);
       }
 
@@ -39271,44 +39704,44 @@ var InitializationService = /*#__PURE__*/function () {
   }, {
     key: "initConsent",
     value: function () {
-      var _initConsent = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
+      var _initConsent = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
         var termsStatus, termService, isUpToDate, lastTerm, isLastConsentValidated, versionType;
-        return _regenerator.default.wrap(function _callee16$(_context16) {
+        return _regenerator.default.wrap(function _callee17$(_context17) {
           while (1) {
-            switch (_context16.prev = _context16.next) {
+            switch (_context17.prev = _context17.next) {
               case 0:
                 termsStatus = {
                   accepted: false,
                   versionType: 'init'
                 };
-                _context16.prev = 1;
+                _context17.prev = 1;
                 termService = new _terms.default(this._client);
-                _context16.next = 5;
+                _context17.next = 5;
                 return termService.isConsentVersionUpToDate();
 
               case 5:
-                isUpToDate = _context16.sent;
-                _context16.next = 8;
+                isUpToDate = _context17.sent;
+                _context17.next = 8;
                 return termService.getLastTerm();
 
               case 8:
-                lastTerm = _context16.sent;
+                lastTerm = _context17.sent;
 
                 if (!lastTerm) {
-                  _context16.next = 23;
+                  _context17.next = 23;
                   break;
                 }
 
                 if (!isUpToDate) {
-                  _context16.next = 17;
+                  _context17.next = 17;
                   break;
                 }
 
-                _context16.next = 13;
+                _context17.next = 13;
                 return termService.isLastTermValidated();
 
               case 13:
-                isLastConsentValidated = _context16.sent;
+                isLastConsentValidated = _context17.sent;
 
                 if (isLastConsentValidated) {
                   termsStatus.accepted = true;
@@ -39322,15 +39755,15 @@ var InitializationService = /*#__PURE__*/function () {
                   _logger.default.info('[Initialization] Consent not up-to-date');
                 }
 
-                _context16.next = 21;
+                _context17.next = 21;
                 break;
 
               case 17:
-                _context16.next = 19;
+                _context17.next = 19;
                 return termService.getTermsVersionType();
 
               case 19:
-                versionType = _context16.sent;
+                versionType = _context17.sent;
 
                 if (versionType === 'minor') {
                   termsStatus.accepted = false;
@@ -39345,7 +39778,7 @@ var InitializationService = /*#__PURE__*/function () {
                 }
 
               case 21:
-                _context16.next = 26;
+                _context17.next = 26;
                 break;
 
               case 23:
@@ -39355,22 +39788,22 @@ var InitializationService = /*#__PURE__*/function () {
                 _logger.default.info('[Initialization] Init first terms');
 
               case 26:
-                return _context16.abrupt("return", termsStatus);
+                return _context17.abrupt("return", termsStatus);
 
               case 29:
-                _context16.prev = 29;
-                _context16.t0 = _context16["catch"](1);
+                _context17.prev = 29;
+                _context17.t0 = _context17["catch"](1);
 
-                _logger.default.error('Initialization error - initConsent: ', _context16.t0);
+                _logger.default.error('Initialization error - initConsent: ', _context17.t0);
 
-                throw _context16.t0;
+                throw _context17.t0;
 
               case 33:
               case "end":
-                return _context16.stop();
+                return _context17.stop();
             }
           }
-        }, _callee16, this, [[1, 29]]);
+        }, _callee17, this, [[1, 29]]);
       }));
 
       function initConsent() {
diff --git a/index.html b/index.html
index 77275359a685f5e04bd1f70bca44704adf54bd60..c0b860868d6fcdff7d9994afea93e994d995f5f1 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,user-scalable=0,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black">{{.ThemeCSS}} {{.CozyBar}}</head><body><div role="application" class="application" data-cozy-token="{{.Token}}" data-cozy-domain="{{.Domain}}" data-cozy-locale="{{.Locale}}" data-cozy-app-name="{{.AppName}}" data-cozy-app-slug="{{.AppSlug}}" data-cozy-app-name-prefix="{{.AppNamePrefix}}" data-cozy-app-editor="{{.AppEditor}}" data-cozy-icon-path="{{.IconPath}}"><script src="vendors/ecolyo.3256cfd41a1e2c66ff46.js"></script><script src="app/ecolyo.2a7ea6cd34ec43873e45.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,user-scalable=0,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black">{{.ThemeCSS}} {{.CozyBar}}</head><body><div role="application" class="application" data-cozy-token="{{.Token}}" data-cozy-domain="{{.Domain}}" data-cozy-locale="{{.Locale}}" data-cozy-app-name="{{.AppName}}" data-cozy-app-slug="{{.AppSlug}}" data-cozy-app-name-prefix="{{.AppNamePrefix}}" data-cozy-app-editor="{{.AppEditor}}" data-cozy-icon-path="{{.IconPath}}"><script src="vendors/ecolyo.3256cfd41a1e2c66ff46.js"></script><script src="app/ecolyo.4094c8a63536ad3315d0.js"></script></div></body></html>
\ No newline at end of file
diff --git a/services/fluidsPrices/ecolyo.js b/services/fluidsPrices/ecolyo.js
index 9d1d3d2b269cec9b0da2c9af1336c9dbd8e85107..278a148244d15fd7501b6c378461b3db3b4bab64 100644
--- a/services/fluidsPrices/ecolyo.js
+++ b/services/fluidsPrices/ecolyo.js
@@ -76024,7 +76024,9 @@ class FluidPricesService {
       endDate: {
         $eq: null
       }
-    }).limitBy(3);
+    }).sortBy([{
+      fluidType: 'asc'
+    }]).limitBy(3);
     const {
       data: fluidsPrices
     } = await this._client.query(query); // If some data is missing, recover it using default config
@@ -76063,8 +76065,8 @@ class FluidPricesService {
     const fluidsPrices = await this.getAllPrices();
 
     try {
-      for (let index = 0; index < fluidsPrices.length; index++) {
-        await this._client.destroy(fluidsPrices[index]);
+      for (const price of fluidsPrices) {
+        await this._client.destroy(price);
       }
 
       return true;