2.4.1.3 Using an ORM (Sequelize Example)

Sequelize Model Setup:

// backend/src/models/User.js
const { DataTypes } = require('sequelize');
const sequelize = require('../config/db');

const User = sequelize.define('User', {
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true
  },
  passwordHash: {
    type: DataTypes.STRING,
    allowNull: false
  },
  // Additional fields (username, walletAddress, etc.)
}, {
  tableName: 'Users'
});

module.exports = User;

Associations (Many-to-One, Many-to-Many):

// backend/src/models/index.js
const User = require('./User');
const Post = require('./Post');
const Syndicate = require('./Syndicate');
const SyndicateMember = require('./SyndicateMember');
// ... etc.

// A user has many posts
User.hasMany(Post, { foreignKey: 'userId' });
Post.belongsTo(User, { foreignKey: 'userId' });

// Syndicate <-> User relationship via SyndicateMember
Syndicate.belongsToMany(User, { through: SyndicateMember, foreignKey: 'syndicateId' });
User.belongsToMany(Syndicate, { through: SyndicateMember, foreignKey: 'userId' });

// Export all
module.exports = { User, Post, Syndicate, SyndicateMember, ... };

Last updated