package Ġcom . interaction fields . signal ing . service Ċ Ċ import Ġcom . interaction fields . common . domain . Meeting Ċ import Ġcom . interaction fields . common . domain . User Ċ import Ġcom . interaction fields . common . domain . User Meeting Ċ import Ġcom . interaction fields . common . repository . Meeting Repository Ċ import Ġcom . interaction fields . common . repository . Meeting Repository . meet ings Ċ import Ġcom . interaction fields . common . repository . User Meeting Repository . user Me et ings Ċ import Ġcom . interaction fields . common . repository . UserRepository . users Ċ import Ġorg . kt orm . database . Database Ċ import Ġorg . kt orm . dsl . and Ċ import Ġorg . kt orm . dsl . eq Ċ import Ġorg . kt orm . dsl . isNull Ċ import Ġorg . kt orm . entity . add Ċ import Ġorg . kt orm . entity . find Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . LocalDateTime Ċ Ċ /** Ċ Ġ* ĠPers isting Ġthe Ġmeeting Ġprocess . Ċ Ġ* Ċ Ġ* Ġ@ author ĠA sh in ch Ċ Ġ* Ġ@ date Ġ 2 0 2 2 / 0 1 / 0 2 Ċ Ġ*/ Ċ @ Service Ċ class ĠStore Service ( private Ġval Ġdb : ĠDatabase ) Ġ{ ĊĊĠĠĠ Ġfun Ġget Meeting ( code : ĠString ): ĠMeeting ? Ġ= ĊĠĠĠĠĠĠĠ Ġdb . meet ings . find Ġ{ Ġ( it . code Ġeq Ġcode ). and ( it . end At . isNull ()) Ġ} ĊĊĠĠĠ Ġfun ĠgetUser ( uuid : ĠString ): ĠUser ? Ġ= ĊĠĠĠĠĠĠĠ Ġdb . users . find Ġ{ Ġit . uuid Ġeq Ġuuid Ġ} ĊĊĠĠĠ Ġfun Ġon Join ( user UUID : ĠString , Ġmeeting UUID : ĠString , Ġdocument : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Meeting Ġ= Ġdb . user Me et ings . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . user UUID Ġeq Ġuser UUID ). and ( it . meeting UUID Ġeq Ġmeeting UUID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user Meeting Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . user Me et ings . add ( User Meeting (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . user UUID Ġ= Ġuser UUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . meeting UUID Ġ= Ġmeeting UUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoc Ġ= Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjoin At Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Meeting . doc Ġ= Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Meeting . flush Changes () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Quit ( user UUID : ĠString , Ġmeeting UUID : ĠString , Ġdocument : ĠByteArray , Ġnote : ĠByteArray ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . user Me et ings . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . user UUID Ġeq Ġuser UUID ). and ( it . meeting UUID Ġeq Ġmeeting UUID ) ĊĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . doc Ġ= Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . note Ġ= Ġnote ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . quit At Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flush Changes () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ