package Ġio . ro ver . core . data . graphql . operations . data Ċ Ċ import Ġio . ro ver . core . data . domain . Device Context Ċ import Ġio . ro ver . core . data . domain . Event Snapshot Ċ import Ġio . ro ver . core . data . graphql . getDate Ċ import Ġio . ro ver . core . data . graphql . put Prop Ċ import Ġio . ro ver . core . data . graphql . safe GetString Ċ import Ġio . ro ver . core . data . graphql . safe Opt String Ċ import Ġio . ro ver . core . platform . DateFormat ting Interface Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util . UUID Ċ Ċ /** Ċ Ġ* ĠOut going ĠJSON ĠD TO Ġtransformation Ġfor Ġ[ Event Snapshot ] s , Ġas Ġsubmitted Ġto Ġthe ĠR over ĠGraphQL ĠAPI . Ċ Ġ* ĠThis Ġis Ġequivalent Ġto Ġthe Ġ` Event Input ` Ġstructure Ġon Ġthe ĠGraphQL ĠAPI . Ċ Ġ*/ Ċ internal Ġfun ĠEvent Snapshot . as Json ( ĊĠĠĠ Ġdate Formatting : ĠDate Formatting Interface Ċ ): ĠJSONObject Ġ{ ĊĠĠĠ Ġreturn ĠJSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprops Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Snapshot :: name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Snapshot :: id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Snapshot :: namespace ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġput Prop ( this @ as Json , ĠEvent Snapshot :: timestamp , Ġ{ Ġdate Formatting . date As Iso 8 6 0 1 ( it , Ġtrue ) Ġ}) ĊĊĠĠĠĠĠĠĠ Ġprops . forEach Ġ{ Ġput Prop ( this @ as Json , Ġit ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġput Prop ( this @ as Json , ĠEvent Snapshot :: attributes ) Ġ{ Ġit . encode Json ( date Formatting ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġput Prop ( this @ as Json , ĠEvent Snapshot :: device Context , Ġ" device ") Ġ{ Ġit . as Json ( date Formatting ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠEvent Snapshot . Companion . decode Json ( json : ĠJSONObject , Ġdate Formatting : ĠDate Formatting Interface ): ĠEvent Snapshot Ġ{ ĊĠĠĠ Ġreturn ĠEvent Snapshot ( ĊĠĠĠĠĠĠĠ Ġattributes Ġ= Ġjson . getJSONObject (" attributes "). to Attributes Hash (), ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġjson . safe GetString (" name "), ĊĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġjson . getDate (" timestamp ", Ġdate Formatting , Ġtrue ), ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠUUID . fromString ( json . safe GetString (" id ")), ĊĠĠĠĠĠĠĠ Ġdevice Context Ġ= ĠDevice Context . decode Json ( json . getJSONObject (" device "), Ġdate Formatting ), ĊĠĠĠĠĠĠĠ Ġnamespace Ġ= Ġjson . safe Opt String (" namespace ") ĊĠĠĠ Ġ) Ċ } Ċ