package Ġcom . es cod ro . domain . use case . alarm . implementation Ċ Ċ import Ġcom . es cod ro . domain . inter actor . Alarm Interactor Ċ import Ġcom . es cod ro . domain . repository . Task Repository Ċ import Ġcom . es cod ro . domain . use case . alarm . Cancel Alarm Ċ Ċ internal Ġclass ĠCancel Alarm Impl ( ĊĠĠĠ Ġprivate Ġval Ġtask Repository : ĠTask Repository , ĊĠĠĠ Ġprivate Ġval Ġalarm Interactor : ĠAlarm Interactor Ċ ) Ġ: ĠCancel Alarm Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġoperator Ġfun Ġinvoke ( taskId : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġtask Repository . find Task ById ( taskId ) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Task Ġ= Ġtask . copy ( due Date Ġ= Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġalarm Interactor . cancel ( task . id ) ĊĠĠĠĠĠĠĠ Ġtask Repository . update Task ( updated Task ) ĊĠĠĠ Ġ} Ċ } Ċ