import { BaseCoreModel } from 'src/core/modules/data/model/base-core.model'; import { TABLE_NAME } from 'src/core/strings/constants/table.constants'; import { Column, Entity, JoinColumn, ManyToOne, OneToOne } from 'typeorm'; import { RefundItemEntity } from '../../domain/entities/refund-item.entity'; import { TransactionItemModel } from 'src/modules/transaction/transaction/data/models/transaction-item.model'; import { RefundModel } from './refund.model'; @Entity(TABLE_NAME.REFUND_ITEM) export class RefundItemModel extends BaseCoreModel implements RefundItemEntity { @Column('decimal', { name: 'qty_refund', nullable: true }) qty_refund: number; @Column('decimal', { name: 'refund_total', nullable: true }) refund_total: number; // transaction to refund @Column('decimal', { name: 'refund_item_id', nullable: true }) refund_item_id: number; @ManyToOne(() => RefundModel, (model) => model.refund_items, { onDelete: 'CASCADE', onUpdate: 'CASCADE', }) @JoinColumn({ name: 'refund_item_id' }) refund: RefundModel; // transaction to transaction item @Column('varchar', { name: 'transaction_item_id', nullable: true }) transaction_item_id: string; @ManyToOne(() => TransactionItemModel, (model) => model.refunds, { onDelete: 'CASCADE', onUpdate: 'CASCADE', }) @JoinColumn({ name: 'transaction_item_id' }) transaction_item: TransactionItemModel; }