mirror of
https://github.com/jorgev259/soc_site-astro.git
synced 2025-06-29 07:57:41 +00:00
Remove sequelize models
This commit is contained in:
parent
c49bcf070e
commit
e8530f0f01
22 changed files with 0 additions and 506 deletions
|
|
@ -1,16 +0,0 @@
|
||||||
import { Sequelize, type Options } from '@sequelize/core'
|
|
||||||
|
|
||||||
import { SEQUELIZE } from 'astro:env/server'
|
|
||||||
|
|
||||||
import Album from './models/album';
|
|
||||||
import Artist from './models/artist';
|
|
||||||
import Category from './models/category';
|
|
||||||
import Config from './models/config';
|
|
||||||
import User from './models/user';
|
|
||||||
|
|
||||||
const envOptions: Options = JSON.parse(SEQUELIZE)
|
|
||||||
envOptions.models = [Album, Artist, Category, Config, User]
|
|
||||||
|
|
||||||
const db = new Sequelize(envOptions)
|
|
||||||
|
|
||||||
export default db
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
import { DataTypes, Model, type BelongsToManyGetAssociationsMixin, type CreationOptional, type InferAttributes, type InferCreationAttributes, type NonAttribute } from '@sequelize/core';
|
|
||||||
import { Attribute, PrimaryKey, AutoIncrement, Default, BelongsToMany, Table } from '@sequelize/core/decorators-legacy';
|
|
||||||
|
|
||||||
import Category from './category';
|
|
||||||
import Artist from './artist';
|
|
||||||
|
|
||||||
Table({ tableName: 'albums' })
|
|
||||||
export default class Album extends Model<InferAttributes<Album>, InferCreationAttributes<Album>> {
|
|
||||||
@Attribute(DataTypes.INTEGER)
|
|
||||||
@PrimaryKey
|
|
||||||
@AutoIncrement
|
|
||||||
declare id: CreationOptional<number>
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare title: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.TEXT)
|
|
||||||
declare subTitle: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.DATEONLY)
|
|
||||||
declare releaseDate: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare label: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare vgmdb: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare description: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@Default('hidden')
|
|
||||||
declare status: CreationOptional<string>
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@Default('#ff7c12')
|
|
||||||
declare headerColor: CreationOptional<string>
|
|
||||||
|
|
||||||
@BelongsToMany(() => Category, { through: 'Album_Category', foreignKey: { onDelete: 'SET NULL' } })
|
|
||||||
declare categories?: NonAttribute<Category[]>
|
|
||||||
|
|
||||||
@BelongsToMany(() => Artist, { through: 'Album_Artist', foreignKey: { onDelete: 'SET NULL' } })
|
|
||||||
declare artists?: NonAttribute<Artist[]>
|
|
||||||
|
|
||||||
declare getArtists: BelongsToManyGetAssociationsMixin<Artist>
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
import { PLACEHOLDER } from 'constants'
|
|
||||||
|
|
||||||
const animation = (sequelize) => {
|
|
||||||
sequelize.define(
|
|
||||||
'animation',
|
|
||||||
{
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
title: { type: DataTypes.STRING, unique: true },
|
|
||||||
subTitle: { type: DataTypes.STRING },
|
|
||||||
releaseDate: DataTypes.DATEONLY,
|
|
||||||
placeholder: { type: DataTypes.TEXT, defaultValue: PLACEHOLDER },
|
|
||||||
headerColor: { type: DataTypes.STRING, defaultValue: '#ffffff' }
|
|
||||||
},
|
|
||||||
{ freezeTableName: true }
|
|
||||||
)
|
|
||||||
|
|
||||||
sequelize.define(
|
|
||||||
'studio',
|
|
||||||
{
|
|
||||||
slug: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
name: DataTypes.STRING
|
|
||||||
},
|
|
||||||
{ freezeTableName: true }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default animation
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
import { DataTypes, Model, type CreationOptional, type InferAttributes, type InferCreationAttributes, type NonAttribute } from '@sequelize/core';
|
|
||||||
import { Attribute, PrimaryKey, AutoIncrement, Default, BelongsToMany, Table, NotNull, HasMany } from '@sequelize/core/decorators-legacy';
|
|
||||||
|
|
||||||
import Album from './album';
|
|
||||||
|
|
||||||
@Table({ freezeTableName: true })
|
|
||||||
export default class Artist extends Model<InferAttributes<Artist>, InferCreationAttributes<Artist>> {
|
|
||||||
@PrimaryKey
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare slug: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@NotNull
|
|
||||||
declare name: string
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { DataTypes, Model, type CreationOptional, type InferAttributes, type InferCreationAttributes } from '@sequelize/core';
|
|
||||||
import { Attribute, PrimaryKey, Table } from '@sequelize/core/decorators-legacy';
|
|
||||||
|
|
||||||
@Table({ freezeTableName: true })
|
|
||||||
export default class Category extends Model<InferAttributes<Category>, InferCreationAttributes<Category>> {
|
|
||||||
@PrimaryKey
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare name: string
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Classification = sequelize.define(
|
|
||||||
'classification',
|
|
||||||
{
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
primaryKey: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return Classification
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
|
|
||||||
const model = (sequelize) => {
|
|
||||||
sequelize.define('comment', {
|
|
||||||
text: DataTypes.STRING(300),
|
|
||||||
anon: DataTypes.BOOLEAN
|
|
||||||
})
|
|
||||||
|
|
||||||
sequelize.define('rating', { score: DataTypes.INTEGER })
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
import { DataTypes, Model, type CreationOptional, type InferAttributes, type InferCreationAttributes } from '@sequelize/core';
|
|
||||||
import { Attribute, PrimaryKey, AutoIncrement, Default, Table } from '@sequelize/core/decorators-legacy';
|
|
||||||
|
|
||||||
@Table({ tableName: 'config' })
|
|
||||||
export default class Config extends Model<InferAttributes<Config>, InferCreationAttributes<Config>> {
|
|
||||||
@Attribute(DataTypes.ENUM('banner', 'banner-position'))
|
|
||||||
@PrimaryKey
|
|
||||||
declare name: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare value: string
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Disc = sequelize.define('disc', {
|
|
||||||
number: DataTypes.INTEGER,
|
|
||||||
body: DataTypes.TEXT
|
|
||||||
})
|
|
||||||
|
|
||||||
return Disc
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Download = sequelize.define('download', {
|
|
||||||
title: DataTypes.STRING,
|
|
||||||
small: DataTypes.BOOLEAN
|
|
||||||
})
|
|
||||||
|
|
||||||
return Download
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
import { PLACEHOLDER } from 'constants'
|
|
||||||
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Game = sequelize.define(
|
|
||||||
'game',
|
|
||||||
{
|
|
||||||
slug: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING
|
|
||||||
},
|
|
||||||
releaseDate: DataTypes.DATEONLY,
|
|
||||||
placeholder: { type: DataTypes.TEXT, defaultValue: PLACEHOLDER },
|
|
||||||
headerColor: { type: DataTypes.STRING, defaultValue: '#ffffff' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return Game
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Link = sequelize.define('link', {
|
|
||||||
url: DataTypes.STRING,
|
|
||||||
directUrl: DataTypes.STRING,
|
|
||||||
provider: DataTypes.STRING,
|
|
||||||
custom: DataTypes.STRING
|
|
||||||
})
|
|
||||||
|
|
||||||
return Link
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
return sequelize.define('log', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
autoIncrement: true,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
action: DataTypes.STRING,
|
|
||||||
data: {
|
|
||||||
type: DataTypes.TEXT,
|
|
||||||
allowNull: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Platform = sequelize.define(
|
|
||||||
'platform',
|
|
||||||
{
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
autoIncrement: true,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING
|
|
||||||
},
|
|
||||||
type: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
defaultValue: 'Game'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return Platform
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Publisher = sequelize.define(
|
|
||||||
'publisher',
|
|
||||||
{
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
autoIncrement: true,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return Publisher
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
|
|
||||||
const request = (sequelize) =>
|
|
||||||
sequelize.define('request', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
title: DataTypes.STRING,
|
|
||||||
link: DataTypes.STRING,
|
|
||||||
user: DataTypes.STRING,
|
|
||||||
userID: DataTypes.STRING,
|
|
||||||
state: { type: DataTypes.STRING, allowNull: false },
|
|
||||||
donator: { type: DataTypes.BOOLEAN, allowNull: false },
|
|
||||||
reason: DataTypes.STRING,
|
|
||||||
comments: DataTypes.STRING,
|
|
||||||
message: DataTypes.STRING
|
|
||||||
})
|
|
||||||
|
|
||||||
export default request
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Role = sequelize.define('role', {
|
|
||||||
name: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
permissions: DataTypes.JSON
|
|
||||||
})
|
|
||||||
|
|
||||||
return Role
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
import { PLACEHOLDER } from 'constants'
|
|
||||||
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Series = sequelize.define(
|
|
||||||
'series',
|
|
||||||
{
|
|
||||||
slug: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
primaryKey: true
|
|
||||||
},
|
|
||||||
name: { type: DataTypes.STRING },
|
|
||||||
placeholder: { type: DataTypes.TEXT, defaultValue: PLACEHOLDER },
|
|
||||||
headerColor: { type: DataTypes.STRING, defaultValue: '#ffffff' }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
return Series
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
const model = (sequelize) => {
|
|
||||||
const Store = sequelize.define('store', {
|
|
||||||
url: DataTypes.STRING,
|
|
||||||
provider: DataTypes.STRING
|
|
||||||
})
|
|
||||||
return Store
|
|
||||||
}
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
import { DataTypes } from 'sequelize'
|
|
||||||
|
|
||||||
const model = (sequelize) =>
|
|
||||||
sequelize.define('submission', {
|
|
||||||
id: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
primaryKey: true,
|
|
||||||
autoIncrement: true
|
|
||||||
},
|
|
||||||
state: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
defaultValue: 'pending'
|
|
||||||
},
|
|
||||||
title: DataTypes.STRING,
|
|
||||||
vgmdb: {
|
|
||||||
type: DataTypes.STRING,
|
|
||||||
allowNull: true
|
|
||||||
},
|
|
||||||
links: DataTypes.TEXT,
|
|
||||||
score: {
|
|
||||||
type: DataTypes.INTEGER,
|
|
||||||
defaultValue: 0
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
export default model
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
import { DataTypes, Model, type InferAttributes, type InferCreationAttributes } from '@sequelize/core'
|
|
||||||
import { Attribute, NotNull, PrimaryKey } from '@sequelize/core/decorators-legacy'
|
|
||||||
|
|
||||||
export default class User extends Model<InferAttributes<User>, InferCreationAttributes<User>> {
|
|
||||||
@PrimaryKey
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
declare username: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@NotNull
|
|
||||||
declare email: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@NotNull
|
|
||||||
declare password: string
|
|
||||||
|
|
||||||
@Attribute(DataTypes.STRING)
|
|
||||||
@NotNull
|
|
||||||
declare imgId: string
|
|
||||||
}
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
export default function relations(sequelize) {
|
|
||||||
const {
|
|
||||||
album,
|
|
||||||
classification,
|
|
||||||
disc,
|
|
||||||
download,
|
|
||||||
link,
|
|
||||||
publisher,
|
|
||||||
game,
|
|
||||||
series,
|
|
||||||
platform,
|
|
||||||
artist,
|
|
||||||
category,
|
|
||||||
store,
|
|
||||||
animation,
|
|
||||||
studio,
|
|
||||||
user,
|
|
||||||
role,
|
|
||||||
forgor,
|
|
||||||
log,
|
|
||||||
comment,
|
|
||||||
rating,
|
|
||||||
submission,
|
|
||||||
request
|
|
||||||
} = sequelize.models
|
|
||||||
|
|
||||||
user.belongsToMany(role, { through: 'User_Role' })
|
|
||||||
log.belongsTo(user, { foreignKey: 'username' })
|
|
||||||
forgor.belongsTo(user, { foreignKey: 'username' })
|
|
||||||
|
|
||||||
submission.belongsTo(user)
|
|
||||||
submission.belongsTo(request)
|
|
||||||
user.hasMany(submission)
|
|
||||||
request.hasMany(submission)
|
|
||||||
|
|
||||||
classification.belongsToMany(album, { through: 'Album_Classification' })
|
|
||||||
|
|
||||||
disc.belongsTo(album)
|
|
||||||
|
|
||||||
download.hasMany(link)
|
|
||||||
link.belongsTo(download)
|
|
||||||
|
|
||||||
game.belongsToMany(publisher, { through: 'Publisher_Game' })
|
|
||||||
game.belongsToMany(album, { through: 'Album_Game' })
|
|
||||||
game.belongsToMany(series, { through: 'Series_Game' })
|
|
||||||
|
|
||||||
game.belongsToMany(platform, { through: 'Game_Platform' })
|
|
||||||
platform.belongsToMany(game, { through: 'Game_Platform' })
|
|
||||||
|
|
||||||
album.belongsToMany(artist, { onDelete: 'SET NULL', through: 'Album_Artist' })
|
|
||||||
album.belongsToMany(classification, {
|
|
||||||
onDelete: 'SET NULL',
|
|
||||||
through: 'Album_Classification'
|
|
||||||
})
|
|
||||||
// album.belongsToMany(category, { onDelete: 'SET NULL', through: 'Album_Category' })
|
|
||||||
album.belongsToMany(platform, {
|
|
||||||
onDelete: 'SET NULL',
|
|
||||||
through: 'Album_Platform'
|
|
||||||
})
|
|
||||||
album.belongsToMany(game, { onDelete: 'SET NULL', through: 'Album_Game' })
|
|
||||||
album.belongsToMany(animation, { through: 'Album_Animation' })
|
|
||||||
album.hasMany(disc, { onDelete: 'SET NULL' })
|
|
||||||
album.hasMany(download, { onDelete: 'SET NULL' })
|
|
||||||
album.hasMany(store, { onDelete: 'SET NULL' })
|
|
||||||
album.belongsToMany(album, {
|
|
||||||
onDelete: 'SET NULL',
|
|
||||||
through: 'related_album',
|
|
||||||
as: 'related'
|
|
||||||
})
|
|
||||||
|
|
||||||
platform.belongsToMany(album, { through: 'Album_Platform' })
|
|
||||||
|
|
||||||
publisher.belongsToMany(game, { through: 'Publisher_Game' })
|
|
||||||
|
|
||||||
series.belongsToMany(game, { through: 'Series_Game' })
|
|
||||||
|
|
||||||
animation.belongsToMany(studio, { through: 'Studio_Animation' })
|
|
||||||
studio.belongsToMany(animation, { through: 'Studio_Animation' })
|
|
||||||
|
|
||||||
animation.belongsToMany(album, { through: 'Album_Animation' })
|
|
||||||
|
|
||||||
album.hasMany(comment, { onDelete: 'SET NULL' })
|
|
||||||
comment.belongsTo(album)
|
|
||||||
user.hasMany(comment, { foreignKey: 'username' })
|
|
||||||
comment.belongsTo(user, { foreignKey: 'username' })
|
|
||||||
|
|
||||||
album.hasMany(rating)
|
|
||||||
rating.belongsTo(album)
|
|
||||||
user.hasMany(rating, { foreignKey: 'username' })
|
|
||||||
rating.belongsTo(user, { foreignKey: 'username' })
|
|
||||||
|
|
||||||
user.belongsToMany(album, { through: 'favorites', foreignKey: 'username' })
|
|
||||||
album.belongsToMany(user, { through: 'favorites' })
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue