nullable: true
         premium:
             type: boolean
+            nullable: true
         rainfall:
             type: float
             nullable: true
         temperaturemax:
             type: float
             nullable: true
+        locked:
+            type: datetime
+            nullable: true
         created:
             type: datetime
         updated:
         date_location_slot:
             columns: [ date, location_id, slot_id ]
     indexes:
-        application_date_begin_slot_created:
-            columns: [ application_id, date, begin, slot_id, created ]
+        #XXX: used in SessionRepository::findAllPendingApplication
+        locked_date_begin_created:
+            columns: [ locked, date, begin, created ]
+        #XXX: used in SessionRepository::findBestApplicationById(s3)
+        application_locked_date_begin_slot_created:
+            columns: [ application_id, locked, date, begin, slot_id, created ]
+        #XXX: candidated in findAllPendingDailyWeather and findAllPendingHourlyWeather
+        location_date_begin_length_slot:
+            columns: [ location_id, date, begin, length, slot_id ]
+#        #XXX: tried for SessionRepository::findBestApplicationById(s2)
+#        location_slot_application_locked_date_begin:
+#            columns: [ location_id, slot_id, application_id, locked, date ]
+#        #XXX: tried for SessionRepository::findBestApplicationById(s3)
+#        application_locked_date:
+#            columns: [ application_id, locked, date ]
+#        #XXX: tried for SessionRepository::findBestApplicationById(s4)
+#        location_application_locked_date:
+#            columns: [ location_id, application_id, locked, date ]
+    lifecycleCallbacks:
+        preUpdate: ['preUpdate']