package Ġcom . cor rot . db . data . dao Ċ Ċ import Ġcom . cor rot . db . Devices Configurations Ċ import Ġcom . cor rot . db . K wi at onomous Database Ċ import Ġcom . cor rot . db . data . model . Device Configuration Ċ import Ġorg . jetbrains . ex posed . sql . Schema Utils Ċ import Ġorg . jetbrains . ex posed . sql . insert Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġorg . jetbrains . ex posed . sql . update Ċ Ċ class ĠDevice Configuration Dao Impl ( private Ġval Ġdatabase : ĠK wi at onomous Database ) Ġ: ĠDevice Configuration Dao Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction ( database . db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . create ( Devices Configurations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Device Configuration ( deviceId : ĠString ): ĠDevice Configuration ? Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction ( database . db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDevices Configurations . select Ġ{ ĠDevices Configurations . deviceId Ġeq ĠdeviceId Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDevice Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdeviceId Ġ= Ġit [ Devices Configurations . deviceId ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsleep Time Minutes Ġ= Ġit [ Devices Configurations . sleep Time Minutes ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Zone Offset Ġ= Ġit [ Devices Configurations . time Zone Offset ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwater ing On Ġ= Ġit [ Devices Configurations . water ing On ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwater ing Interval Days Ġ= Ġit [ Devices Configurations . water ing Interval Days ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwater ing Amount Ġ= Ġit [ Devices Configurations . water ing Amount ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwater ing Time Ġ= Ġit [ Devices Configurations . water ing Time ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. single OrNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Device Configuration ( ĊĠĠĠĠĠĠĠ ĠdeviceId : ĠString , ĊĠĠĠĠĠĠĠ Ġsleep Time Minutes : ĠInt , ĊĠĠĠĠĠĠĠ Ġtime Zone Offset : ĠInt , ĊĠĠĠĠĠĠĠ Ġwater ing On : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġwater ing Interval Days : ĠInt , ĊĠĠĠĠĠĠĠ Ġwater ing Amount : ĠInt , ĊĠĠĠĠĠĠĠ Ġwater ing Time : ĠString ĊĠĠĠ Ġ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction ( database . db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDevices Configurations . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . deviceId ] Ġ= ĠdeviceId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . sleep Time Minutes ] Ġ= Ġsleep Time Minutes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . time Zone Offset ] Ġ= Ġtime Zone Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing On ] Ġ= Ġwater ing On ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Interval Days ] Ġ= Ġwater ing Interval Days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Amount ] Ġ= Ġwater ing Amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Time ] Ġ= Ġwater ing Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Device Configuration ( device Configuration : ĠDevice Configuration ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction ( database . db ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDevices Configurations . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġ= Ġ{ ĠDevices Configurations . deviceId Ġeq Ġdevice Configuration . deviceId Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . deviceId ] Ġ= Ġdevice Configuration . deviceId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . sleep Time Minutes ] Ġ= Ġdevice Configuration . sleep Time Minutes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . time Zone Offset ] Ġ= Ġdevice Configuration . time Zone Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing On ] Ġ= Ġdevice Configuration . water ing On ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Interval Days ] Ġ= Ġdevice Configuration . water ing Interval Days ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Amount ] Ġ= Ġdevice Configuration . water ing Amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Devices Configurations . water ing Time ] Ġ= Ġdevice Configuration . water ing Time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ċ }