File size: 1,274 Bytes
1c7eff7
 
 
 
 
 
 
 
178b3d8
 
 
1c7eff7
178b3d8
1c7eff7
 
 
 
 
 
 
 
 
 
178b3d8
1c7eff7
 
 
 
 
 
 
 
 
178b3d8
1c7eff7
 
 
178b3d8
1c7eff7
 
 
 
 
 
 
178b3d8
1c7eff7
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { Model, DataTypes } from 'sequelize';
import { InvoiceApprovalAttributes } from 'shared/interfaces/invoiceApproval.interface';
import { sequelize } from './index';


class InvoiceApproval extends Model<InvoiceApprovalAttributes>
  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;