From e8530f0f01bf1bedc4a573b35ddbc7941f187f23 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Wed, 13 Nov 2024 22:45:40 -0600 Subject: [PATCH] Remove sequelize models --- src/sequelize/index.ts | 16 ----- src/sequelize/models/album.ts | 48 ------------- src/sequelize/models/animation.js | 35 ---------- src/sequelize/models/artist.ts | 15 ---- src/sequelize/models/category.ts | 10 --- src/sequelize/models/classification.js | 19 ------ src/sequelize/models/comment.js | 12 ---- src/sequelize/models/config.ts | 13 ---- src/sequelize/models/disc.js | 11 --- src/sequelize/models/download.js | 11 --- src/sequelize/models/game.js | 27 -------- src/sequelize/models/link.js | 13 ---- src/sequelize/models/log.js | 17 ----- src/sequelize/models/platform.js | 27 -------- src/sequelize/models/publisher.js | 23 ------- src/sequelize/models/request.js | 21 ------ src/sequelize/models/role.js | 14 ---- src/sequelize/models/series.js | 24 ------- src/sequelize/models/store.js | 10 --- src/sequelize/models/submission.js | 26 ------- src/sequelize/models/user.ts | 20 ------ src/sequelize/relations.js | 94 -------------------------- 22 files changed, 506 deletions(-) delete mode 100644 src/sequelize/index.ts delete mode 100644 src/sequelize/models/album.ts delete mode 100644 src/sequelize/models/animation.js delete mode 100644 src/sequelize/models/artist.ts delete mode 100644 src/sequelize/models/category.ts delete mode 100644 src/sequelize/models/classification.js delete mode 100644 src/sequelize/models/comment.js delete mode 100644 src/sequelize/models/config.ts delete mode 100644 src/sequelize/models/disc.js delete mode 100644 src/sequelize/models/download.js delete mode 100644 src/sequelize/models/game.js delete mode 100644 src/sequelize/models/link.js delete mode 100644 src/sequelize/models/log.js delete mode 100644 src/sequelize/models/platform.js delete mode 100644 src/sequelize/models/publisher.js delete mode 100644 src/sequelize/models/request.js delete mode 100644 src/sequelize/models/role.js delete mode 100644 src/sequelize/models/series.js delete mode 100644 src/sequelize/models/store.js delete mode 100644 src/sequelize/models/submission.js delete mode 100644 src/sequelize/models/user.ts delete mode 100644 src/sequelize/relations.js diff --git a/src/sequelize/index.ts b/src/sequelize/index.ts deleted file mode 100644 index e228745..0000000 --- a/src/sequelize/index.ts +++ /dev/null @@ -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 \ No newline at end of file diff --git a/src/sequelize/models/album.ts b/src/sequelize/models/album.ts deleted file mode 100644 index e91364f..0000000 --- a/src/sequelize/models/album.ts +++ /dev/null @@ -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, InferCreationAttributes> { - @Attribute(DataTypes.INTEGER) - @PrimaryKey - @AutoIncrement - declare id: CreationOptional - - @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 - - @Attribute(DataTypes.STRING) - @Default('#ff7c12') - declare headerColor: CreationOptional - - @BelongsToMany(() => Category, { through: 'Album_Category', foreignKey: { onDelete: 'SET NULL' } }) - declare categories?: NonAttribute - - @BelongsToMany(() => Artist, { through: 'Album_Artist', foreignKey: { onDelete: 'SET NULL' } }) - declare artists?: NonAttribute - - declare getArtists: BelongsToManyGetAssociationsMixin -} - diff --git a/src/sequelize/models/animation.js b/src/sequelize/models/animation.js deleted file mode 100644 index 66c8685..0000000 --- a/src/sequelize/models/animation.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/artist.ts b/src/sequelize/models/artist.ts deleted file mode 100644 index 36c3f19..0000000 --- a/src/sequelize/models/artist.ts +++ /dev/null @@ -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, InferCreationAttributes> { - @PrimaryKey - @Attribute(DataTypes.STRING) - declare slug: string - - @Attribute(DataTypes.STRING) - @NotNull - declare name: string -} diff --git a/src/sequelize/models/category.ts b/src/sequelize/models/category.ts deleted file mode 100644 index ce052ff..0000000 --- a/src/sequelize/models/category.ts +++ /dev/null @@ -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, InferCreationAttributes> { - @PrimaryKey - @Attribute(DataTypes.STRING) - declare name: string -} - diff --git a/src/sequelize/models/classification.js b/src/sequelize/models/classification.js deleted file mode 100644 index 31ecb5b..0000000 --- a/src/sequelize/models/classification.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/comment.js b/src/sequelize/models/comment.js deleted file mode 100644 index def2e3f..0000000 --- a/src/sequelize/models/comment.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/config.ts b/src/sequelize/models/config.ts deleted file mode 100644 index 2d70f00..0000000 --- a/src/sequelize/models/config.ts +++ /dev/null @@ -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, InferCreationAttributes> { - @Attribute(DataTypes.ENUM('banner', 'banner-position')) - @PrimaryKey - declare name: string - - @Attribute(DataTypes.STRING) - declare value: string -} - diff --git a/src/sequelize/models/disc.js b/src/sequelize/models/disc.js deleted file mode 100644 index 1d9ceea..0000000 --- a/src/sequelize/models/disc.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/download.js b/src/sequelize/models/download.js deleted file mode 100644 index 72b7743..0000000 --- a/src/sequelize/models/download.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/game.js b/src/sequelize/models/game.js deleted file mode 100644 index ec5c39c..0000000 --- a/src/sequelize/models/game.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/link.js b/src/sequelize/models/link.js deleted file mode 100644 index 27604ec..0000000 --- a/src/sequelize/models/link.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/log.js b/src/sequelize/models/log.js deleted file mode 100644 index 5a60c5c..0000000 --- a/src/sequelize/models/log.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/platform.js b/src/sequelize/models/platform.js deleted file mode 100644 index 2a6297b..0000000 --- a/src/sequelize/models/platform.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/publisher.js b/src/sequelize/models/publisher.js deleted file mode 100644 index a0ccdf2..0000000 --- a/src/sequelize/models/publisher.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/request.js b/src/sequelize/models/request.js deleted file mode 100644 index e9c6d1b..0000000 --- a/src/sequelize/models/request.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/role.js b/src/sequelize/models/role.js deleted file mode 100644 index 1e6b189..0000000 --- a/src/sequelize/models/role.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/series.js b/src/sequelize/models/series.js deleted file mode 100644 index f8ff517..0000000 --- a/src/sequelize/models/series.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/store.js b/src/sequelize/models/store.js deleted file mode 100644 index 2d85e21..0000000 --- a/src/sequelize/models/store.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/submission.js b/src/sequelize/models/submission.js deleted file mode 100644 index 0d0de12..0000000 --- a/src/sequelize/models/submission.js +++ /dev/null @@ -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 diff --git a/src/sequelize/models/user.ts b/src/sequelize/models/user.ts deleted file mode 100644 index 9c20e97..0000000 --- a/src/sequelize/models/user.ts +++ /dev/null @@ -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, InferCreationAttributes> { - @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 -} \ No newline at end of file diff --git a/src/sequelize/relations.js b/src/sequelize/relations.js deleted file mode 100644 index 6629730..0000000 --- a/src/sequelize/relations.js +++ /dev/null @@ -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' }) -}