Created
June 4, 2019 14:11
-
-
Save zamahaka/e368257cdc97e3ec595040db8cdd41fb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sealed class SummaryItem : IdEntity<Long> { | |
companion object { | |
fun wrap(meta: TransactionMeta): SummaryItem = | |
if (meta.transaction.isInvoiceItem()) | |
SummaryInvoice(meta) else SummaryPayment(meta) | |
} | |
} | |
fun Transaction.isInvoiceItem() = isMyInvoice() or isMyRequest() | |
fun Transaction.isMyInvoice() = // request sent to me by other | |
type == Transaction.Type.RECEIVED | |
&& status == Transaction.Status.NEW | |
&& castAs == Transaction.CastAs.INVOICE | |
fun Transaction.isMyRequest() = // request sent by me to other | |
type == Transaction.Type.SENT | |
&& status == Transaction.Status.NEW | |
&& castAs == Transaction.CastAs.INVOICE | |
data class SummaryInvoice( | |
val meta: TransactionMeta, | |
val approveProgress: Boolean = false, | |
val declineProgress: Boolean = false | |
) : SummaryItem(), IdEntity<Long> by meta | |
data class SummaryPayment( | |
val meta: TransactionMeta | |
) : SummaryItem(), IdEntity<Long> by meta |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment