package Ġcom . ever don or . ever don or backend . persistence . user Ċ Ċ import Ġcom . ever don or . ever don or backend . model . Don ation Type Ċ import Ġorg . springframework . data . repository . Crud Repository Ċ Ċ import Ġcom . ever don or . ever don or backend . model . User Ċ import Ġorg . springframework . data . jpa . repository . Query Ċ import Ġorg . springframework . data . repository . query . Param Ċ import Ġorg . springframework . security . core . user details . UserDetails Ċ import Ġjava . util .* Ċ Ċ interface ĠUser DAO Ġ: ĠCr ud Repository < User ?, ĠInt ?> Ġ{ ĊĠĠĠ Ġfun Ġfind ById ( id : ĠLong ): ĠOptional < User ?> ĊĠĠĠ Ġfun ĠfindBy Email ( email : ĠString ): ĠOptional < User ?> ĊĠĠĠ Ġ@ Query (" SELECT " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ*, ĠRO UND (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠ 6 3 7 1 Ġ* Ġa cos Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġcos Ġ( Ġradians (: user Latitude ) Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ* Ġcos ( Ġradians ( Ġlatitude Ġ) Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ* Ġcos ( Ġradians ( Ġlongitude Ġ) Ġ- Ġradians (: user Longitude ) Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ+ Ġsin Ġ( Ġradians (: user Latitude ) Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ* Ġsin ( Ġradians ( Ġlatitude Ġ) Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ)" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ) ĠAS Ġdistance " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠFROM Ġuser " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠH AV ING Ġdistance Ġ<= Ġ: user Distance " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠORDER ĠBY Ġdistance ", native Query Ġ= Ġtrue ) ĊĠĠĠ Ġfun ĠfindBy Radius (@ Param (" user Latitude ") latitude : Double , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Param (" user Longitude ") longitude : Double , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Param (" user Distance ") distance : Int ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠList < User ?> ĊĊĠĠĠ Ġfun ĠfindBy Don ation Types In And Name Containing ( types : ĠList < Don ation Type >, Ġname : ĠString ): ĠList < User ?> Ċ Ċ }