remedify-payments-be/src/invoice/invoice.entity.ts
2025-02-25 12:54:43 +05:30

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;
}