package Ġcom . engine ba i . movie h unt . data . local Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . room . Column Info Ċ import Ġandroidx . room . Entity Ċ import Ġandroidx . room . ForeignKey Ċ import Ġandroidx . room . PrimaryKey Ċ import Ġcom . engine ba i . movie h unt . data . remote . Genre Ċ import Ġcom . engine ba i . movie h unt . data . remote . Image Api Ċ import Ġcom . engine ba i . movie h unt . data . remote . Image Size Ċ import Ġcom . engine ba i . movie h unt . ui . list . Movie Category Ċ import Ġcom . engine ba i . movie h unt . ui . widgets . Movie Por trait Holder _ Ċ import Ġcom . engine ba i . movie h unt . ui . widgets . Movie Por trait Widget Ċ import Ġcom . engine ba i . movie h unt . utils . DateTime Formatter . format Ċ import Ġcom . engine ba i . movie h unt . utils . format Ċ import Ġcom . engine ba i . movie h unt . utils . format Hour Minutes Ċ import Ġjava . util .* Ċ Ċ const Ġval ĠPL ACE HOLDER Ġ= Ġ"-- " Ċ Ċ @ Entity ( ĊĠĠĠ ĠtableName Ġ= Ġ" movie _ list ", ĊĠĠĠ Ġprimary Keys Ġ= Ġ[" category ", Ġ" movie _ id "], ĊĠĠĠ Ġforeign Keys Ġ= Ġ[ ForeignKey ( ĊĠĠĠĠĠĠĠ Ġentity Ġ= ĠMovie Model :: class , ĊĠĠĠĠĠĠĠ Ġparent Columns Ġ= Ġ[" id "], ĊĠĠĠĠĠĠĠ Ġchild Columns Ġ= Ġ[" movie _ id "], ĊĠĠĠĠĠĠĠ ĠonDelete Ġ= ĠForeign Key . CASCADE , ĊĠĠĠĠĠĠĠ ĠonUpdate Ġ= ĠForeign Key . CASCADE ĊĠĠĠ Ġ) ] Ċ ) Ċ data Ġclass ĠMovie List Id ( ĊĠĠĠ Ġval Ġcategory : ĠMovie Category , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" movie _ id ") ĊĠĠĠ Ġval Ġmovie Id : ĠString , ĊĠĠĠ Ġval Ġposition : ĠLong Ċ ) Ċ Ċ @ Entity ( tableName Ġ= Ġ" movie ") Ċ data Ġclass ĠMovie Model ( ĊĠĠĠ Ġ@ PrimaryKey ĊĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" poster _ path ") ĊĠĠĠ Ġval Ġposter Path : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" vote _ average ") ĊĠĠĠ Ġval Ġvote Average : ĠFloat ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" vote _ count ") ĊĠĠĠ Ġval Ġvote Count : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġoverview : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" release _ date ") ĊĠĠĠ Ġval Ġrelease Date : ĠCalendar ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" genres ") ĊĠĠĠ Ġval Ġgenre List : ĠList < Genre >? Ġ= Ġnull , ĊĠĠĠ Ġval Ġruntime : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" backdrop _ path ") ĊĠĠĠ Ġval Ġback drop Path : ĠString ? Ġ= Ġnull , Ċ ) Ċ Ċ fun ĠMovie Model . display Title (): ĠString Ġ= Ġthis . title Ġ?: ĠPL ACE HOLDER Ċ fun ĠMovie Model . display 5 St ars Rating (): ĠFloat Ġ= Ġthis . vote Average ?. div ( 2 ) Ġ?: Ġ 0 . 0 f Ċ fun ĠMovie Model . display Vote Count (): ĠString Ġ= Ġthis . vote Count ?. format () Ġ?: ĠPL ACE HOLDER Ċ fun ĠMovie Model . display Duration (): ĠString Ġ= Ġthis . runtime ?. format Hour Minutes () Ġ?: ĠPL ACE HOLDER Ċ fun ĠMovie Model . display Release Date (): ĠString Ġ= Ġthis . release Date ?. format () Ġ?: ĠPL ACE HOLDER Ċ fun ĠMovie Model . display Overview (): ĠString Ġ= Ġthis . overview Ġ?: ĠPL ACE HOLDER Ċ Ċ fun ĠMovie Model . to Por trait Holder (): ĠMovie Por trait Holder _ Ġ= ĠMovie Por trait Holder _() ĊĠĠĠ Ġ. movie Id ( this . id ) ĊĠĠĠ Ġ. poster Url ( Image Api . getFull Url ( this . poster Path , ĠImage Size . W 5 0 0 )) ĊĠĠĠ Ġ. movie Name ( this . display Title ()) ĊĠĠĠ Ġ. rating ( this . display 5 St ars Rating ()) ĊĠĠĠ Ġ. rating Total Count Text ( this . display Vote Count ()) ĊĠĠĠ Ġ. genre ( this . genre List ?. first OrNull ()?. name ) ĊĠĠĠ Ġ. release Year ( this . release Date ?. get ( Calendar . YEAR )) Ċ Ċ @ Composable Ċ fun ĠMovie Model . Por trait Widget ( onClick : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠMovie Por trait Widget ( ĊĠĠĠĠĠĠĠ Ġmovie Id Ġ= Ġthis . id , ĊĠĠĠĠĠĠĠ Ġposter Url Ġ= ĠImage Api . getFull Url ( this . poster Path , ĠImage Size . W 5 0 0 ), ĊĠĠĠĠĠĠĠ Ġmovie Name Ġ= Ġthis . display Title (), ĊĠĠĠĠĠĠĠ Ġrating Ġ= Ġthis . display 5 St ars Rating (), ĊĠĠĠĠĠĠĠ Ġrating Total Count Text Ġ= Ġthis . display Vote Count (), ĊĠĠĠĠĠĠĠ Ġgenre Ġ= Ġthis . genre List ?. first OrNull ()?. name , ĊĠĠĠĠĠĠĠ Ġrelease Year Ġ= Ġthis . release Date ?. get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠ ĠonClick Listener Ġ= ĠonClick ĊĠĠĠ Ġ) Ċ }