package Ġcom . raz ew are . emit ron . model Ċ Ċ /** Ċ Ġ* ĠContent Ġtype Ċ Ġ*/ Ċ enum Ġclass ĠContentType Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠCollection ĊĠĠ Ġ*/ ĊĠ ĠCollection , ĊĠ Ġ/** ĊĠĠ Ġ* ĠS cre enc ast ĊĠĠ Ġ*/ ĊĠ ĠS cre enc ast , ĊĠ Ġ/** ĊĠĠ Ġ* ĠEp isode ĊĠĠ Ġ*/ ĊĠ ĠEp isode , ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠProf ession Ġcontent ĊĠĠ Ġ*/ ĊĠ ĠProfessional ; ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMap Ġof Ġall Ġ[ ContentType ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġval Ġmap Ġ= Ġvalues (). associate By ( ContentType :: name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġtype ĠString Ġvalue Ġof Ġ[ ContentType ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ ContentType ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfrom Value ( type : ĠString ?): ĠContentType ? Ġ= Ġtype ?. let Ġ{ Ġmap [ it . capitalize ()] Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllowed Ġsupported Ġ[ ContentType ] s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġrequired Ġyou Ġcan Ġfilter Ġout Ġthe Ġ[ ContentType ] Ġnot Ġsupported Ġby Ġthe Ġapp ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠList Ġof Ġ[ ContentType ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Allowed Content Types (): ĠArray < String > Ġ= ĊĠĠĠĠĠ Ġvalues (). filter Ġ{ Ġ! it . is Episode () Ġ&& Ġ! it . is Prof essional () Ġ}. map Ġ{ Ġit . name . toLowerCase () Ġ}. to Typed Array () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllowed Ġdownload able Ġ[ ContentType ] s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠList Ġof Ġ[ ContentType ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Allowed Download Types (): ĠArray < String > Ġ= ĊĠĠĠĠĠ Ġvalues (). filter Ġ{ Ġ! it . is Collection () Ġ&& Ġ! it . is Prof essional () Ġ}. map Ġ{ Ġit . name . toLowerCase () Ġ}. to Typed Array () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllowed Ġcontent Ġfilters Ġ[ ContentType ] s ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠList Ġof Ġ[ ContentType ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Filter Content Types (): ĠList < ContentType > Ġ= ĊĠĠĠĠĠ Ġvalues (). filter Ġ{ Ġ! it . is Episode () Ġ} ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ return ĠTrue Ġif Ġthe Ġcurrent Ġcontent Ġis Ġscre enc ast , Ġotherwise ĠFalse Ċ Ġ*/ Ċ fun ĠContentType ?. is Scre enc ast (): ĠBoolean Ġ= Ġthis Ġ== ĠContentType . Scre enc ast Ċ Ċ /** Ċ Ġ* Ġ@ return ĠTrue Ġif Ġthe Ġcurrent Ġcontent Ġis Ġcollection , Ġotherwise ĠFalse Ċ Ġ*/ Ċ fun ĠContentType ?. is Collection (): ĠBoolean Ġ= Ġthis Ġ== ĠContentType . Collection Ċ Ċ /** Ċ Ġ* Ġ@ return ĠTrue Ġif Ġthe Ġcurrent Ġcontent Ġis Ġepisode , Ġotherwise ĠFalse Ċ Ġ*/ Ċ fun ĠContentType ?. is Episode (): ĠBoolean Ġ= Ġthis Ġ== ĠContentType . Episode Ċ Ċ /** Ċ Ġ* Ġ@ return ĠTrue Ġif Ġthe Ġcurrent Ġcontent Ġis Ġprofessional , Ġotherwise ĠFalse Ċ Ġ*/ Ċ fun ĠContentType ?. is Prof essional (): ĠBoolean Ġ= Ġthis Ġ== ĠContentType . Prof essional Ċ Ċ /** Ċ Ġ* ĠConvert Ġthe Ġ[ ContentType ] Ġname Ġto Ġlowercase Ġfor Ġuse Ġin Ġpost Ġrequests Ġor Ġto Ġsave Ġto Ġdb Ċ Ġ*/ Ċ fun ĠContentType . to Request Format (): ĠString Ġ= Ġthis . name . toLowerCase () Ċ