tududi/backend/models/backup.js
Chris bf281b740d
Feat backups (#686)
* Scaffold backups

* Add FFlags

* fixup! Add FFlags

* fixup! fixup! Add FFlags

* fixup! fixup! fixup! Add FFlags
2025-12-09 08:00:46 +02:00

62 lines
1.7 KiB
JavaScript

const { DataTypes } = require('sequelize');
const { uid } = require('../utils/uid');
module.exports = (sequelize) => {
const Backup = sequelize.define(
'Backup',
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
uid: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
defaultValue: uid,
},
user_id: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'users',
key: 'id',
},
},
file_path: {
type: DataTypes.STRING,
allowNull: false,
comment: 'Path to the backup file on disk',
},
file_size: {
type: DataTypes.INTEGER,
allowNull: false,
comment: 'Size of backup file in bytes',
},
item_counts: {
type: DataTypes.JSON,
allowNull: true,
comment: 'JSON object with counts of backed up items',
},
version: {
type: DataTypes.STRING,
allowNull: false,
defaultValue: '1.0',
},
},
{
tableName: 'backups',
indexes: [
{
fields: ['user_id'],
},
{
fields: ['created_at'],
},
],
}
);
return Backup;
};