package Ġcom . pos . k asse . config Ċ Ċ import Ġcom . pos . k asse . entities . B ru ker Ċ import Ġcom . pos . k asse . entities . Kv itter ing Ċ import Ġcom . pos . k asse . entities . V are Ċ import Ġcom . pos . k asse . services . Kv itter ing Service Ċ import Ġcom . pos . k asse . services . Login Service Ċ import Ġcom . pos . k asse . services . V are Service Ċ import Ġcom . pos . k asse . utils . Logger Ċ import Ġkotlinx . coroutines .* Ċ import Ġorg . springframework . boot . CommandLine Runner Ċ import Ġorg . springframework . security . crypto . bcrypt . BC rypt Password Encoder Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . time . Local Time Ċ import Ġkotlin . coroutines . coroutine Context Ċ Ċ @ Component Ċ class ĠRunner ( private Ġval Ġv are Service : ĠV are Service , Ġprivate Ġval Ġlogin Service : ĠLogin Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġkv itter ing Service : ĠK v itter ing Service ) ĊĠĠĠ Ġ: ĠCommandLine Runner Ġ{ ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠH older Ġdata Ġom Ġalle Ġvar er Ġi Ġdatab as en Ġsom Ġen Ġlokal Ġrefer an se . ĊĠĠĠ ĠSk al Ġs je kk es Ġfor Ġopp dater inger Ġj ev nl ig . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġlateinit Ġvar Ġv are liste : ĠList < V are > ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠH older Ġrefer an se Ġom Ġkv itter inger Ġsom Ġer Ġlag t Ġtil Ġi Ġdatab as en Ġ( s iste Ġ 7 Ġd ager ?) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġby tel iste : ĠMutable List < Kv itter ing > ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠO pp dat ert Ġkv itter ings liste Ġmed ĠV are - obj ek ter Ġbas ert ĠpÃ¥ Ġ' by tel iste '. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġlateinit Ġvar Ġkv itter ings liste : ĠMutable List < Kv itter ing > ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠLogger - obj ek t . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogger : ĠLogger ĊĊĠĠĠ Ġ/* ĊĠĠĠ Ġrun () Ġutf Ã¸ res Ġved Ġopp start Ġav Ġprogram met . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrun ( var arg Ġargs : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger Ġ= ĠLogger () ĊĠĠĠĠĠĠĠ Ġkv itter ings liste Ġ= Ġmutable ListOf () ĊĊĠĠĠĠĠĠĠ Ġ// 2 7 . ok t ĊĠĠĠĠĠĠĠ Ġval Ġn ye V 2 Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 7 0 8 6 6 0 2 7 8 7 2 , Ġ" M Ã¶ ll ers ĠD ob bel ", Ġ 8 9 , Ġ" Or k la ĠHealth ĠAS ", null , Ġ" A 1 "," K ategori "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 2 6 4 5 0 0 5 1 0 5 1 , Ġ" Hon ning ĠAk as ie ", Ġ 5 5 , Ġ" Hon ning central en ĠSA ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 2 6 4 5 0 0 3 0 1 2 4 , Ġ" S om mer hon ning ", Ġ 6 9 , Ġ" Hon ning central en ĠSA ", Ġnull , Ġ" A 2 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 8 0 0 3 4 9 6 0 6 0 0 2 4 , Ġ" Fin hak ke de ĠTom ater ", Ġ 1 3 , Ġ" Grup po ĠPet ti ĠS . p . A .", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 1 1 1 0 1 9 , Ġ" Tom at pur Ã© ", Ġ 5 , Ġ" St av land ĠAS ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 6 2 2 2 1 0 1 1 5 7 8 2 , Ġ" Van il jes uk ker ", Ġ 2 0 , Ġ" Mon de lez ĠN orge ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 3 2 0 6 9 7 2 4 5 3 8 , Ġ" S es am fr Ã¸ ĠÃ ĺ ko log isk ", Ġ 2 9 , Ġ" Autom at pack ĠAS Ġfor ĠRem a Ġ 1 0 0 0 ĠAS ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 6 2 2 2 1 0 1 1 5 7 2 0 , Ġ" B ake pul ver ", Ġ 2 0 , Ġ" Mon de lez ĠN orge ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 3 2 0 6 9 7 2 4 5 1 4 , Ġ" S ols ik ke kj er ner ĠÃ ĺ ko log isk ", Ġ 2 9 , Ġ" Autom at pack ĠAS Ġfor ĠRem a Ġ 1 0 0 0 ĠAS ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 3 2 0 6 9 7 3 1 0 5 5 , Ġ" P izz asa us ĠÃ ĺ ko log isk ", Ġ 2 5 , Ġ" F att or ie ĠU mb re Ġs rl .", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 3 2 0 6 9 7 1 4 8 1 2 , Ġ" M ais Ġ 3 Ġpk ", Ġ 6 , Ġ" Sen eca ĠFood s ĠCorporation ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 8 0 7 6 8 0 8 2 0 1 2 9 3 , Ġ" Tag li ate lle ĠAll ' ĠU ovo ", Ġ 3 9 , Ġ" Bar illa ĠN orge ĠAS ", Ġnull , Ġ" A 1 ", Ġ" T Ã¸ rr "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 3 8 0 1 0 0 1 9 7 7 7 , Ġ" Jar ls berg ĠSk iv et ", Ġ 4 3 , Ġ" T ine ĠSA ", Ġnull , Ġ" A 1 ", Ġ" Kj Ã¸ l "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV are ( 7 0 7 0 0 9 7 0 7 9 0 2 2 , Ġ" Par mask in ke ", Ġ 3 9 , Ġ" Tag a ĠFood s ĠAS ", Ġnull , Ġ" A 2 ", Ġ" Kj Ã¸ l ") ĊĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠUncomment Ġto Ġadd Ġitems Ġto Ġthe Ġdatabase ... ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// leg g Til Var er ( ny eV 2 ) ĊĊĠĠĠĠĠĠĠ Ġv are liste Ġ= Ġv are Service . h ent Alle Var er () ĊĠĠĠĠĠĠĠ Ġlogger . print Console (" Total t Ġ${ vare liste . size } Ġant all Ġvar er ...") ĊĊĠĠĠĠĠĠĠ Ġby tel iste Ġ= Ġkv itter ing Service . h ent Alle Kv itter inger () Ġas ĠMutable List < Kv itter ing > ĊĠĠĠĠĠĠĠ Ġlogger . print Console (" Total t Ġ${ by tel iste . size } Ġant all Ġkv itter inger ...") ĊĊĠĠĠĠĠĠĠ Ġconvert ListOf Kv itter inger ( by tel iste ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġle gg Til Var er ( ny e Var er : ĠList < V are >) Ġ{ ĊĠĠĠĠĠĠĠ Ġv are Service . leg g Til Alle Var er ( ny e Var er . to Mutable List ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġle gg Til B ru ker ( br uk er : ĠB ru ker ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin Service . lag Ny B ru ker ( br uk er ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Kv itter ing ToList ( kv itter ing : ĠK v itter ing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( kv itter ings liste . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkv itter ings liste . add ( kv itter ings liste . size , Ġkv itter ing ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġkv itter ings liste . add ( kv itter ings liste . last Index , Ġkv itter ing ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠPro sess Ġsom Ġkon verter er Ġby tel iste Ġav Ġalle Ġvar er Ġi Ġet ĠK v itter ings - obj ek t Ġtil ĠV are - obj ek ter . ĊĠĠĠ ĠArgument et Ġfor ĠÃ¥ Ġg j Ã¸ re Ġdet ĠpÃ¥ Ġden ne ĠmÃ¥ ten Ġer Ġat Ġdet Ġkun Ġsk jer Ġved Ġopp start Ġav Ġprogram met . ĊĠĠĠ ĠU le mp en Ġer Ġat Ġjob ben ĠmÃ¥ Ġfer dig st il les Ġf Ã¸ r Ġf Ã¸ r ste Ġbru ker Ġlog ges ĠpÃ¥ ĊĠĠĠĠĠĠĠ ĠTODO : ĠMul ig Ġat Ġden ĠmÃ¥ Ġblo kk ere Ġf rem Ġtil Ġden Ġer Ġfer dig ? ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconvert ListOf Kv itter inger ( mutable list : ĠMutable List < Kv itter ing >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Default ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mutable list . isEmpty ()) Ġ{ Ġcoroutine Context . cancel ( Cancellation Exception (" List Ġis Ġempty ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Default ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable list . forEach Ġ{ Ġkv itter ing Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Kv itter ing ( kv itter ing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġkv itter ings liste . add ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. invoke On Completion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( logger ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Console (" Kv itter ings job b Ġfer dig .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĊĠĠĠ ĠPriv at Ġfunk s jon Ġsom Ġkal les Ġi Ġconvert ListOf Kv itter inger (... ). ĊĠĠĠ ĠKon verter er Ġet ĠK v itter ings - obj ek t . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġconvert Kv itter ing ( kv itter ing : ĠK v itter ing ): ĠK v itter ing Ġ{ ĊĠĠĠĠĠĠĠ Ġkv itter ing . vare List e Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġkv itter ing . by tel iste ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe an Ġ-> Ġv are liste . find Ġ{ Ġv are Ġ-> Ġv are . e an Ġ== Ġe an Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġkv itter ing . vare List e !!. add ( it !! ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġkv itter ing ĊĠĠĠ Ġ} Ċ }