62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
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;
|
|
|
|
}
|