package Ġno . nav . amt . tilt ak . delt aker . repositories Ċ Ċ import Ġno . nav . amt . tilt ak . delt aker . dbo . Del t aker D bo Ċ import Ġorg . springframework . jdbc . core . Row Mapper Ċ import Ġorg . springframework . jdbc . core . named param . Map Sql Parameter Source Ċ import Ġorg . springframework . jdbc . core . named param . Named Parameter Jdbc Template Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ Ċ @ Component Ċ open Ġclass ĠDel t aker Repository ( Ċ ĉ private Ġval Ġtemplate : ĠNamed Parameter Jdbc Template Ċ ) Ġ{ Ċ ĉ private Ġval Ġrow Mapper Ġ= ĠRow Mapper Ġ{ Ġrs , Ġ_ Ġ-> ĊĊĉ ĉ Del t aker D bo ( Ċĉĉ ĉ id Ġ= ĠUUID . fromString ( rs . getString (" id ")), Ċĉĉ ĉ br uk er Id Ġ= ĠUUID . fromString ( rs . getString (" br uk er _ id ")), Ċĉĉ ĉ br uk er F od se ls nummer Ġ= Ġrs . getString (" f od se ls nummer "), Ċĉĉ ĉ br uk er For nav n Ġ= Ġrs . getString (" for nav n "), Ċĉĉ ĉ br uk er Et tern av n Ġ= Ġrs . getString (" et tern av n "), Ċĉĉ ĉ start D ato Ġ= Ġrs . getDate (" start _ dat o ") ?. to LocalDate (), Ċĉĉ ĉ sl utt D ato Ġ= Ġrs . getDate (" sl utt _ dat o ") ?. to LocalDate (), Ċĉĉ ĉ gj enn om for ing Id Ġ= ĠUUID . fromString ( rs . getString (" gj enn om for ing _ id ")), Ċĉĉ ĉ d ager Per U ke Ġ= Ġrs . getInt (" d ager _ per _ uke "), Ċĉĉ ĉ pro sent St illing Ġ= Ġrs . get Float (" pro sent _ st illing "), Ċĉĉ ĉ createdAt Ġ= Ġrs . getTimestamp (" created _ at "). to LocalDateTime (), Ċĉĉ ĉ modified At Ġ= Ġrs . getTimestamp (" modified _ at "). to LocalDateTime (), Ċĉĉ ĉ regist r ert D ato Ġ= Ġrs . getTimestamp (" regist r ert _ dat o "). to LocalDateTime () Ċĉ ĉ ) Ċ ĉ } ĊĊ ĉ fun Ġinsert ( Ċĉ ĉ id : ĠUUID , Ċĉ ĉ br uk er Id : ĠUUID , Ċĉ ĉ gj enn om for ing Id : ĠUUID , Ċĉ ĉ start D ato : ĠLocalDate ?, Ċĉ ĉ sl utt D ato : ĠLocalDate ?, Ċĉ ĉ d ager Per U ke : ĠInt ?, Ċĉ ĉ pro sent St illing : ĠFloat ?, Ċĉ ĉ regist r ert D ato : ĠLocalDateTime Ċ ĉ ): ĠDel t aker D bo Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ INSERT ĠINTO Ġdelt aker ( id , Ġbru ker _ id , Ġg j enn om for ing _ id , Ġstart _ dat o , Ġsl utt _ dat o , Ċĉĉĉĉĉĉĉĉ Ġd ager _ per _ uke , Ġpro sent _ st illing , Ġregist r ert _ dat o ) Ċĉĉ ĉ VALUES Ġ(: id , Ċĉĉĉĉ ĉ : br uk er Id , Ċĉĉĉĉ ĉ : gj enn om for ing Id , Ċĉĉĉĉ ĉ : start dat o , Ċĉĉĉĉ ĉ : sl ut td ato , Ċĉĉĉĉ ĉ : d ager Per U ke , Ċĉĉĉĉ ĉ : pro sent St illing , Ċĉĉĉĉ ĉ : regist r ert D ato ) Ċĉ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of ( Ċĉĉĉ ĉ " id " Ġto Ġid , Ċĉĉĉ ĉ " br uk er Id " Ġto Ġbru ker Id , Ċĉĉĉ ĉ " gj enn om for ing Id " Ġto Ġg j enn om for ing Id , Ċĉĉĉ ĉ " start dat o " Ġto Ġstart D ato , Ċĉĉĉ ĉ " sl ut td ato " Ġto Ġsl utt D ato , Ċĉĉĉ ĉ " d ager Per U ke " Ġto Ġd ager Per U ke , Ċĉĉĉ ĉ " pro sent St illing " Ġto Ġpro sent St illing , Ċĉĉĉ ĉ " regist r ert D ato " Ġto Ġregist r ert D ato Ċĉĉ ĉ ) Ċĉ ĉ ) ĊĊĉ ĉ template . update ( sql , Ġparameters ) ĊĊĉ ĉ return Ġget ( id ) Ċĉĉ ĉ ?: Ġthrow ĠNoSuch ElementException (" Del t aker Ġ$ br uk er Id Ġfin nes Ġik ke ĠpÃ¥ Ġt ilt ak sg j enn om f Ã¸ ring Ġ$ gj enn om for ing Id ") ĊĊ ĉ } ĊĊ ĉ fun Ġget Del tak ere P aa T ilt ak ( id : ĠUUID ): ĠList < Del t aker D bo > Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ SELECT Ġdelt aker .*, Ċĉĉĉ ĉ br uk er . f od se ls nummer , Ċĉĉĉ ĉ br uk er . for nav n , Ċĉĉĉ ĉ br uk er . et tern av n Ċĉĉ ĉ FROM Ġdelt aker Ċĉĉĉĉĉ Ġinner Ġjoin Ġbru ker Ġon Ġbru ker . id Ġ= Ġdelt aker . br uk er _ id Ċĉĉ ĉ WHERE Ġdelt aker . gj enn om for ing _ id Ġ= Ġ: gj enn om for ing _ id Ċĉ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of (" gj enn om for ing _ id " Ġto Ġid ) Ċĉ ĉ ) ĊĊĉ ĉ return Ġtemplate . query ( sql , Ġparameters , Ġrow Mapper ) Ċ ĉ } ĊĊ ĉ fun Ġupdate ( delt aker : ĠDel t aker D bo ): ĠDel t aker D bo Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ UPDATE Ġdelt aker Ċĉĉ ĉ SET Ġstart _ dat o Ġ= Ġ: start D ato , Ċĉĉĉ ĉ sl utt _ dat o ĠĠĠ Ġ= Ġ: sl utt D ato , Ċĉĉĉ ĉ modified _ at ĠĠ Ġ= Ġ: modified At Ċĉĉ ĉ WHERE Ġid Ġ= Ġ: delt aker Internal Id Ċ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of ( Ċĉĉĉ ĉ " start D ato " Ġto Ġdelt aker . start D ato , Ċĉĉĉ ĉ " sl utt D ato " Ġto Ġdelt aker . sl utt D ato , Ċĉĉĉ ĉ " modified At " Ġto Ġdelt aker . modified At , Ċĉĉĉ ĉ " delt aker Internal Id " Ġto Ġdelt aker . id Ċĉĉ ĉ ) Ċĉ ĉ ) ĊĊĉ ĉ template . update ( sql , Ġparameters ) ĊĊĉ ĉ return Ġget ( delt aker . id ) Ċĉĉ ĉ ?: Ġthrow ĠNoSuch ElementException (" Del t aker Ġ${ delt aker . id } Ġfin nes Ġik ke ĠpÃ¥ Ġt ilt ak sg j enn om f Ã¸ ring Ġ${ delt aker . gj enn om for ing Id }") Ċ ĉ } ĊĊ ĉ fun Ġget ( id : ĠUUID ): ĠDel t aker D bo ? Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ SELECT Ġdelt aker .*, ĊĉĉĉĉĠĠ Ġbru ker . f od se ls nummer , ĊĉĉĉĉĠĠ Ġbru ker . for nav n , ĊĉĉĉĉĠĠ Ġbru ker . et tern av n Ċĉĉ ĉ FROM Ġdelt aker Ċĉĉĉĉĉ Ġinner Ġjoin Ġbru ker Ġon Ġbru ker . id Ġ= Ġdelt aker . br uk er _ id Ċĉĉ ĉ WHERE Ġdelt aker . id Ġ= Ġ: delt aker Id Ċĉ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of ( Ċĉĉĉ ĉ " delt aker Id " Ġto Ġid Ċĉĉ ĉ ) Ċĉ ĉ ) ĊĊĉ ĉ return Ġtemplate . query ( sql , Ġparameters , Ġrow Mapper ) Ċĉĉ ĉ . first OrNull () Ċ ĉ } ĊĊ ĉ fun Ġget ( br uk er Id : ĠUUID , Ġg j enn om for ing Id : ĠUUID ): ĠDel t aker D bo ? Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ SELECT Ġdelt aker .*, ĊĉĉĉĉĠĠ Ġbru ker . f od se ls nummer , ĊĉĉĉĉĠĠ Ġbru ker . for nav n , ĊĉĉĉĉĠĠ Ġbru ker . et tern av n Ċĉĉ ĉ FROM Ġdelt aker Ċĉĉĉĉĉ Ġinner Ġjoin Ġbru ker Ġon Ġbru ker . id Ġ= Ġdelt aker . br uk er _ id Ċĉĉ ĉ WHERE Ġbru ker . id Ġ= Ġ: br uk er Id Ċĉĉĉ ĉ AND Ġdelt aker . gj enn om for ing _ id Ġ= Ġ: gj enn om for ing Id Ċĉ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of ( Ċĉĉĉ ĉ " br uk er Id " Ġto Ġbru ker Id , Ċĉĉĉ ĉ " gj enn om for ing Id " Ġto Ġg j enn om for ing Id Ċĉĉ ĉ ) Ċĉ ĉ ) ĊĊĉ ĉ return Ġtemplate . query ( sql , Ġparameters , Ġrow Mapper ) Ċĉĉ ĉ . first OrNull () Ċ ĉ } ĊĊ ĉ fun Ġget ( f od se ls nummer : ĠString , Ġg j enn om for ing Id : ĠUUID ): ĠDel t aker D bo ? Ġ{ Ċĉ ĉ val Ġsql Ġ= Ġ""" Ċĉĉ ĉ SELECT Ġdelt aker .*, ĊĉĉĉĉĠĠ Ġbru ker . f od se ls nummer , ĊĉĉĉĉĠĠ Ġbru ker . for nav n , ĊĉĉĉĉĠĠ Ġbru ker . et tern av n Ċĉĉ ĉ FROM Ġdelt aker Ċĉĉĉĉĉ Ġinner Ġjoin Ġbru ker Ġon Ġbru ker . id Ġ= Ġdelt aker . br uk er _ id Ċĉĉ ĉ WHERE Ġbru ker . f od se ls nummer Ġ= Ġ: br uk er _ f od se ls nummer Ċĉĉĉ ĉ AND Ġdelt aker . gj enn om for ing _ id Ġ= Ġ: gj enn om for ing Id Ċĉ ĉ """. trim Indent () ĊĊĉ ĉ val Ġparameters Ġ= ĠMap Sql Parameter Source (). add Values ( Ċĉĉ ĉ map Of ( Ċĉĉĉ ĉ " br uk er _ f od se ls nummer " Ġto Ġf od se ls nummer , Ċĉĉĉ ĉ " gj enn om for ing Id " Ġto Ġg j enn om for ing Id Ċĉĉ ĉ ) Ċĉ ĉ ) ĊĊĉ ĉ return Ġtemplate . query ( sql , Ġparameters , Ġrow Mapper ) Ċĉĉ ĉ . first OrNull () Ċ ĉ } Ċ } Ċ