/* ĠCopyright Ġ 2 0 2 2 , Ġ ĠG erg ana ĠK iri lo va Ċ Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ċ http :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ */ Ċ package Ġcom . example . android . goal ch aser . local datasource Ċ Ċ import Ġandroidx . room .* Ċ Ċ @ Dao Ċ interface ĠGo als Dao Ġ{ ĊĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġsuspend Ġfun Ġinsert Goal ( goal : ĠGoal Data ) ĊĊĠĠĠ Ġ@ Update ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġsuspend Ġfun Ġupdate Goal ( goal : ĠGoal Data ) ĊĊĠĠĠ Ġ@ Query (" UPDATE Ġgoals ĠSET Ġis Completed Ġ= Ġ 1 Ġ, due Date Ġ= Ġ: goal Completion Date ĠWHERE Ġgoal Id Ġ= Ġ: goal Id ") ĊĠĠĠ Ġsuspend Ġfun Ġmark Goal Completed ( goal Id : ĠInt , Ġgoal Completion Date : ĠString ) ĊĊĠĠĠ Ġ@ Query ( ĊĠĠĠĠĠĠĠ Ġ" UPDATE Ġgoals ĠSET Ġtime Unit Number Ġ= Ġnull ," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġdays Ġ= Ġnull , months Ġ= Ġnull , Ġnotification Id Ġ= Ġnull ĠWHERE Ġgoal Id Ġ= Ġ: goal Id " ĊĠĠĠ Ġ) ĊĠĠĠ Ġsuspend Ġfun Ġclear Notification Data On Goal Completion ( goal Id : ĠInt ) ĊĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġgoals ĠWHERE Ġgoal Id Ġ= Ġ: goal Id Ġ") ĊĠĠĠ Ġsuspend Ġfun Ġdelete Goal ( goal Id : ĠInt ) ĊĊĠĠĠ Ġ@ Query (" DELETE ĠFROM Ġgoals ") ĊĠĠĠ Ġsuspend Ġfun Ġdelete All Go als () ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġgoals ĠWHERE Ġgoal Id Ġ= Ġ: goal Id ") ĊĠĠĠ Ġsuspend Ġfun Ġget Goal ( goal Id : ĠInt ): ĠGoal Data ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġgoals ") ĊĠĠĠ Ġsuspend Ġfun ĠgetAll Go als (): ĠList < Goal Data > ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġgoals ĠWHERE Ġis Completed Ġ= Ġ 0 ") ĊĠĠĠ Ġsuspend Ġfun Ġget Active Go als (): ĠList < Goal Data > ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġgoals ĠWHERE Ġis Completed Ġ= Ġ 1 ") ĊĠĠĠ Ġsuspend Ġfun Ġget Completed Go als (): ĠList < Goal Data > ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM Ġgoals ĠWHERE Ġnotification Id Ġ= Ġ: notification Id Ġ") ĊĠĠĠ Ġsuspend Ġfun Ġget Goal By Notification Id ( notification Id : ĠInt ?): ĠGoal Data ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT Ġ(* ) ĠFROM Ġgoals ĠWHERE Ġis Completed Ġ= Ġ 0 ") ĊĠĠĠ Ġsuspend Ġfun Ġget Active Go als Count (): ĠInt ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT Ġ(* ) ĠFROM Ġgoals ĠWHERE Ġis Completed Ġ= Ġ 1 ") ĊĠĠĠ Ġsuspend Ġfun Ġget Completed Go als Count (): ĠInt ĊĊĠĠĠ Ġ@ Query (" SELECT ĠCOUNT Ġ(* ) ĠFROM Ġgoals ") ĊĠĠĠ Ġsuspend Ġfun ĠgetAll Go als Count (): ĠInt Ċ Ċ }