package Ġme . ab err ant fox . hot bot . database Ċ Ċ import Ġme . ab err ant fox . hot bot . commands . utility . Suggestion Status Ċ import Ġme . ab err ant fox . hot bot . services . Pool Record Ċ import Ġorg . jetbrains . ex posed . sql .* Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġorg . joda . time . DateTime Ċ Ċ data Ġclass ĠSuggest ion Record ( val Ġmessage ID : ĠString , Ġval Ġstatus : ĠSuggest ion Status , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpool Info : ĠPool Record , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġidea : ĠString Ġ= Ġpool Info . message , Ġval Ġdate : ĠDateTime Ġ= Ġpool Info . dateTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmember : ĠString Ġ= Ġpool Info . sender , Ġval Ġavatar URL : ĠString Ġ= Ġpool Info . avatar URL ) Ċ Ċ fun Ġtrack Suggestion ( suggestion : ĠSuggest ion Record ) Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ions . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . id ] Ġ= Ġsuggestion . message ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . date ] Ġ= Ġsuggestion . date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . idea ] Ġ= Ġsuggestion . idea ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . member ] Ġ= Ġsuggestion . member ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . status ] Ġ= Ġsuggestion . status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . avatar URL ] Ġ= Ġsuggestion . avatar URL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġupdate Suggestion ( id : ĠString , Ġstatus : ĠSuggest ion Status ) Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ions . update Ġ({ Suggestions . id Ġeq Ġid Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Suggestions . status ] Ġ= Ġstatus ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġdelete Suggestion ( member : ĠString , Ġidea : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ions . delete Where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp . build Ġ{ Ġ( Suggestions . member Ġeq Ġmember ) Ġand Ġ( Suggestions . idea Ġeq Ġidea ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġobtain Suggestion ( id : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= ĠSuggest ions . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp . build Ġ{ ĠSuggest ions . id Ġeq Ġid Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpool Info Ġ= ĠPool Record ( row [ Suggestions . member ], Ġrow [ Suggestions . date ], Ġrow [ Suggestions . idea ], Ġrow [ Suggestions . avatar URL ]) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ion Record ( row [ Suggestions . id ], Ġrow [ Suggestions . status ], Ġpool Info ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ fun Ġis Tracked ( id : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSuggest ions . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp . build Ġ{ ĠSuggest ions . id Ġeq Ġid Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. count () Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ}