const sequelize = require('../config/database'); const User = require('./User'); const Item = require('./Item'); const Rental = require('./Rental'); const Message = require('./Message'); User.hasMany(Item, { as: 'ownedItems', foreignKey: 'ownerId' }); Item.belongsTo(User, { as: 'owner', foreignKey: 'ownerId' }); User.hasMany(Rental, { as: 'rentalsAsRenter', foreignKey: 'renterId' }); User.hasMany(Rental, { as: 'rentalsAsOwner', foreignKey: 'ownerId' }); Item.hasMany(Rental, { as: 'rentals', foreignKey: 'itemId' }); Rental.belongsTo(Item, { as: 'item', foreignKey: 'itemId' }); Rental.belongsTo(User, { as: 'renter', foreignKey: 'renterId' }); Rental.belongsTo(User, { as: 'owner', foreignKey: 'ownerId' }); User.hasMany(Message, { as: 'sentMessages', foreignKey: 'senderId' }); User.hasMany(Message, { as: 'receivedMessages', foreignKey: 'receiverId' }); Message.belongsTo(User, { as: 'sender', foreignKey: 'senderId' }); Message.belongsTo(User, { as: 'receiver', foreignKey: 'receiverId' }); Message.hasMany(Message, { as: 'replies', foreignKey: 'parentMessageId' }); Message.belongsTo(Message, { as: 'parentMessage', foreignKey: 'parentMessageId' }); module.exports = { sequelize, User, Item, Rental, Message };