You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

25 lines
928 B

package com.xsn.explorer.data
import com.alexitc.playsonify.core.ApplicationResult
import com.alexitc.playsonify.models.ordering.FieldOrdering
import com.alexitc.playsonify.models.pagination.{Limit, PaginatedQuery, PaginatedResult}
import com.xsn.explorer.models.fields.BalanceField
import com.xsn.explorer.models.persisted.Balance
import com.xsn.explorer.models.values.Address
import scala.language.higherKinds
trait BalanceDataHandler[F[_]] {
def upsert(balance: Balance): F[Balance]
def get(query: PaginatedQuery, ordering: FieldOrdering[BalanceField]): F[PaginatedResult[Balance]]
def getBy(address: Address): F[Balance]
def getNonZeroBalances(query: PaginatedQuery, ordering: FieldOrdering[BalanceField]): F[PaginatedResult[Balance]]
def getHighestBalances(limit: Limit, lastSeenAddress: Option[Address]): F[List[Balance]]
}
trait BalanceBlockingDataHandler extends BalanceDataHandler[ApplicationResult]