49 lines
2.1 KiB
JavaScript
49 lines
2.1 KiB
JavaScript
const sequelize = require('../config/database');
|
|
const User = require('./User');
|
|
const Item = require('./Item');
|
|
const Rental = require('./Rental');
|
|
const Message = require('./Message');
|
|
const ItemRequest = require('./ItemRequest');
|
|
const ItemRequestResponse = require('./ItemRequestResponse');
|
|
const UserAddress = require('./UserAddress');
|
|
|
|
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' });
|
|
|
|
User.hasMany(ItemRequest, { as: 'itemRequests', foreignKey: 'requesterId' });
|
|
ItemRequest.belongsTo(User, { as: 'requester', foreignKey: 'requesterId' });
|
|
|
|
User.hasMany(ItemRequestResponse, { as: 'itemRequestResponses', foreignKey: 'responderId' });
|
|
ItemRequest.hasMany(ItemRequestResponse, { as: 'responses', foreignKey: 'itemRequestId' });
|
|
ItemRequestResponse.belongsTo(User, { as: 'responder', foreignKey: 'responderId' });
|
|
ItemRequestResponse.belongsTo(ItemRequest, { as: 'itemRequest', foreignKey: 'itemRequestId' });
|
|
ItemRequestResponse.belongsTo(Item, { as: 'existingItem', foreignKey: 'existingItemId' });
|
|
|
|
User.hasMany(UserAddress, { as: 'addresses', foreignKey: 'userId' });
|
|
UserAddress.belongsTo(User, { as: 'user', foreignKey: 'userId' });
|
|
|
|
module.exports = {
|
|
sequelize,
|
|
User,
|
|
Item,
|
|
Rental,
|
|
Message,
|
|
ItemRequest,
|
|
ItemRequestResponse,
|
|
UserAddress
|
|
}; |