import { Model, DataTypes } from 'sequelize'; import { InvoiceApprovalAttributes } from 'shared/interfaces/invoiceApproval.interface'; import { sequelize } from './index'; class InvoiceApproval extends Model implements InvoiceApprovalAttributes { public id?: number; public invoice_id!: number; public approved_by!: number; public approval_role_id!: number; public comment?: string; public created_at?: Date; } InvoiceApproval.init( { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, }, invoice_id: { type: DataTypes.INTEGER, allowNull: false, references: { model: 'invoices', key: 'id', }, onUpdate: 'CASCADE', onDelete: 'CASCADE', }, approved_by: { type: DataTypes.INTEGER, allowNull: false, }, approval_role_id: { type: DataTypes.INTEGER, allowNull: false, }, comment: { type: DataTypes.TEXT, allowNull: true, }, created_at: { type: DataTypes.DATE, defaultValue: DataTypes.NOW, }, }, { sequelize, modelName: 'InvoiceApproval', tableName: 'invoice_approval', timestamps: false, } ); export default InvoiceApproval;