package Ġno . nav . sy fo . person op pg ave Ċ Ċ import Ġno . nav . sy fo . database . Database Interface Ċ import Ġno . nav . sy fo . database . toList Ċ import Ġno . nav . sy fo . domain . Person Ident Number Ċ import Ġno . nav . sy fo . op pf ol ging sp lan . avro . K Opp fol ging sp lan L PS NAV Ċ import Ġno . nav . sy fo . person op pg ave . domain . PP erson Opp g ave Ċ import Ġno . nav . sy fo . person op pg ave . domain . Person Opp g ave Type Ċ import Ġno . nav . sy fo . util . convert Ċ import Ġno . nav . sy fo . util . convert Nullable Ċ import Ġjava . sql .* Ċ import Ġjava . time . Instant Ċ import Ġjava . util .* Ċ Ċ const Ġval Ġquery Get Person Opp g ave List For Fn r Ġ= ĊĠĠĠ Ġ""" ĊĠĠĠ ĠSELECT Ġ* ĊĠĠĠ ĠFROM ĠPER SON _ OP PG AVE ĊĠĠĠ ĠWHERE Ġfn r Ġ= Ġ? ĊĠĠĠ Ġ""" Ċ Ċ fun ĠDatabase Interface . get Person Opp g ave List ( person Ident Number : ĠPerson Ident Number ): ĠList < PP erson Opp g ave > Ġ{ ĊĠĠĠ Ġreturn Ġconnection . use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠ Ġconnection . prepareStatement ( query Get Person Opp g ave List For Fn r ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 1 , Ġperson Ident Number . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . executeQuery (). toList Ġ{ Ġto PP erson Opp g ave () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval Ġquery Get Person Opp g ave List For UUID Ġ= ĊĠĠĠ Ġ""" ĊĠĠĠ ĠSELECT Ġ* ĊĠĠĠ ĠFROM ĠPER SON _ OP PG AVE ĊĠĠĠ ĠWHERE Ġuuid Ġ= Ġ? ĊĠĠĠ Ġ""" Ċ Ċ fun ĠDatabase Interface . get Person Opp g ave List ( uuid : ĠUUID ): ĠList < PP erson Opp g ave > Ġ{ ĊĠĠĠ Ġreturn Ġconnection . use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠ Ġconnection . prepareStatement ( query Get Person Opp g ave List For UUID ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 1 , Ġuuid . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . executeQuery (). toList Ġ{ Ġto PP erson Opp g ave () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval Ġquery Update Person Opp g ave Be hand let Ġ= ĊĠĠĠ Ġ""" ĊĠĠĠ ĠUPDATE ĠPER SON _ OP PG AVE ĊĠĠĠ ĠSET Ġbe hand let _ tid sp unkt Ġ= Ġ?, Ġbe hand let _ ve ile der _ ident Ġ= Ġ? ĊĠĠĠ ĠWHERE Ġuuid Ġ= Ġ? ĊĠĠĠ Ġ""" Ċ Ċ fun ĠDatabase Interface . update Person Opp g ave Be hand let ( ĊĠĠĠ Ġuuid : ĠUUID , ĊĠĠĠ Ġve ile der Ident : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġval Ġnow Ġ= ĠTimestamp . from ( Instant . now ()) ĊĠĠĠ Ġconnection . use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠ Ġconnection . prepareStatement ( query Update Person Opp g ave Be hand let ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Timestamp ( 1 , Ġnow ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 2 , Ġve ile der Ident ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 3 , Ġuuid . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconnection . commit () ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval Ġquery Update Person Opp g ave Over s ik then del se Ġ= ĊĠĠĠ Ġ""" ĊĠĠĠ ĠUPDATE ĠPER SON _ OP PG AVE ĊĠĠĠ ĠSET Ġover s ik then del se _ tid sp unkt Ġ= Ġ? ĊĠĠĠ ĠWHERE Ġid Ġ= Ġ? ĊĠĠĠ Ġ""" Ċ Ċ fun ĠDatabase Interface . update Person Opp g ave Over s ik then del se ( ĊĠĠĠ Ġid : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġval Ġnow Ġ= ĠTimestamp . from ( Instant . now ()) ĊĊĠĠĠ Ġconnection . use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠ Ġconnection . prepareStatement ( query Update Person Opp g ave Over s ik then del se ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Timestamp ( 1 , Ġnow ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setInt ( 2 , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconnection . commit () ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval Ġquery Create Person Opp g ave Ġ= ĊĠĠĠ Ġ""" INSERT ĠINTO ĠPER SON _ OP PG AVE Ġ( ĊĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠ Ġuuid , ĊĠĠĠĠĠĠĠ Ġrefer an se _ uuid , ĊĠĠĠĠĠĠĠ Ġfn r , ĊĠĠĠĠĠĠĠ Ġvir ks om hets nummer , ĊĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠ Ġopp rett et , ĊĠĠĠĠĠĠĠ Ġsist _ end ret ) ĠVALUES Ġ( DEFAULT , Ġ?, Ġ?, Ġ?, Ġ?, Ġ?, Ġ?, Ġ? ) ĠRET UR NING Ġid ĊĠĠĠ Ġ""" Ċ Ċ fun ĠDatabase Interface . create Person Opp g ave ( ĊĠĠĠ Ġk Opp fol ging sp lan L PS NAV : ĠK Opp fol ging sp lan L PS NAV , ĊĠĠĠ Ġtype : ĠPerson Opp g ave Type Ċ ): ĠPair < Int , ĠUUID > Ġ{ ĊĠĠĠ Ġval Ġuuid Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠ Ġval Ġnow Ġ= ĠTimestamp . from ( Instant . now ()) ĊĊĠĠĠ Ġconnection . use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġperson IdList Ġ= Ġconnection . prepareStatement ( query Create Person Opp g ave ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 1 , Ġuuid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 2 , Ġk Opp fol ging sp lan L PS NAV . get Uuid ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 3 , Ġk Opp fol ging sp lan L PS NAV . getF od se ls nummer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 4 , Ġk Opp fol ging sp lan L PS NAV . get V ir ks om hets nummer ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setString ( 5 , Ġtype . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Timestamp ( 6 , Ġnow ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Timestamp ( 7 , Ġnow ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . executeQuery (). toList Ġ{ Ġget Int (" id ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( person IdList . size Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠSQLException (" Creating Ġperson Ġfailed , Ġno Ġrows Ġaffected .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconnection . commit () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( person IdList . first (), ĠUUID . fromString ( uuid )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠResultSet . to PP erson Opp g ave (): ĠP Person Opp g ave Ġ= ĊĠĠĠ ĠP Person Opp g ave ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġget Int (" id "), ĊĠĠĠĠĠĠĠ Ġuuid Ġ= ĠUUID . fromString ( getString (" uuid ")), ĊĠĠĠĠĠĠĠ Ġrefer an se Uuid Ġ= ĠUUID . fromString ( getString (" refer an se _ uuid ")), ĊĠĠĠĠĠĠĠ Ġfn r Ġ= ĠgetString (" fn r "), ĊĠĠĠĠĠĠĠ Ġvir ks om hets nummer Ġ= ĠgetString (" vir ks om hets nummer "), ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠgetString (" type "), ĊĠĠĠĠĠĠĠ Ġover s ik then del se Tid sp unkt Ġ= Ġconvert Nullable ( getTimestamp (" over s ik then del se _ tid sp unkt ")), ĊĠĠĠĠĠĠĠ Ġbe hand let Tid sp unkt Ġ= Ġconvert Nullable ( getTimestamp (" be hand let _ tid sp unkt ")), ĊĠĠĠĠĠĠĠ Ġbe hand let Ve ile der Ident Ġ= ĠgetString (" be hand let _ ve ile der _ ident "), ĊĠĠĠĠĠĠĠ Ġopp rett et Ġ= Ġconvert ( getTimestamp (" op prett et ")), ĊĠĠĠĠĠĠĠ Ġsist End ret Ġ= Ġconvert ( getTimestamp (" s ist _ end ret ")), ĊĠĠĠ Ġ) Ċ