Skip to content

Commit 305ec36

Browse files
committed
Update database schema
1 parent bf4f914 commit 305ec36

File tree

10 files changed

+132
-164
lines changed

10 files changed

+132
-164
lines changed

app/schemas/one.mixin.android.db.PerpsDatabase/1.json

Lines changed: 53 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"formatVersion": 1,
33
"database": {
44
"version": 1,
5-
"identityHash": "f17028ee96c6829315578a046a8e4856",
5+
"identityHash": "05fceb901a48fd5e06c755017d38bf94",
66
"entities": [
77
{
88
"tableName": "positions",
9-
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`position_id` TEXT NOT NULL, `market_id` TEXT NOT NULL, `side` TEXT NOT NULL, `quantity` TEXT NOT NULL, `entry_price` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `settle_asset_id` TEXT, `bot_id` TEXT, `margin` TEXT, `open_pay_amount` TEXT, `open_pay_asset_id` TEXT, `state` TEXT, `mark_price` TEXT, `unrealized_pnl` TEXT, `roe` TEXT, `wallet_id` TEXT, `created_at` TEXT, `updated_at` TEXT, PRIMARY KEY(`position_id`))",
9+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`position_id` TEXT NOT NULL, `market_id` TEXT NOT NULL, `side` TEXT NOT NULL, `quantity` TEXT NOT NULL, `entry_price` TEXT NOT NULL, `margin` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `state` TEXT NOT NULL, `mark_price` TEXT NOT NULL, `unrealized_pnl` TEXT NOT NULL, `roe` TEXT NOT NULL, `settle_asset_id` TEXT NOT NULL, `open_pay_amount` TEXT NOT NULL, `open_pay_asset_id` TEXT NOT NULL, `bot_id` TEXT NOT NULL, `wallet_id` TEXT NOT NULL, `created_at` TEXT NOT NULL, `updated_at` TEXT NOT NULL, PRIMARY KEY(`position_id`))",
1010
"fields": [
1111
{
1212
"fieldPath": "positionId",
@@ -38,71 +38,83 @@
3838
"affinity": "TEXT",
3939
"notNull": true
4040
},
41-
{
42-
"fieldPath": "leverage",
43-
"columnName": "leverage",
44-
"affinity": "INTEGER",
45-
"notNull": true
46-
},
47-
{
48-
"fieldPath": "settleAssetId",
49-
"columnName": "settle_asset_id",
50-
"affinity": "TEXT"
51-
},
52-
{
53-
"fieldPath": "botId",
54-
"columnName": "bot_id",
55-
"affinity": "TEXT"
56-
},
5741
{
5842
"fieldPath": "margin",
5943
"columnName": "margin",
60-
"affinity": "TEXT"
61-
},
62-
{
63-
"fieldPath": "openPayAmount",
64-
"columnName": "open_pay_amount",
65-
"affinity": "TEXT"
44+
"affinity": "TEXT",
45+
"notNull": true
6646
},
6747
{
68-
"fieldPath": "openPayAssetId",
69-
"columnName": "open_pay_asset_id",
70-
"affinity": "TEXT"
48+
"fieldPath": "leverage",
49+
"columnName": "leverage",
50+
"affinity": "INTEGER",
51+
"notNull": true
7152
},
7253
{
7354
"fieldPath": "state",
7455
"columnName": "state",
75-
"affinity": "TEXT"
56+
"affinity": "TEXT",
57+
"notNull": true
7658
},
7759
{
7860
"fieldPath": "markPrice",
7961
"columnName": "mark_price",
80-
"affinity": "TEXT"
62+
"affinity": "TEXT",
63+
"notNull": true
8164
},
8265
{
8366
"fieldPath": "unrealizedPnl",
8467
"columnName": "unrealized_pnl",
85-
"affinity": "TEXT"
68+
"affinity": "TEXT",
69+
"notNull": true
8670
},
8771
{
8872
"fieldPath": "roe",
8973
"columnName": "roe",
90-
"affinity": "TEXT"
74+
"affinity": "TEXT",
75+
"notNull": true
76+
},
77+
{
78+
"fieldPath": "settleAssetId",
79+
"columnName": "settle_asset_id",
80+
"affinity": "TEXT",
81+
"notNull": true
82+
},
83+
{
84+
"fieldPath": "openPayAmount",
85+
"columnName": "open_pay_amount",
86+
"affinity": "TEXT",
87+
"notNull": true
88+
},
89+
{
90+
"fieldPath": "openPayAssetId",
91+
"columnName": "open_pay_asset_id",
92+
"affinity": "TEXT",
93+
"notNull": true
94+
},
95+
{
96+
"fieldPath": "botId",
97+
"columnName": "bot_id",
98+
"affinity": "TEXT",
99+
"notNull": true
91100
},
92101
{
93102
"fieldPath": "walletId",
94103
"columnName": "wallet_id",
95-
"affinity": "TEXT"
104+
"affinity": "TEXT",
105+
"notNull": true
96106
},
97107
{
98108
"fieldPath": "createdAt",
99109
"columnName": "created_at",
100-
"affinity": "TEXT"
110+
"affinity": "TEXT",
111+
"notNull": true
101112
},
102113
{
103114
"fieldPath": "updatedAt",
104115
"columnName": "updated_at",
105-
"affinity": "TEXT"
116+
"affinity": "TEXT",
117+
"notNull": true
106118
}
107119
],
108120
"primaryKey": {
@@ -113,8 +125,8 @@
113125
}
114126
},
115127
{
116-
"tableName": "position_history",
117-
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`history_id` TEXT NOT NULL, `position_id` TEXT NOT NULL, `market_id` TEXT NOT NULL, `market_symbol` TEXT, `side` TEXT NOT NULL, `quantity` TEXT NOT NULL, `entry_price` TEXT NOT NULL, `close_price` TEXT NOT NULL, `realized_pnl` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `margin_method` TEXT, `open_at` TEXT NOT NULL, `closed_at` TEXT NOT NULL, `wallet_id` TEXT NOT NULL, PRIMARY KEY(`history_id`))",
128+
"tableName": "position_histories",
129+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`history_id` TEXT NOT NULL, `position_id` TEXT NOT NULL, `market_id` TEXT NOT NULL, `side` TEXT NOT NULL, `quantity` TEXT NOT NULL, `entry_price` TEXT NOT NULL, `close_price` TEXT NOT NULL, `realized_pnl` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `margin_method` TEXT NOT NULL, `open_at` TEXT NOT NULL, `closed_at` TEXT NOT NULL, PRIMARY KEY(`history_id`))",
118130
"fields": [
119131
{
120132
"fieldPath": "historyId",
@@ -134,11 +146,6 @@
134146
"affinity": "TEXT",
135147
"notNull": true
136148
},
137-
{
138-
"fieldPath": "marketSymbol",
139-
"columnName": "market_symbol",
140-
"affinity": "TEXT"
141-
},
142149
{
143150
"fieldPath": "side",
144151
"columnName": "side",
@@ -178,7 +185,8 @@
178185
{
179186
"fieldPath": "marginMethod",
180187
"columnName": "margin_method",
181-
"affinity": "TEXT"
188+
"affinity": "TEXT",
189+
"notNull": true
182190
},
183191
{
184192
"fieldPath": "openAt",
@@ -191,12 +199,6 @@
191199
"columnName": "closed_at",
192200
"affinity": "TEXT",
193201
"notNull": true
194-
},
195-
{
196-
"fieldPath": "walletId",
197-
"columnName": "wallet_id",
198-
"affinity": "TEXT",
199-
"notNull": true
200202
}
201203
],
202204
"primaryKey": {
@@ -208,7 +210,7 @@
208210
},
209211
{
210212
"tableName": "markets",
211-
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`market_id` TEXT NOT NULL, `display_symbol` TEXT NOT NULL, `token_symbol` TEXT NOT NULL, `quote_symbol` TEXT NOT NULL, `mark_price` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `icon_url` TEXT NOT NULL, `funding_rate` TEXT NOT NULL, `min_order_size` TEXT NOT NULL, `max_order_size` TEXT NOT NULL, `min_order_value` TEXT NOT NULL, `max_order_value` TEXT NOT NULL, `last` TEXT NOT NULL, `volume` TEXT NOT NULL, `amount` TEXT NOT NULL, `high` TEXT NOT NULL, `low` TEXT NOT NULL, `open` TEXT NOT NULL, `change` TEXT NOT NULL, `bid_price` TEXT NOT NULL, `ask_price` TEXT NOT NULL, `trade_count` INTEGER NOT NULL, `first_trade_id` INTEGER NOT NULL, `created_at` TEXT NOT NULL, `updated_at` TEXT NOT NULL, PRIMARY KEY(`market_id`))",
213+
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`market_id` TEXT NOT NULL, `display_symbol` TEXT NOT NULL, `token_symbol` TEXT NOT NULL, `quote_symbol` TEXT NOT NULL, `mark_price` TEXT NOT NULL, `leverage` INTEGER NOT NULL, `icon_url` TEXT NOT NULL, `funding_rate` TEXT NOT NULL, `min_order_size` TEXT NOT NULL, `max_order_size` TEXT NOT NULL, `min_order_value` TEXT NOT NULL, `max_order_value` TEXT NOT NULL, `last` TEXT NOT NULL, `volume` TEXT NOT NULL, `amount` TEXT NOT NULL, `high` TEXT NOT NULL, `low` TEXT NOT NULL, `open` TEXT NOT NULL, `change` TEXT NOT NULL, `bid_price` TEXT NOT NULL, `ask_price` TEXT NOT NULL, `created_at` TEXT NOT NULL, `updated_at` TEXT NOT NULL, PRIMARY KEY(`market_id`))",
212214
"fields": [
213215
{
214216
"fieldPath": "marketId",
@@ -336,18 +338,6 @@
336338
"affinity": "TEXT",
337339
"notNull": true
338340
},
339-
{
340-
"fieldPath": "tradeCount",
341-
"columnName": "trade_count",
342-
"affinity": "INTEGER",
343-
"notNull": true
344-
},
345-
{
346-
"fieldPath": "firstTradeId",
347-
"columnName": "first_trade_id",
348-
"affinity": "INTEGER",
349-
"notNull": true
350-
},
351341
{
352342
"fieldPath": "createdAt",
353343
"columnName": "created_at",
@@ -371,7 +361,7 @@
371361
],
372362
"setupQueries": [
373363
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
374-
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'f17028ee96c6829315578a046a8e4856')"
364+
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '05fceb901a48fd5e06c755017d38bf94')"
375365
]
376366
}
377-
}
367+
}

app/src/main/java/one/mixin/android/api/request/perps/OpenOrderRequest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ data class OpenOrderResponse(
2525
@SerializedName("payment_url")
2626
val paymentUrl: String?,
2727
@SerializedName("pay_amount")
28-
val payAmount: String?,
28+
val payAmount: String,
2929
@SerializedName("deposit_destination")
3030
val depositDestination: String?,
3131
@SerializedName("app_id")

app/src/main/java/one/mixin/android/api/response/perps/PerpsExt.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ fun PerpsPositionItem.toPosition(): PerpsPosition {
88
quantity = quantity,
99
entryPrice = entryPrice,
1010
leverage = leverage,
11-
settleAssetId = settleAssetId,
12-
botId = botId,
13-
margin = margin,
14-
openPayAmount = openPayAmount,
15-
openPayAssetId = openPayAssetId,
16-
state = state,
17-
markPrice = markPrice,
18-
unrealizedPnl = unrealizedPnl,
19-
roe = roe,
20-
walletId = walletId,
21-
createdAt = createdAt,
22-
updatedAt = updatedAt,
11+
settleAssetId = settleAssetId ?: "",
12+
botId = botId ?: "",
13+
margin = margin ?: "0",
14+
openPayAmount = openPayAmount ?: "0",
15+
openPayAssetId = openPayAssetId ?: "",
16+
state = state ?: "",
17+
markPrice = markPrice ?: "0",
18+
unrealizedPnl = unrealizedPnl ?: "0",
19+
roe = roe ?: "0",
20+
walletId = walletId ?: "",
21+
createdAt = createdAt ?: "",
22+
updatedAt = updatedAt ?: "",
2323
)
2424
}

app/src/main/java/one/mixin/android/api/response/perps/PerpsMarket.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,6 @@ data class PerpsMarket(
9191
@ColumnInfo(name = "ask_price")
9292
val askPrice: String,
9393

94-
@SerializedName("trade_count")
95-
@ColumnInfo(name = "trade_count")
96-
val tradeCount: Int,
97-
98-
@SerializedName("first_trade_id")
99-
@ColumnInfo(name = "first_trade_id")
100-
val firstTradeId: Long,
101-
10294
@SerializedName("created_at")
10395
@ColumnInfo(name = "created_at")
10496
val createdAt: String,

app/src/main/java/one/mixin/android/api/response/perps/PerpsPosition.kt

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ data class PerpsPosition(
1414
@SerializedName("position_id")
1515
@ColumnInfo(name = "position_id")
1616
val positionId: String,
17-
@SerializedName(value = "market_id", alternate = ["product_id"])
17+
@SerializedName(value = "market_id")
1818
@ColumnInfo(name = "market_id")
1919
val marketId: String,
2020
@SerializedName("side")
@@ -26,42 +26,42 @@ data class PerpsPosition(
2626
@SerializedName("entry_price")
2727
@ColumnInfo(name = "entry_price")
2828
val entryPrice: String,
29+
@SerializedName("margin")
30+
@ColumnInfo(name = "margin")
31+
val margin: String,
2932
@SerializedName("leverage")
3033
@ColumnInfo(name = "leverage")
3134
val leverage: Int,
32-
@SerializedName("settle_asset_id")
33-
@ColumnInfo(name = "settle_asset_id")
34-
val settleAssetId: String? = null,
35-
@SerializedName("bot_id")
36-
@ColumnInfo(name = "bot_id")
37-
val botId: String? = null,
38-
@SerializedName("margin")
39-
@ColumnInfo(name = "margin")
40-
val margin: String? = null,
41-
@SerializedName("open_pay_amount")
42-
@ColumnInfo(name = "open_pay_amount")
43-
val openPayAmount: String? = null,
44-
@SerializedName("open_pay_asset_id")
45-
@ColumnInfo(name = "open_pay_asset_id")
46-
val openPayAssetId: String? = null,
4735
@SerializedName("state")
4836
@ColumnInfo(name = "state")
49-
val state: String? = null,
37+
val state: String,
5038
@SerializedName("mark_price")
5139
@ColumnInfo(name = "mark_price")
52-
val markPrice: String? = null,
40+
val markPrice: String,
5341
@SerializedName("unrealized_pnl")
5442
@ColumnInfo(name = "unrealized_pnl")
55-
val unrealizedPnl: String? = null,
43+
val unrealizedPnl: String,
5644
@SerializedName("roe")
5745
@ColumnInfo(name = "roe")
58-
val roe: String? = null,
46+
val roe: String,
47+
@SerializedName("settle_asset_id")
48+
@ColumnInfo(name = "settle_asset_id")
49+
val settleAssetId: String,
50+
@SerializedName("open_pay_amount")
51+
@ColumnInfo(name = "open_pay_amount")
52+
val openPayAmount: String,
53+
@SerializedName("open_pay_asset_id")
54+
@ColumnInfo(name = "open_pay_asset_id")
55+
val openPayAssetId: String,
56+
@SerializedName("bot_id")
57+
@ColumnInfo(name = "bot_id")
58+
val botId: String,
5959
@ColumnInfo(name = "wallet_id")
60-
val walletId: String? = null,
60+
val walletId: String,
6161
@SerializedName("created_at")
6262
@ColumnInfo(name = "created_at")
63-
val createdAt: String? = null,
63+
val createdAt: String,
6464
@SerializedName("updated_at")
6565
@ColumnInfo(name = "updated_at")
66-
val updatedAt: String? = null,
66+
val updatedAt: String,
6767
) : Parcelable

app/src/main/java/one/mixin/android/api/response/perps/PerpsPositionHistory.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.google.gson.annotations.SerializedName
88
import kotlinx.parcelize.Parcelize
99

1010
@Parcelize
11-
@Entity(tableName = "position_history")
11+
@Entity(tableName = "position_histories")
1212
data class PerpsPositionHistory(
1313
@PrimaryKey
1414
@SerializedName("history_id")
@@ -17,12 +17,9 @@ data class PerpsPositionHistory(
1717
@SerializedName("position_id")
1818
@ColumnInfo(name = "position_id")
1919
val positionId: String,
20-
@SerializedName(value = "market_id", alternate = ["product_id"])
20+
@SerializedName(value = "market_id")
2121
@ColumnInfo(name = "market_id")
2222
val marketId: String,
23-
@SerializedName("market_symbol")
24-
@ColumnInfo(name = "market_symbol")
25-
val marketSymbol: String? = null,
2623
@SerializedName("side")
2724
@ColumnInfo(name = "side")
2825
val side: String,
@@ -43,13 +40,11 @@ data class PerpsPositionHistory(
4340
val leverage: Int,
4441
@SerializedName("margin_method")
4542
@ColumnInfo(name = "margin_method")
46-
val marginMethod: String? = null,
43+
val marginMethod: String,
4744
@SerializedName("open_at")
4845
@ColumnInfo(name = "open_at")
4946
val openAt: String,
5047
@SerializedName("closed_at")
5148
@ColumnInfo(name = "closed_at")
5249
val closedAt: String,
53-
@ColumnInfo(name = "wallet_id")
54-
val walletId: String = ""
5550
) : Parcelable

0 commit comments

Comments
 (0)