package Ġnet . source bot . module . tags . data Ċ Ċ import Ġnet . source bot . api . database . Mongo Serial Ċ import Ġorg . bson . Document Ċ import Ġjava . time . Instant Ċ Ċ data Ġclass ĠTag ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġvar Ġcontent : ĠString , ĊĠĠĠ Ġval Ġcreator : ĠString , ĊĠĠĠ Ġval Ġcreated : ĠLong Ġ= ĠInstant . now (). to Epoch Milli (), ĊĠĠĠ Ġvar Ġcategory : ĠString Ġ= Ġ" Mis cellaneous ", ĊĠĠĠ Ġvar Ġtype : ĠType Ġ= ĠType . TEXT , ĊĠĠĠ Ġvar Ġuses : ĠInt Ġ= Ġ 0 Ċ ) Ġ{ ĊĠĠĠ Ġ// TODO : ĠProcess ĠArguments ĊĠĠĠ Ġfun Ġprocess Arguments ( args : ĠArray < String >): ĠString Ġ= Ġcontent ĊĊĠĠĠ Ġclass ĠSerial Ġ: ĠMongo Serial < Tag > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġquery Document ( obj : ĠTag ) Ġ= ĠDocument (" name ", Ġobj . name ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( document : ĠDocument ): ĠTag Ġ= Ġdocument . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġit [" name "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġit [" content "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreator Ġ= Ġit [" creator "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreated Ġ= Ġit [" created "] Ġas ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= Ġit [" category "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġwhen Ġ( it [" type "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" embed " Ġ-> ĠType . EMB ED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠType . TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuses Ġ= Ġit [" uses "] Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTag ( name , Ġcontent , Ġcreator , Ġcreated , Ġcategory , Ġtype , Ġuses ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( obj : ĠTag ) Ġ= Ġquery Document ( obj ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" content ", Ġobj . content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" creator ", Ġobj . creator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" created ", Ġobj . created ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" category ", Ġobj . category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" type ", Ġobj . type . name . toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" uses ", Ġobj . uses ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĠE MB ED , ĠTEXT Ġ} Ċ }