package Ġcom . sil k ys ys . um co . ui . explore Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . sil k ys ys . um co . data . model . categories . all . All Categories Response Ċ import Ġcom . sil k ys ys . um co . data . model . products . by Category . Data Item Ċ import Ġcom . sil k ys ys . um co . data . network . Resource Ċ import Ġcom . sil k ys ys . um co . data . repository . Explore Repo Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠExplo re ViewModel Ġ@ Inject Ġconstructor ( private Ġval Ġrepo : ĠExplo re Repo ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġcategories Response Ġ= ĠMutable LiveData < Resource < All Categories Response >>() ĊĊĠĠĠ Ġ// ĠCreate Ġget Ġrequest Ġto Ġget Ġall Ġcategories ĊĠĠĠ Ġfun Ġinit Get Categories () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategories Response . value Ġ= Ġrepo . getC ategories () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCreate Ġget Ġrequest Ġto Ġget Ġa Ġspecific Ġcategory ĊĠĠĠ Ġsuspend Ġfun Ġinit Specific Category ( id : ĠInt ) Ġ= Ġrepo . get Specific Category ( id ) ĊĊĠĠĠ Ġ// ĠCreate Ġpost Ġrequest Ġfor Ġadd Ġto Ġcart ĊĠĠĠ Ġsuspend Ġfun Ġinit AddTo Cart ( id : ĠInt , Ġqty : ĠInt ) Ġ= Ġrepo . addTo Cart ( id , Ġqty ) ĊĊĠĠĠ Ġ// ĠAdd Ġwish list Ġitem Ġto Ġdatabase ĊĠĠĠ Ġfun ĠaddTo Wish list ( wishlist : ĠData Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo . addTo Wish list ( wishlist ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove From Wish list ( wishlist : ĠData Item ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo . remove From Wish list ( wishlist ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCheck Ġuser Ġis Ġlogged Ġin Ġor Ġnot ĊĠĠĠ Ġfun Ġcheck User Token () Ġ= Ġrepo . is User LoggedIn () Ċ }