package Ġcy . ag or ise . bits y bit shares wallet . database . join s Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . room . Dao Ċ import Ġandroidx . room . Query Ċ Ċ @ Dao Ċ interface ĠTransfer Detail Dao Ġ{ ĊĊĠĠĠ Ġ@ Query (""" ĊĠĠĠĠĠĠĠ ĠSELECT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġname ĠFROM Ġuser _ accounts ĠWHERE Ġuser _ accounts . id = trans fers . source ) ĠAS Ġ` from `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġname ĠFROM Ġuser _ accounts ĠWHERE Ġuser _ accounts . id = trans fers . destination ) ĠAS Ġ` to `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( CASE ĠWHEN Ġdestination =: userId ĠTHEN Ġ 1 ĠELSE Ġ 0 ĠEND ) ĠAS Ġ` direction `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . memo ĠAS Ġ` memo `, Ġtransfers . timestamp ĠAS Ġ` date `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . transfer _ amount ĠAS Ġ` asset Amount `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . precision ĠAS Ġ` asset Precision `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . symbol ĠAS Ġ` asset Symbol `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . issuer Ġas Ġ` asset Issuer `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġvalue ĠFROM Ġequivalent _ values ĠWHERE Ġequivalent _ values . transfer _ id = trans fers . id ) ĠAS Ġ` fi at Amount `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġsymbol ĠFROM Ġequivalent _ values ĠWHERE Ġequivalent _ values . transfer _ id = trans fers . id ) ĠAS Ġ` fi at Symbol ` ĊĠĠĠĠĠĠĠ ĠFROM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers ĊĠĠĠĠĠĠĠ ĠINNER ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets ĊĠĠĠĠĠĠĠ ĠWHERE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . id =: transfer Id ĠAND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . transfer _ asset _ id Ġ= Ġassets . id ĊĠĠĠ Ġ"" ") ĊĠĠĠ Ġfun Ġget ( userId : ĠString , Ġtransfer Id : ĠString ): ĠLive Data < Transfer Detail > ĊĊĠĠĠ Ġ@ Query (""" ĊĠĠĠĠĠĠĠ ĠSELECT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġname ĠFROM Ġuser _ accounts ĠWHERE Ġuser _ accounts . id = trans fers . source ) ĠAS Ġ` from `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġname ĠFROM Ġuser _ accounts ĠWHERE Ġuser _ accounts . id = trans fers . destination ) ĠAS Ġ` to `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( CASE ĠWHEN Ġdestination =: userId ĠTHEN Ġ 1 ĠELSE Ġ 0 ĠEND ) ĠAS Ġ` direction `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . memo ĠAS Ġ` memo `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . timestamp ĠAS Ġ` date `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . transfer _ amount ĠAS Ġ` asset Amount `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . precision ĠAS Ġ` asset Precision `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . symbol ĠAS Ġ` asset Symbol `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . issuer Ġas Ġ` asset Issuer `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġvalue ĠFROM Ġequivalent _ values ĠWHERE Ġequivalent _ values . transfer _ id = trans fers . id ĠAND Ġsymbol =: currency ) ĠAS Ġ` fi at Amount `, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( SELECT Ġsymbol ĠFROM Ġequivalent _ values ĠWHERE Ġequivalent _ values . transfer _ id = trans fers . id ĠAND Ġsymbol =: currency ) ĠAS Ġ` fi at Symbol ` ĊĠĠĠĠĠĠĠ ĠFROM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers ĊĠĠĠĠĠĠĠ ĠINNER ĠJOIN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets ĊĠĠĠĠĠĠĠ ĠWHERE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransfers . transfer _ asset _ id Ġ= Ġassets . id ĊĠĠĠ Ġ"" ") ĊĠĠĠ Ġfun ĠgetAll ( userId : ĠString , Ġcurrency : ĠString ): ĠLive Data < List < Transfer Detail >> Ċ }