package Ġuk . co . sentinel web . bit watcher . common . database . dao Ċ Ċ import Ġandroid . arch . persistence . room .* Ċ import Ġio . reactivex . Single Ċ import Ġorg . reactiv est ream s . Publisher Ċ import Ġuk . co . sentinel web . bit watcher . common . database . converter . BigDecimal Converter Ċ import Ġuk . co . sentinel web . bit watcher . common . database . converter . Currency Code Converter Ċ import Ġuk . co . sentinel web . bit watcher . common . database . converter . Date Converter Ċ import Ġuk . co . sentinel web . bit watcher . common . database . entities . Ticker Entity Ċ import Ġuk . co . sentinel web . domain . Currency Code Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . util .* Ċ Ċ @ Dao Ċ @ Type Converters ( Currency Code Converter :: class , ĠBigDecimal Converter :: class , ĠDate Converter :: class ) Ċ interface ĠT icker Dao Ġ{ Ċ // ĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFrom Ġticker _ data ") Ċ // ĠĠĠ Ġfun Ġflow All Tick ers (): ĠFlow able < List < Ticker Entity >> ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFrom Ġticker _ data ĠWHERE Ġcurrency Code =: code ĠAND Ġbase Code =: base ") ĊĠĠĠ Ġfun Ġflow Ticker ( code : String , Ġbase : String ): ĠPublisher < Ticker Entity > ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFrom Ġticker _ data ĠWHERE Ġcurrency Code =: code ĠAND Ġbase Code =: base ") ĊĠĠĠ Ġfun Ġsingle Ticker ( code : String , Ġbase : String ): ĠSingle < Ticker Entity > ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFrom Ġticker _ data ĠWHERE Ġcurrency Code =: code ĠAND Ġbase Code =: base ") ĊĠĠĠ Ġfun Ġload Ticker ( code : Currency Code , Ġbase : Currency Code ): ĠT icker Entity ? ĊĊĠĠĠ Ġ@ Query (" SELECT Ġid ĠFrom Ġticker _ data ĠWHERE Ġcurrency Code =: code ĠAND Ġbase Code =: base ") ĊĠĠĠ Ġfun Ġget Ticker Id ( code : Currency Code , Ġbase : Currency Code ): ĠLong ? ĊĊĠĠĠ Ġ@ Query (" SELECT Ġcount (*) ĠFrom Ġticker _ data ") ĊĠĠĠ Ġfun Ġcount (): ĠInt ĊĊĠĠĠ Ġ@ Query (" Update Ġticker _ data Ġ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SET Ġamount Ġ= Ġ: amount , Ġ Ġdate Stamp Ġ= Ġ: date Stamp Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE Ġcurrency Code Ġ= Ġ: currency Code ĠAND Ġbase Code Ġ= Ġ: base Code Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ";" ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġupdate Ticker ( currency Code : ĠCurrency Code , Ġbase Code : ĠCurrency Code , Ġamount : ĠBigDecimal , Ġdate Stamp : ĠDate ) ĊĊĠĠĠ Ġ@ Query (" Update Ġticker _ data Ġ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SET Ġname Ġ= Ġ: name Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE Ġcurrency Code Ġ= Ġ: currency Code ĠAND Ġbase Code Ġ= Ġ: base Code Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ";" ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġupdate Name ( currency Code : ĠCurrency Code , Ġbase Code : ĠCurrency Code , Ġname : ĠString ) ĊĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . IGNORE ) ĊĠĠĠ Ġfun Ġinsert Ticker ( t : ĠT icker Entity ) Ċ Ċ }