import { Sequelize, DataTypes } from 'sequelize' import { Application } from '../declarations' export default (app: Application): any => { const sequelizeClient: Sequelize = app.get('sequelizeClient') const messages = sequelizeClient.define('messages', { id: { type: DataTypes.INTEGER, allowNull: false, autoIncrement: true, primaryKey: true }, text: { type: DataTypes.STRING, allowNull: false }, senderId: { type: DataTypes.STRING, allowNull: false }, conversationId: { type: DataTypes.INTEGER, allowNull: false } }, { hooks: { beforeCount (options: any) { options.raw = true } } }); (messages as any).associate = (models: any): any => { (messages as any).belongsTo(models.conversation) // (messages as any).hasMany(models.messages_status, { foreignKey: 'message_id' }) } return messages }