From da9e0225cc59166b90e9e7bf6d181c1a542d2643 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 18:51:41 -0600 Subject: [PATCH] Create Operation, Transfer and Equivalent value Entities for the Room database. --- .../models/EquivalentValue.kt | 29 +++++++++++++++++++ .../bitsybitshareswallet/models/Operation.kt | 14 +++++++++ .../bitsybitshareswallet/models/Transfer.kt | 29 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt new file mode 100644 index 0000000..19a126d --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt @@ -0,0 +1,29 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey + +@Entity(tableName = "equivalent_values",foreignKeys = + [ForeignKey( + entity = Transfer::class, + parentColumns = ["operation_id"], + childColumns = ["transfer_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + ), ForeignKey( + entity = Asset::class, + parentColumns = ["id"], + childColumns = ["asset_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + )] +) +data class EquivalentValue ( + @PrimaryKey(autoGenerate = true) + @ColumnInfo(name = "id") val id: Long, + @ColumnInfo(name = "transfer_id") val transferId: String, + @ColumnInfo(name = "value") val value: Long, + @ColumnInfo(name = "asset_id") val assetId: String +) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt new file mode 100644 index 0000000..765c64f --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt @@ -0,0 +1,14 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "operations") +data class Operation ( + @PrimaryKey + @ColumnInfo(name = "id") val id: String, + @ColumnInfo(name = "type") val type: Int, + @ColumnInfo(name = "timestamp") val timestamp: Long, + @ColumnInfo(name = "block_number") val blockNumber: Long +) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt new file mode 100644 index 0000000..abf1456 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt @@ -0,0 +1,29 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey + +@Entity(tableName = "transfers",foreignKeys = + [ForeignKey( + entity = Operation::class, + parentColumns = ["id"], + childColumns = ["operation_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + )] +) +data class Transfer ( + @PrimaryKey + @ColumnInfo(name = "operation_id") val operationId: String, + @ColumnInfo(name = "fee_amount") val feeAmount: Long, + @ColumnInfo(name = "fee_asset_id") val feeAssetId: String, + @ColumnInfo(name = "source") val source: String, + @ColumnInfo(name = "destination") val destination: String, + @ColumnInfo(name = "transfer_amount") val transferAmount: Long, + @ColumnInfo(name = "transfer_asset_id") val transferAssetId: String, + @ColumnInfo(name = "memo") val memo: String, + @ColumnInfo(name = "memo_from_key") val memoFromKey: String, + @ColumnInfo(name = "memo_to_key") val memoToKey: String +) \ No newline at end of file