import { Customer } from '../../customers/models/customer'; import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { OrderItem } from './order-item'; @Entity() export class Order { constructor(intialData: Partial = null) { if (intialData !== null) { Object.assign(this, intialData); } } @PrimaryGeneratedColumn('uuid') id: string; @Column({ name: 'customer_id', type: 'uuid' }) customerId: string; @Column({ name: 'total_amount', type: 'numeric' }) totalAmount: number; @CreateDateColumn({ name: 'created_at', type: 'timestamptz', default: 'now()', readonly: true, }) createdAt: string; @UpdateDateColumn({ name: 'updated_at', type: 'timestamptz', default: 'now()', }) updatedAt: string; @ManyToOne(() => Customer, (customer) => customer.orders) @JoinColumn({ name: 'customer_id', referencedColumnName: 'id' }) customer: Customer; @OneToMany(() => OrderItem, (orderItem) => orderItem.order) orderItems: OrderItem[]; }