package Ġeu . kan ade . t ach iy omi . extension . en . m anta Ċ Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ import Ġjava . util . concurrent . TimeUnit . MILLISECONDS Ġas ĠMS Ċ Ċ private Ġval Ġiso Date Ġby Ġlazy Ġ{ ĊĠĠĠ ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss ", ĠLocale . ROOT ) Ċ } Ċ Ċ private Ġinline Ġval ĠString ?. timestamp : ĠLong ĊĠĠĠ Ġget () Ġ= Ġthis ?. substring Before ('.') ?. let ( iso Date :: parse )?. time Ġ?: Ġ 0 L Ċ Ċ @ Serializable Ċ data Ġclass ĠSeries < T Ġ: ĠAny >( ĊĠĠĠ Ġval Ġdata : ĠT , ĊĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠ Ġval Ġimage : ĠCover , ĊĠĠĠ Ġval Ġepisode s : ĠList < Episode >? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġdata . toString () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠTitle ( private Ġval Ġtitle : ĠName ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġtitle . toString () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠDetails ( ĊĠĠĠ Ġval Ġtags : ĠList < Tag >, ĊĠĠĠ Ġval Ġis Completed : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġdescription : ĠDescription , ĊĠĠĠ Ġprivate Ġval Ġcre ators : ĠList < Creator > Ċ ) Ġ{ ĊĠĠĠ Ġval Ġartists Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġcre ators . filter Ġ{ Ġit . role Ġ== Ġ" Ill ustration " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġauthors Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġcre ators . filter Ġ{ Ġit . role Ġ!= Ġ" Ill ustration " Ġ}. if Empty Ġ{ Ġcre ators Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġdescription . toString () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠEp isode ( ĊĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠ Ġval Ġord : ĠInt , ĊĠĠĠ Ġval Ġdata : ĠData ?, ĊĠĠĠ Ġprivate Ġval ĠcreatedAt : ĠString , ĊĠĠĠ Ġval Ġcut Images : ĠList < Image >? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġval Ġtimestamp : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠcreatedAt . timestamp ĊĊĠĠĠ Ġval Ġis Locked : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtime T ill Free Ġ> Ġ 0 ĊĊĠĠĠ Ġval Ġwaiting Time : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( val Ġdays Ġ= ĠMS . to Days ( time T ill Free )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 L Ġ-> Ġ" later Ġtoday " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 L Ġ-> Ġ" tom orrow " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" in Ġ$ days Ġdays " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtime T ill Free Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġdata ?. free At . timestamp Ġ- ĠSystem . currentTimeMillis () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend ( data ?. title Ġ?: Ġ" Episode Ġ$ ord ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is Locked ) Ġappend (" Ġ\ uD 8 3 D \ u DD 1 2 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠData ( ĊĠĠĠ Ġval Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġfree At : ĠString ? Ġ= Ġnull Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠCreator ( ĊĠĠĠ Ġprivate Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġrole : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġname Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠDescription ( ĊĠĠĠ Ġprivate Ġval Ġlong : ĠString , ĊĠĠĠ Ġprivate Ġval Ġshort : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ"$ short \ n \ n $ long " Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠCover ( private Ġval Ġ` 1 2 8 0 x 1 8 4 0 _ 4 8 0 `: ĠImage ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ` 1 2 8 0 x 1 8 4 0 _ 4 8 0 `. toString () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠImage ( private Ġval Ġdownload Url : ĠString ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġdownload Url Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠTag ( private Ġval Ġname : ĠName ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġname . toString () Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠName ( private Ġval Ġen : ĠString ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġen Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠStatus ( ĊĠĠĠ Ġprivate Ġval Ġdescription : ĠString , ĊĠĠĠ Ġprivate Ġval Ġmessage : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ"$ description : Ġ$ message " Ċ } Ċ