Starting db migration file

This commit is contained in:
advplyr 2023-03-15 17:42:35 -05:00
parent b2e1e24ca5
commit c738e35a8c
14 changed files with 477 additions and 39 deletions

View file

@ -23,16 +23,21 @@ module.exports = (sequelize) => {
},
mediaItemId: DataTypes.UUIDV4,
mediaItemType: DataTypes.STRING,
index: DataTypes.INTEGER
index: DataTypes.INTEGER,
startOffset: DataTypes.INTEGER,
duration: DataTypes.INTEGER,
title: DataTypes.STRING,
mimeType: DataTypes.STRING,
codec: DataTypes.STRING
}, {
sequelize,
modelName: 'AudioTrack'
})
const { Book, PodcastEpisode, FileMetadata } = sequelize.models
const { Book, PodcastEpisode, MediaFile } = sequelize.models
FileMetadata.hasOne(AudioTrack)
AudioTrack.belongsTo(FileMetadata)
MediaFile.hasOne(AudioTrack)
AudioTrack.belongsTo(MediaFile)
Book.hasMany(AudioTrack, {
foreignKey: 'mediaItemId',

View file

@ -11,8 +11,8 @@ module.exports = (sequelize) => {
},
index: DataTypes.INTEGER,
title: DataTypes.STRING,
start: DataTypes.INTEGER,
end: DataTypes.INTEGER
start: DataTypes.FLOAT,
end: DataTypes.FLOAT
}, {
sequelize,
modelName: 'BookChapter'

View file

@ -15,7 +15,7 @@ module.exports = (sequelize) => {
mediaType: DataTypes.STRING,
provider: DataTypes.STRING,
lastScan: DataTypes.DATE,
scanVersion: DataTypes.STRING
lastScanVersion: DataTypes.STRING
}, {
sequelize,
modelName: 'Library'

View file

@ -20,7 +20,7 @@ module.exports = (sequelize) => {
ctime: DataTypes.DATE(6),
birthtime: DataTypes.DATE(6),
lastScan: DataTypes.DATE,
scanVersion: DataTypes.STRING
lastScanVersion: DataTypes.STRING
}, {
sequelize,
modelName: 'LibraryItem'

View file

@ -0,0 +1,29 @@
const { DataTypes, Model } = require('sequelize')
module.exports = (sequelize) => {
class MediaFile extends Model { }
MediaFile.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
formatName: DataTypes.STRING,
formatNameLong: DataTypes.STRING,
duration: DataTypes.FLOAT,
bitrate: DataTypes.INTEGER,
size: DataTypes.BIGINT,
tags: DataTypes.JSON
}, {
sequelize,
modelName: 'MediaFile'
})
const { FileMetadata } = sequelize.models
FileMetadata.hasOne(MediaFile)
MediaFile.belongsTo(FileMetadata)
return MediaFile
}

View file

@ -0,0 +1,49 @@
const { DataTypes, Model } = require('sequelize')
module.exports = (sequelize) => {
class MediaStream extends Model { }
MediaStream.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
index: DataTypes.INTEGER,
codecType: DataTypes.STRING,
codec: DataTypes.STRING,
channels: DataTypes.INTEGER,
channelLayout: DataTypes.STRING,
bitrate: DataTypes.INTEGER,
timeBase: DataTypes.STRING,
duration: DataTypes.FLOAT,
sampleRate: DataTypes.INTEGER,
language: DataTypes.STRING,
default: DataTypes.BOOLEAN,
// Video stream specific
profile: DataTypes.STRING,
width: DataTypes.INTEGER,
height: DataTypes.INTEGER,
codedWidth: DataTypes.INTEGER,
codedHeight: DataTypes.INTEGER,
pixFmt: DataTypes.STRING,
level: DataTypes.INTEGER,
frameRate: DataTypes.FLOAT,
colorSpace: DataTypes.STRING,
colorRange: DataTypes.STRING,
chromaLocation: DataTypes.STRING,
displayAspectRatio: DataTypes.FLOAT,
// Chapters JSON
chapters: DataTypes.JSON
}, {
sequelize,
modelName: 'MediaStream'
})
const { MediaFile } = sequelize.models
MediaFile.hasMany(MediaStream)
MediaStream.belongsTo(MediaFile)
return MediaStream
}

View file

@ -0,0 +1,33 @@
const { DataTypes, Model } = require('sequelize')
module.exports = (sequelize) => {
class Notification extends Model { }
Notification.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
eventName: DataTypes.STRING,
urls: DataTypes.TEXT, // JSON array of urls
titleTemplate: DataTypes.STRING(1000),
bodyTemplate: DataTypes.TEXT,
type: DataTypes.STRING,
lastFiredAt: DataTypes.DATE,
lastAttemptFailed: DataTypes.BOOLEAN,
numConsecutiveFailedAttempts: DataTypes.INTEGER,
numTimesFired: DataTypes.INTEGER,
enabled: DataTypes.BOOLEAN
}, {
sequelize,
modelName: 'Notification'
})
const { Library } = sequelize.models
Library.hasMany(Notification)
Notification.belongsTo(Library)
return Notification
}

View file

@ -14,8 +14,14 @@ module.exports = (sequelize) => {
pash: DataTypes.STRING,
type: DataTypes.STRING,
token: DataTypes.STRING,
isActive: DataTypes.BOOLEAN,
isLocked: DataTypes.BOOLEAN,
isActive: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
isLocked: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
lastSeen: DataTypes.DATE
}, {
sequelize,

View file

@ -0,0 +1,25 @@
const { DataTypes, Model } = require('sequelize')
module.exports = (sequelize) => {
class UserPermission extends Model { }
UserPermission.init({
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true
},
key: DataTypes.STRING,
value: DataTypes.STRING
}, {
sequelize,
modelName: 'UserPermission'
})
const { User } = sequelize.models
User.hasMany(UserPermission)
UserPermission.belongsTo(User)
return UserPermission
}