import { Table, Column, Model, Default, DataType, ForeignKey } from 'sequelize-typescript'; import Payment from 'src/payment/payment.entity'; @Table({ tableName: 'invoice' , paranoid : true}) export default class Invoice extends Model { @Column({ type: DataType.BIGINT, allowNull: false }) user_id: number; @ForeignKey(() => Payment) @Column({ type: DataType.BIGINT, allowNull: false, field: 'payment_id' }) payment_id: number; @Column({ type: DataType.TEXT, field: 'invoice_number' }) invoice_number: string; @Column({ type: DataType.NUMBER, field: 'amount' }) amount: number; @Column({ type: DataType.NUMBER, field: 'remaining_balance' }) remaining_balance: number; @Column({ type: DataType.NUMBER, field: 'tax' }) tax: number; @Column({ type: DataType.DATEONLY, field: 'issue_date' }) issue_date: Date; @Column({ type: DataType.DATEONLY, field: 'due_date' }) due_date: Date; @Column({ type: DataType.TEXT, field: 'status' }) status: string; @Default(new Date()) @Column({ type: DataType.DATEONLY, field: 'validFrom' }) valid_from: Date; @Default(new Date("2070-12-31")) @Column({ type: DataType.DATEONLY, field: 'validTill' }) valid_till: Date; @Column({ type: DataType.DATEONLY, field: 'createdAt' }) created_at: Date; @Column({ type: DataType.DATEONLY, field: 'updatedAt' }) updated_at: Date; @Column({ type: DataType.TEXT, field: 'createdBy' }) created_by: string; @Column({ type: DataType.TEXT, field: 'modifiedBy' }) modified_by: string; @Column({ type: DataType.DATEONLY, field: 'deletedAt' }) deleted_at: Date; @Column({ type: DataType.NUMBER, field: 'version' }) version: number; }