aboutsummaryrefslogtreecommitdiffstats
path: root/db/normalized/user_preferences.js
diff options
context:
space:
mode:
authorRan Guin <[email protected]>2021-05-11 18:28:25 -0700
committerRan Guin <[email protected]>2021-05-11 18:28:25 -0700
commit0b0994f4795759c7ddc08203522d8488bb4a5646 (patch)
treede8237ad37f3341b216dca12b6aea0aebaa3f89d /db/normalized/user_preferences.js
parent38ba24080dd50b1993772ba822c3db83876c4fd3 (diff)
downloadcoinos-server-0b0994f4795759c7ddc08203522d8488bb4a5646.tar.gz
coinos-server-0b0994f4795759c7ddc08203522d8488bb4a5646.zip
add first draft of normalized schema
Diffstat (limited to 'db/normalized/user_preferences.js')
-rw-r--r--db/normalized/user_preferences.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/db/normalized/user_preferences.js b/db/normalized/user_preferences.js
new file mode 100644
index 00000000..9864f4eb
--- /dev/null
+++ b/db/normalized/user_preferences.js
@@ -0,0 +1,60 @@
+const { DataTypes } = require('sequelize');
+
+const attributes = {
+ id: {
+ type: DataTypes.INTEGER(11),
+ primaryKey: true,
+ autoIncrement: true,
+ allowNull: false
+ },
+ user_id: {
+ type: DataTypes.INTEGER(11),
+ references: { model: User, key: 'id' },
+ allowNull: false,
+ comment: "Referral granted to this user (updated when token used)"
+ },
+ username: {
+ type: DataTypes.STRING(255),
+ allowNull: false,
+ },
+ gravitar: {
+ type: DataTypes.STRING(255),
+ },
+ fiat: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: true,
+ allowNull: false,
+ comment: "What is this for ?"
+ },
+ default_crypto_unit: {
+ type: DataTypes.ENUM,
+ values: ['SAT', 'BTC'],
+ defaultValue: 'SAT',
+ allowNull: false
+ },
+ default_currency_code: {
+ type: DataTypes.INTEGER(11),
+ references: { model: Currency, key: 'code' },
+ defaultValue: "CAD",
+ allowNull: false
+ },
+ currencies: {
+ type: DataTypes.JSON,
+ allowNull: false,
+ defaultValue: ["USD"],
+ comment: "List of currency options to show for this user",
+ }
+}
+
+const options = {
+ tableName: "user_preferences",
+ comment: "settings that can be controlled by users themselves",
+ timestamps: true,
+ createdAt: 'created_at',
+ updatedAt: 'updated_at',
+ indexes: [
+ {fields: ['user_id']}
+ ]
+};
+
+db["UserPreference"] = db.define("user_preferences_model", attributes, options);