package Ġuse cases . use case . user Ċ Ċ import Ġdomain . entity . user . Author ities Ċ import Ġdomain . entity . user . Email Ċ import Ġdomain . repository . UserRepository Ċ import Ġuse cases . model . User Model Ċ import Ġuse cases . use case . Query Ċ import Ġuse cases . use case . Use case A 1 Ċ import Ġkotlin . reflect . type Of Ċ Ċ @ Query Ċ class ĠUser Exists ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠUser Repository Ċ ) Ġ: ĠUse case A 1 < Email , ĠBoolean >( type Of < Email >(), ĠtypeOf < Boolean >()) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġauthor ities Ġ= ĠlistOf ( Author ities . USER ) ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġexecutor ( authentication : ĠUser Model ?, Ġa 0 : ĠEmail ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . findBy Email ( a 0 ) Ġ!= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ