package com.xsn.explorer.data import com.alexitc.playsonify.core.ApplicationResult import com.alexitc.playsonify.models.{FieldOrdering, PaginatedQuery, PaginatedResult} import com.xsn.explorer.models._ import com.xsn.explorer.models.fields.TransactionField import scala.language.higherKinds trait TransactionDataHandler[F[_]] { def upsert(transaction: Transaction): F[Transaction] def delete(transactionId: TransactionId): F[Transaction] def deleteBy(blockhash: Blockhash): F[List[Transaction]] def getBy( address: Address, paginatedQuery: PaginatedQuery, ordering: FieldOrdering[TransactionField]): F[PaginatedResult[TransactionWithValues]] } trait TransactionBlockingDataHandler extends TransactionDataHandler[ApplicationResult]