package Ġai . tom orrow . mov iet ime . database Ċ Ċ import Ġai . tom orrow . mov iet ime . network . Movie Ċ import Ġandroidx . room . Entity Ċ Ċ // ĠCreate Ġthe ĠDatabase Entities Ġclass , Ġadding Ġannotations Ġfor Ġthe Ġclass Ġand Ġthe Ġprimary Ġkey . Ċ @ Entity ( primary Keys Ġ= ĠarrayOf (" id ", Ġ" type Pop ular ", Ġ" type Rate ", Ġ" type Up coming ", Ġ" type Now ")) Ċ data Ġclass ĠDatabase Mo ive Ġconstructor ( ĊĠĠĠ Ġval Ġid : ĠLong , ĊĠĠĠ Ġval Ġvote Count : ĠString ?, ĊĠĠĠ Ġval Ġvote Average : ĠDouble ?, ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġpop ularity : ĠDouble ?, ĊĠĠĠ Ġval Ġposter Path : ĠString ?, ĊĠĠĠ Ġval Ġback drop Path : ĠString ?, ĊĠĠĠ Ġval Ġoriginal Language : ĠString ?, ĊĠĠĠ Ġval Ġoverview : ĠString ?, ĊĠĠĠ Ġval Ġrelease Date : ĠString ?, ĊĠĠĠ Ġvar Ġvideo Id : ĠString ?, ĊĠĠĠ Ġvar Ġvideo Key : ĠString ?, ĊĠĠĠ Ġvar Ġvideo Name : ĠString ?, ĊĠĠĠ Ġvar Ġvideo Site : ĠString ?, ĊĠĠĠ Ġvar Ġvideo Size : ĠInt ?, ĊĠĠĠ Ġvar Ġvideo Type : ĠString ?, ĊĠĠĠ Ġvar Ġhas Video : ĠBoolean , ĊĠĠĠ Ġvar Ġtype Pop ular : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġtype Rate : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġtype Up coming : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġtype Now : ĠBoolean Ġ= Ġfalse Ċ ) Ċ Ċ // ĠDefine Ġextension Ġfunction ĠList < Movie >. as Database Model (), Ġthat Ġreturns Ġa Ġlist Ġof Ġ< Database Mo ive >. Ċ fun ĠList < Movie >. as Database Model (): ĠArray < Database Mo ive > Ġ{ ĊĠĠĠ Ġreturn Ġmap Ġ{ ĊĠĠĠĠĠĠĠ ĠDatabase Mo ive ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Count Ġ= Ġit . vote Count , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Average Ġ= Ġit . vote Average , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġit . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop ularity Ġ= Ġit . pop ularity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter Path Ġ= Ġit . poster Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback drop Path Ġ= Ġit . backdrop Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Language Ġ= Ġit . original Language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview Ġ= Ġit . overview , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Ġ= Ġit . release Date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Id Ġ= Ġit . video Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Key Ġ= Ġit . video Key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Name Ġ= Ġit . video Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Site Ġ= Ġit . video Site , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Size Ġ= Ġit . video Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Type Ġ= Ġit . video Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Video Ġ= Ġit . has Video , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Pop ular Ġ= Ġit . type Pop ular , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Rate Ġ= Ġit . type Rate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Up coming Ġ= Ġit . type Up coming , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Now Ġ= Ġit . type Now ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}. to Typed Array () Ċ } Ċ Ċ // ĠDefine Ġextension Ġfunction ĠList < Database Video >. as Domain Model (), Ġthat Ġreturns Ġa Ġlist Ġof Ġ< Movie >. Ċ fun ĠList < Database Mo ive >. as Domain Model (): ĠList < Movie > Ġ{ ĊĠĠĠ Ġreturn Ġmap Ġ{ ĊĠĠĠĠĠĠĠ ĠMovie ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Count Ġ= Ġit . vote Count , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvote Average Ġ= Ġit . vote Average , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġit . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop ularity Ġ= Ġit . pop ularity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter Path Ġ= Ġit . poster Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback drop Path Ġ= Ġit . backdrop Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Language Ġ= Ġit . original Language , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview Ġ= Ġit . overview , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Ġ= Ġit . release Date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Id Ġ= Ġit . video Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Key Ġ= Ġit . video Key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Name Ġ= Ġit . video Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Site Ġ= Ġit . video Site , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Size Ġ= Ġit . video Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Type Ġ= Ġit . video Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Video Ġ= Ġit . has Video , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Pop ular Ġ= Ġit . type Pop ular , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Rate Ġ= Ġit . type Rate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Up coming Ġ= Ġit . type Up coming , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Now Ġ= Ġit . type Now ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }