package Ġv sec . com . s lock android . general Models Ċ Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ @ Serializable Ċ class ĠUser Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġusername : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠfirstName : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠlastName : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġemail : ĠString ? Ġ= Ġ Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpassword : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Serializer ( for Class Ġ= ĠUser :: class ) ĊĠĠĠ Ġcompanion Ġobject : ĠK Serializer < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Transient Ġval Ġsalt : ĠString Ġ= Ġ" ad 1 8 cbd 8 6 7 6 3 9 1 bf 7 0 b 1 9 6 e 6 df 3 0 0 6 5 b " ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( output : ĠEncoder , Ġobj : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelem Output Ġ= Ġoutput . begin Structure ( descriptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . username Ġ!= Ġnull ) Ġelem Output . encode String Element ( descriptor , Ġ 0 , Ġobj . username Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . firstName Ġ!= Ġnull ) Ġelem Output . encode String Element ( descriptor , Ġ 1 , Ġobj . firstName Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . lastName Ġ!= Ġnull ) Ġelem Output . encode String Element ( descriptor , Ġ 2 , Ġobj . lastName Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . email Ġ!= Ġnull ) Ġelem Output . encode String Element ( descriptor , Ġ 3 , Ġobj . email Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj . password Ġ!= Ġnull ) Ġelem Output . encode String Element ( descriptor , Ġ 4 , Ġobj . password Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelem Output . end Structure ( descriptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġset Username ( username : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . username Ġ= Ġusername ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset FirstName ( firstName : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . firstName Ġ= ĠfirstName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset LastName ( lastName : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . lastName Ġ= ĠlastName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Email ( email : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . email Ġ= Ġemail ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Has hed Password ( password : ĠString ){ ĊĠĠĠĠĠĠĠ Ġthis . password Ġ= Ġpassword ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear (){ ĊĠĠĠĠĠĠĠ Ġthis . username Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġthis . firstName Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġthis . lastName Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġthis . email Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġthis . password Ġ= Ġnull ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtoJSON (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġjson Ġ= ĠJson . stringify ( serializer (), Ġthis ) ĊĠĠĠĠĠĠĠ Ġreturn Ġjson ĊĠĠĠ Ġ} Ċ }