package Ġbr . com . challenge . consult are medi os . db . view model Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġbr . com . challenge . consult are medi os . db . App Database Ċ import Ġbr . com . challenge . consult are medi os . db . dao . Cart Dao Ċ import Ġbr . com . challenge . consult are medi os . db . entity . Cart Item Ċ import Ġbr . com . challenge . consult are medi os . db . repository . Cart Repository Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠCart ViewModel ( application : ĠApplication ): ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcart Dao : ĠCart Dao Ġ= ĠApp Database . getApp Adapter ( application ) !!. cart Dao () ĊĠĠĠ Ġprivate Ġval Ġcart Repository Ġ= ĠCart Repository ( application ) ĊĠĠĠ Ġval Ġcart Items : ĠLive Data < List < Cart Item >> ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcart Items Ġ= Ġcart Dao . getAll () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert ( cart Item : ĠCart Item ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġcart Repository . insert ( cart Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( cart Item : ĠCart Item ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġcart Repository . update ( cart Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( cart Item : ĠCart Item ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġcart Repository . delete ( cart Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete AL l ( cart Items : ĠList < Cart Item >) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġcart Repository . delete All ( cart Items ) ĊĠĠĠ Ġ} Ċ }