include new models

pull/4/head
AdamSBlack 2021-10-02 23:11:51 +01:00
parent cbea324a05
commit f5a0fc8c0d
5 changed files with 193 additions and 0 deletions

View File

View File

@ -0,0 +1,64 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
sequelize.define('device', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
dongle_id: {
allowNull: false,
type: DataTypes.TEXT
},
account_id: {
allowNull: true,
type: DataTypes.INTEGER
},
imei: {
allowNull: true,
type: DataTypes.TEXT
},
serial: {
allowNull: true,
type: DataTypes.TEXT
},
device_type: {
allowNull: true,
type: DataTypes.TEXT
},
public_key: {
allowNull: true,
type: DataTypes.TEXT
},
created: {
allowNull: true,
type: DataTypes.INTEGER
},
last_ping: {
allowNull: true,
type: DataTypes.INTEGER
},
storage_used: {
allowNull: true,
type: DataTypes.INTEGER
},
max_storage: {
allowNull: true,
type: DataTypes.INTEGER
},
ignore_uploads: {
allowNull: true,
type: DataTypes.INTEGER
},
nickname: {
allowNull: true,
type: DataTypes.TEXT
},
},
{
timestamps: false,
}
);
};

View File

@ -0,0 +1,72 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
sequelize.define('drives', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
identifier: {
allowNull: false,
type: DataTypes.TEXT
},
dongle_id: {
allowNull: true,
type: DataTypes.TEXT
},
max_segment: {
allowNull: true,
type: DataTypes.INTEGER
},
duration: {
allowNull: true,
type: DataTypes.NUMBER
},
distance_meters: {
allowNull: true,
type: DataTypes.NUMBER
},
filesize: {
allowNull: true,
type: DataTypes.INTEGER
},
upload_complete: {
allowNull: true,
type: DataTypes.BOOLEAN
},
is_processed: {
allowNull: true,
type: DataTypes.BOOLEAN
},
created: {
allowNull: true,
type: DataTypes.INTEGER
},
last_updated: {
allowNull: true,
type: DataTypes.INTEGER
},
is_preserved: {
allowNull: true,
type: DataTypes.BOOLEAN
},
is_deleted: {
allowNull: true,
type: DataTypes.BOOLEAN
},
drive_date: {
allowNull: true,
type: DataTypes.INTEGER
},
is_physically_removed: {
allowNull: true,
type: DataTypes.BOOLEAN
},
metadata: {
allowNull: true,
type: DataTypes.TEXT
},
});
};

View File

@ -0,0 +1,19 @@
const { Sequelize } = require('sequelize');
const sequelize = new Sequelize({
dialect: 'sqlite',
storage: 'database.sqlite',
logQueryParameters: true,
benchmark: true
});
const modelDefiners = [
require('./devices.model'),
require('./drives.model'),
require('./users.model'),
];
for (const modelDefiner of modelDefiners) {
modelDefiner(sequelize);
}
module.exports = sequelize;

View File

@ -0,0 +1,38 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
sequelize.define('accounts', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
email: {
allowNull: false,
type: DataTypes.TEXT
},
password: {
allowNull: true,
type: DataTypes.INTEGER
},
created: {
allowNull: true,
type: DataTypes.NUMBER
},
last_ping: {
allowNull: true,
type: DataTypes.NUMBER
},
"2fa_token": {
allowNull: true,
type: DataTypes.TEXT
},
admin: {
allowNull: true,
type: DataTypes.INTEGER
},
}, {
timestamps: false,
});
};