package Ġcom . github . ins an us mo kr ass ar . Telegram Bot Base . models Ċ Ċ import Ġcom . github . ins an us mo kr ass ar . Telegram Bot Base . tables . Ch ats Configs Ċ 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 Ċ import Ġjava . util .* Ċ Ċ private Ġval Ġcache Ġ= ĠWeak HashMap < Long , ĠChat Config >() Ċ Ċ fun ĠgetUser Config ( userId : ĠLong ): ĠChat Config Ġ{ ĊĠĠĠ Ġreturn Ġcache [ userId ] Ġ?: ĠChat Config ( userId ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcache [ userId ] Ġ= Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠChat Config Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġconfig : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġchat Id : ĠLong Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġconfig : ĠString ? Ġ= Ġconfig ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ats Configs . update ({ ĠCh ats Configs . chat Id . eq ( chat Id ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Ch ats Configs . config ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId : ĠLong ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ats Configs . select Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ats Configs . chat Id . eq ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Ch ats Configs . config ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch ElementException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ats Configs . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit [ Ch ats Configs . chat Id ] Ġ= ĠuserId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId ĊĠĠĠ Ġ) Ċ } Ċ