/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠJ i ey i Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġt aiwan . no . one . feat . explore . data . map pers Ċ Ċ import Ġt aiwan . no . one . entity . Simple Album Entity Ċ import Ġt aiwan . no . one . entity . Simple Artist Entity Ċ import Ġt aiwan . no . one . entity . Simple Artist Entity . Simple Bio Entity Ċ import Ġt aiwan . no . one . entity . Simple Track Entity Ċ import Ġt aiwan . no . one . ext . DEFAULT _ INT Ċ import Ġt aiwan . no . one . ext . DEFAULT _ STR Ċ import Ġt aiwan . no . one . feat . explore . data . entities . remote . Album Info Entity . Album With Artist Entity Ċ import Ġt aiwan . no . one . feat . explore . data . entities . remote . Artist Info Entity . Artist Entity Ċ import Ġt aiwan . no . one . feat . explore . data . entities . remote . Track Info Entity . Track Entity Ċ import Ġt aiwan . no . one . feat . explore . data . entities . remote . Track Info Entity . Track With Stream able Entity Ċ import Ġt aiwan . no . one . feat . explore . domain . use cases . Artist With More Detail Entity Ċ Ċ internal Ġobject ĠEntity Mapper Ġ{ ĊĠĠĠ Ġfun Ġexplore To Simple Track Entity ( entity : ĠTrack Entity ) Ġ= Ġentity . let Ġ{ ĊĠĠĠĠĠĠĠ ĠSimple Track Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . artist ?. name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . images ?. find Ġ{ Ġit . size Ġ== Ġ" cover " Ġ} ?. text Ġ?: Ġentity . images ?. get ( 0 )?. text ). or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . duration ?. toInt () Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity . is Favorite Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtrack To Simple Track Entity ( entity : ĠTrack With Stream able Entity ) Ġ= Ġentity . let Ġ{ ĊĠĠĠĠĠĠĠ ĠSimple Track Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . artist ?. name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . images ?. first OrNull ()?. text . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . duration ?. toInt () Ġ?: ĠDEFAULT _ INT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Own Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġalbum To Simple Album Entity ( entity : ĠAlbum With Artist Entity ) Ġ= Ġentity . let Ġ{ ĊĠĠĠĠĠĠĠ ĠSimple Album Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . mb id . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . images ?. last OrNull ()?. text . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . play Count ?. toInt OrNull () Ġ?: ĠDEFAULT _ INT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . listeners ?. toInt OrNull () Ġ?: ĠDEFAULT _ INT , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġartist To Simple Track Entity ( entity : ĠArtist With More Detail Entity ) Ġ= Ġentity . let Ġ{ Ġ( artist , Ġalbum ) Ġ-> ĊĠĠĠĠĠĠĠ ĠSimple Track Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum ?. popular Track This Week ?. name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartist . name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum ?. popular Track This Week ?. url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum ?. cover Photo Url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum ?. popular Track This Week ?. duration ?. toInt () Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum ?. popular Track This Week ?. is Favorite Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġartist To Simple Artist Entity ( entity : ĠArtist Entity ) Ġ= Ġentity . let Ġ{ ĊĠĠĠĠĠĠĠ ĠSimple Artist Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ STR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . url . or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . stats ?. listeners ?. toInt () Ġ?: ĠDEFAULT _ INT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . stats ?. play Count ?. toInt () Ġ?: ĠDEFAULT _ INT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . bio ?. let Ġ{ Ġbio Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Bio Entity ( bio . content . or Empty (), Ġbio . summary . or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠSimple Bio Entity ( DEFAULT _ STR , ĠDEFAULT _ STR ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ