package Ġcom . github . age of war . k telegram Ċ Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . descriptors . Primitive Kind Ċ import Ġkotlinx . serialization . descriptors . Primitive Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder Ċ import Ġkotlinx . serialization . json . Json Primitive Ċ import Ġkotlinx . serialization . json . long Ċ Ċ @ Serializable ( Chat Id . Serializer :: class ) Ċ data Ġclass ĠChat Id Ġinternal Ġconstructor ( ĊĠĠĠ Ġval Ġid : ĠLong ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġusername : ĠString ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Id ( id : ĠLong ) Ġ= ĠChat Id ( id Ġ= Ġid ) ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Username ( username : ĠString ) Ġ= ĠChat Id ( username Ġ= Ġusername ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠSerializer Ġ: ĠK Serializer < Chat Id > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdescriptor Ġ= ĠPrimitive Serial Descriptor (" Chat Id ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠChat Id Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠJson Primitive . serializer (). deserialize ( decoder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement . isString Ġ-> Ġfrom Username ( element . content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfrom Id ( element . long ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠChat Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( id , Ġusername ) Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġnull ) Ġencoder . encode Long ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( username Ġ!= Ġnull ) Ġencoder . encode String ( username ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ