/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠRen ĠBind en Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . r pk it . payments . bukkit . database . table Ċ Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Id Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Service Ċ import Ġcom . r pk it . core . database . Database Ċ import Ġcom . r pk it . core . database . Table Ċ import Ġcom . r pk it . core . service . Services Ċ import Ġcom . r pk it . payments . bukkit . RP K Payments Bu kkit Ċ import Ġcom . r pk it . payments . bukkit . database . create Ċ import Ġcom . r pk it . payments . bukkit . database . jooq . Tables . RP KIT _ PAYMENT _ NOTIFICATION Ċ import Ġcom . r pk it . payments . bukkit . group . RP K Payment GroupId Ċ import Ġcom . r pk it . payments . bukkit . group . RP K Payment Group Service Ċ import Ġcom . r pk it . payments . bukkit . notification . RP K Payment Notification Ċ import Ġcom . r pk it . payments . bukkit . notification . RP K Payment Notification Id Ċ import Ġcom . r pk it . payments . bukkit . notification . RP K Payment Notification Impl Ċ Ċ /** Ċ Ġ* ĠRepresents Ġpayment Ġnotification Ġtable . Ċ Ġ*/ Ċ class ĠRP K Payment Notification Table ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase : ĠDatabase , ĊĠĠĠĠĠĠĠ Ġplugin : ĠRP K Payments Bu kkit Ċ ) Ġ: ĠTable Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcache Ġ= Ġif Ġ( plugin . config . getBoolean (" caching . r pk it _ payment _ notification . id . enabled ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . cache Manager . create Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" r pk - payments - bukkit . r pk it _ payment _ notification . id ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java ObjectType , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRP K Payment Notification :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . config . getLong (" caching . r pk it _ payment _ notification . id . size ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert ( entity : ĠRP K Payment Notification ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠgroupId Ġ= Ġentity . group . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġto Id Ġ= Ġentity . to . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġentity . character . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert Into ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . GROUP _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . TO _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . CHARACTER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . DATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . TEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġdatabase . create . last ID (). toInt () ĊĠĠĠĠĠĠĠ Ġentity . id Ġ= ĠRP K Payment Notification Id ( id ) ĊĠĠĠĠĠĠĠ Ġcache ?. set ( id , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( entity : ĠRP K Payment Notification ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠgroupId Ġ= Ġentity . group . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġto Id Ġ= Ġentity . to . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġentity . character . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġentity . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ PAYMENT _ NOTIFICATION . GROUP _ ID , ĠgroupId . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ PAYMENT _ NOTIFICATION . TO _ ID , Ġto Id . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ PAYMENT _ NOTIFICATION . CHARACTER _ ID , Ġcharacter Id . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ PAYMENT _ NOTIFICATION . DATE , Ġentity . date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ PAYMENT _ NOTIFICATION . TEXT , Ġentity . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ PAYMENT _ NOTIFICATION . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġcache ?. set ( id . value , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( id : ĠRP K Payment Notification Id ): ĠRP K Payment Notification ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cache ?. containsKey ( id . value ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcache [ id . value ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . GROUP _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . TO _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . CHARACTER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . DATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ PAYMENT _ NOTIFICATION . TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ PAYMENT _ NOTIFICATION . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġpayment Group Service Ġ= ĠServices [ RP K Payment Group Service :: class . java ] Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġpayment GroupId Ġ= Ġresult . get ( RP KIT _ PAYMENT _ NOTIFICATION . GROUP _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġpayment Group Ġ= Ġpayment Group Service . get Payment Group ( RP K Payment GroupId ( payment GroupId )) ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Service Ġ= ĠServices [ RP K Character Service :: class . java ] Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġto Id Ġ= Ġresult . get ( RP KIT _ PAYMENT _ NOTIFICATION . TO _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġcharacter Service . get Character ( RP K Character Id ( to Id )) ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġresult . get ( RP KIT _ PAYMENT _ NOTIFICATION . CHARACTER _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= Ġcharacter Service . get Character ( RP K Character Id ( character Id )) ĊĠĠĠĠĠĠĠ Ġif Ġ( payment Group Ġ!= Ġnull Ġ&& Ġto Ġ!= Ġnull Ġ&& Ġcharacter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpayment Notification Ġ= ĠRP K Payment Notification Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Group , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . get ( RP KIT _ PAYMENT _ NOTIFICATION . DATE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . get ( RP KIT _ PAYMENT _ NOTIFICATION . TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache ?. set ( id . value , Ġpayment Notification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpayment Notification ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete From ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ PAYMENT _ NOTIFICATION . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll (): ĠList < RP K Payment Notification > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select ( RP KIT _ PAYMENT _ NOTIFICATION . ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠ Ġreturn Ġresults . map Ġ{ Ġresult Ġ-> Ġget ( RP K Payment Notification Id ( result . get ( RP KIT _ PAYMENT _ NOTIFICATION . ID ))) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter NotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( character : ĠRP K Character ): ĠList < RP K Payment Notification > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġcharacter . id Ġ?: Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select ( RP KIT _ PAYMENT _ NOTIFICATION . ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ PAYMENT _ NOTIFICATION . CHARACTER _ ID . eq ( character Id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠ Ġreturn Ġresults . map Ġ{ Ġresult Ġ-> Ġget ( RP K Payment Notification Id ( result . get ( RP KIT _ PAYMENT _ NOTIFICATION . ID ))) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter NotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( entity : ĠRP K Payment Notification ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġentity . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete From ( RP KIT _ PAYMENT _ NOTIFICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ PAYMENT _ NOTIFICATION . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġcache ?. remove ( id . value ) ĊĠĠĠ Ġ} Ċ Ċ }