| 123456789101112131415161718192021222324252627282930 |
- const { getSequelize } = require('../database');
- const { DataTypes } = require('sequelize');
- const sequelize = getSequelize();
- const User = require('./User')(sequelize, DataTypes);
- const Directory = require('./Directory')(sequelize, DataTypes);
- const Track = require('./Track')(sequelize, DataTypes);
- const TrackPoint = require('./TrackPoint')(sequelize, DataTypes);
- const ShareLink = require('./ShareLink')(sequelize, DataTypes);
- // Associations
- User.hasMany(Directory, { foreignKey: 'userId', onDelete: 'CASCADE' });
- Directory.belongsTo(User, { foreignKey: 'userId' });
- User.hasMany(Track, { foreignKey: 'userId', onDelete: 'CASCADE' });
- Track.belongsTo(User, { foreignKey: 'userId' });
- Directory.hasMany(Directory, { as: 'children', foreignKey: 'parentId' });
- Directory.belongsTo(Directory, { as: 'parent', foreignKey: 'parentId' });
- Directory.hasMany(Track, { foreignKey: 'directoryId' });
- Track.belongsTo(Directory, { foreignKey: 'directoryId' });
- Track.hasMany(TrackPoint, { foreignKey: 'trackId', onDelete: 'CASCADE' });
- TrackPoint.belongsTo(Track, { foreignKey: 'trackId' });
- Track.hasOne(ShareLink, { foreignKey: 'trackId', onDelete: 'CASCADE' });
- ShareLink.belongsTo(Track, { foreignKey: 'trackId' });
- module.exports = { User, Directory, Track, TrackPoint, ShareLink };
|