Files
adastra_api/src/database/mysql.js
T
julien 66821427be fix(skydive): migrate author field from ObjectId to UUID string
- Register SkydiverProfile model in mysql.js (fixes startup crash on association)
- Replace $toObjectId with direct string match in all 12 aggregation queries
- Guard toJSONFor on all Mongo models to fall back to MySQL user.toProfileJSONFor()
  when author is a UUID string (restores username/image in API responses)
- Pass user to toJSONFor() everywhere instead of null
- Remove dead .populate('author') calls (author: String has no ref)
- Fix ownership check in /last route: compare author string to req.payload.id
  instead of the now-absent author.username property
2026-04-26 04:27:47 +02:00

43 lines
2.0 KiB
JavaScript

var DataTypes = require("sequelize").DataTypes;
const sequelize = require('./config/sequelize');
const ArticleModel = require('./models/mysql/Article');
//const ArticleTageModel = require('./models/mysql/ArticleTag');
const BrandModel = require('./models/mysql/Brand');
const CategoryModel = require('./models/mysql/Category');
const CommentModel = require('./models/mysql/Comment');
const FavoriteModel = require('./models/mysql/Favorite');
const FollowerModel = require('./models/mysql/Follower');
const PackagingModel = require('./models/mysql/Packaging');
const ProductModel = require('./models/mysql/Product');
const ProductCategoryXrefModel = require('./models/mysql/ProductCategoryXref');
const ProductTagXrefModel = require('./models/mysql/ProductTagXref');
const RoleModel = require('./models/mysql/Role');
const TagModel = require('./models/mysql/Tag');
const TagListModel = require('./models/mysql/TagList');
const UserModel = require('./models/mysql/User');
const UserRoleXrefModel = require('./models/mysql/UserRoleXref');
const SkydiverProfileModel = require('./models/mysql/SkydiverProfile');
const DB = {
sequelize,
User: UserModel(sequelize, DataTypes),
Article: ArticleModel(sequelize, DataTypes),
//ArticleTag: ArticleTageModel(sequelize, DataTypes),
Brand: BrandModel(sequelize, DataTypes),
Category: CategoryModel(sequelize, DataTypes),
Comment: CommentModel(sequelize, DataTypes),
Favorite: FavoriteModel(sequelize, DataTypes),
Follower: FollowerModel(sequelize, DataTypes),
Packaging: PackagingModel(sequelize, DataTypes),
Product: ProductModel(sequelize, DataTypes),
ProductCategoryXref: ProductCategoryXrefModel(sequelize, DataTypes),
ProductTagXref: ProductTagXrefModel(sequelize, DataTypes),
Role: RoleModel(sequelize, DataTypes),
Tag: TagModel(sequelize, DataTypes),
TagList: TagListModel(sequelize, DataTypes),
UserRoleXref: UserRoleXrefModel(sequelize, DataTypes),
SkydiverProfile: SkydiverProfileModel(),
};
module.exports = DB;