49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, ManyToOne, OneToMany } from 'typeorm';
|
|||
|
|
import { Contract } from './contract.entity';
|
||
|
|
import { FinancialRecord } from '../finance/financial-record.entity';
|
||
|
|
|
||
|
|
@Entity('payment_terms')
|
||
|
|
export class PaymentTerm {
|
||
|
|
@PrimaryGeneratedColumn('uuid')
|
||
|
|
id: string;
|
||
|
|
|
||
|
|
@Column({ type: 'uuid', nullable: true })
|
||
|
|
contract_id: string;
|
||
|
|
|
||
|
|
@ManyToOne(() => Contract, contract => contract.payment_terms)
|
||
|
|
contract: Contract;
|
||
|
|
|
||
|
|
@Column({ type: 'integer', nullable: false })
|
||
|
|
sequence: number;
|
||
|
|
|
||
|
|
@Column({ type: 'text', nullable: false })
|
||
|
|
description: string;
|
||
|
|
|
||
|
|
@Column({ type: 'decimal', precision: 5, scale: 2, nullable: false })
|
||
|
|
percentage: number;
|
||
|
|
|
||
|
|
@Column({ type: 'decimal', precision: 18, scale: 2, nullable: false })
|
||
|
|
amount: number;
|
||
|
|
|
||
|
|
@Column({ type: 'varchar', length: 10, nullable: false })
|
||
|
|
currency: string;
|
||
|
|
|
||
|
|
@Column({ type: 'decimal', precision: 18, scale: 2, nullable: false })
|
||
|
|
rmb_equivalent: number;
|
||
|
|
|
||
|
|
@Column({ type: 'date', nullable: true })
|
||
|
|
due_date: Date;
|
||
|
|
|
||
|
|
@Column({ type: 'varchar', length: 50, nullable: false })
|
||
|
|
status: string;
|
||
|
|
|
||
|
|
@CreateDateColumn()
|
||
|
|
created_at: Date;
|
||
|
|
|
||
|
|
@UpdateDateColumn()
|
||
|
|
updated_at: Date;
|
||
|
|
|
||
|
|
@OneToMany(() => FinancialRecord, financialRecord => financialRecord.payment_term)
|
||
|
|
financial_records: FinancialRecord[];
|
||
|
|
}
|