package Ġdb Ċ Ċ import Ġcom . github . m jdbc . Bind Ċ import Ġcom . github . m jdbc . Db Mapper Ċ import Ġcom . github . m jdbc . Sql Ċ import Ġjava . sql . ResultSet Ċ import Ġjava . time . LocalDateTime Ċ Ċ data Ġclass ĠEvent Entity ( ĊĊĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠ Ġval Ġsensor Id : ĠInt , ĊĠĠĠ Ġval Ġtime Stamp : ĠLocalDateTime , ĊĠĠĠ Ġval Ġdata : ĠString , ĊĠĠĠ Ġval Ġtransform Id : ĠInt Ċ ) Ċ Ċ class ĠEvent Mapper Ġ: ĠDb Mapper < Event Entity > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmap ( r : ĠResultSet ): ĠEvent Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠEvent Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr . getInt (" id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr . getInt (" sensor _ id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr . getTimestamp (" timestamp "). to LocalDateTime (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr . getString (" data "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr . getInt (" transform _ id ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ interface ĠEvent Sql Ġ{ ĊĠĠĠ Ġ@ Sql ( ĊĠĠĠĠĠĠĠ Ġ" INSERT ĠINTO Ġevents Ġ( sensor _ id , Ġtimestamp , Ġdata , Ġtransform _ id ) ĠVALUES Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" (: id , Ġnow (), Ġ: transformed , Ġ: transform _ id )" ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġinsert (@ Bind (" id ") Ġid : ĠInt , Ġ@ Bind (" transform _ id ") Ġtransform Id : ĠInt , Ġ@ Bind (" transformed ") Ġtransformed : ĠString ) ĊĊĠĠĠ Ġ@ Sql ( Ġ" SELECT Ġ* ĠFROM ĠEVENT S ĠWHERE Ġtransform _ id =: id ĠORDER ĠBY Ġtimestamp ĠDESC ĠLIMIT Ġ: limit ") ĊĠĠĠ Ġfun Ġget For Transform (@ Bind (" id ") Ġtransform Id : ĠInt , Ġ@ Bind (" limit ") Ġlimit : ĠInt ): ĠList < Event Entity > ĊĊĠĠĠ Ġ@ Sql (" CREATE ĠTABLE Ġevents Ġ( Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id Ġserial ĠNOT ĠNULL ĠPRIMARY ĠKEY , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" data Ġvarchar ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" timestamp Ġtimestamp ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sensor _ id Ġint ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" transform _ id Ġint ĠNOT ĠNULL , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" CONSTRAINT Ġevents _ sensor _ id _ f key ĠFOREIGN ĠKEY Ġ( sensor _ id ) ĠREFERENCES Ġsensors ( id ) ĠON ĠDELETE ĠCASCADE , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" CONSTRAINT Ġevents _ transform _ id _ f key ĠFOREIGN ĠKEY Ġ( transform _ id ) ĠREFERENCES Ġtransforms ( id ) ĠON ĠDELETE ĠCASCADE Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ") ") ĊĠĠĠ Ġfun Ġcreate () Ċ Ċ } ĊĊ