package Ġcom . te amp ym . online clo thing shop application . presentation . client . invent ories Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . te amp ym . online clo thing shop application . data . di . Application Scope Ċ import Ġcom . te amp ym . online clo thing shop application . data . repository . Cart Repository Ċ import Ġcom . te amp ym . online clo thing shop application . data . room . Cart Ċ import Ġcom . te amp ym . online clo thing shop application . data . room . Cart Dao Ċ import Ġcom . te amp ym . online clo thing shop application . data . room . Inventory Ċ import Ġcom . te amp ym . online clo thing shop application . data . room . Product Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠInventory ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcart Repository : ĠCart Repository , ĊĠĠĠ Ġprivate Ġval Ġcart Dao : ĠCart Dao , ĊĠĠĠ Ġ@ Application Scope Ġval Ġapp Scope : ĠCor outine Scope Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ invent ories LiveData Ġ= ĠMutable LiveData < List < Inventory >>() ĊĠĠĠ Ġval Ġinvent ories : ĠLive Data < List < Inventory >> Ġget () Ġ= Ġ_ invent ories LiveData ĊĊĠĠĠ Ġfun ĠaddTo Cart ( userId : ĠString , Ġproduct : ĠProduct , Ġinventory : ĠInventory , Ġcount : ĠLong ) Ġ= Ġapp Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUse Ġonline Ġdatabase Ġinstead Ġof ĠRoom ĊĠĠĠĠĠĠĠ Ġval Ġnew Cart Item Ġ= ĠCart ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Total Ġ= Ġ 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCart ĠID ĠShould Ġbe Ġ== Ġinventory ĠID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġinventory . inventory Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ= Ġproduct , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory Ġ= Ġinventory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Ġ= Ġcount ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġsub Total ĊĠĠĠĠĠĠĠ Ġnew Cart Item . sub Total Ġ= Ġnew Cart Item . calculated Total Price . toDouble () ĊĊĠĠĠĠĠĠĠ Ġcart Repository . insert ( userId , Ġnew Cart Item ) ĊĠĠĠĠĠĠĠ Ġcart Dao . insert ( new Cart Item ) ĊĠĠĠ Ġ} Ċ } Ċ