package Ġcom . jd agn ogo . we lov em ar athon . common . like . domain Ċ Ċ import Ġcom . jd agn ogo . we lov em ar athon . common . category . Category Item Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠUpdate Fav UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval ĠaddTo Favorite UseCase : ĠAdd To Favorite UseCase , ĊĠĠĠ Ġprivate Ġval Ġremove From Favorite UseCase : ĠRemove From Favorite UseCase , ĊĠĠĠ Ġprivate Ġval ĠgetAll Fav Use Cases : ĠGetAll Fav Use Cases , Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke ( category Item : ĠCategory Item ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( category Item Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġfav Ġ= ĠgetAll Fav Use Cases . invoke (). value . first OrNull Ġ{ Ġit . id Ġ== Ġcategory Item . id Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( fav Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Favorite UseCase ( category Item ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove From Favorite UseCase ( category Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }