Spaces:
Sleeping
Sleeping
| import { | |
| Entity, | |
| Column, | |
| PrimaryGeneratedColumn, | |
| CreateDateColumn, | |
| ManyToOne, | |
| JoinColumn, | |
| OneToMany, | |
| } from 'typeorm'; | |
| import { User } from './user.entity'; | |
| import { Course } from './course.entity'; | |
| import { Payment } from './payment.entity'; | |
| export enum OrderStatus { | |
| PENDING = 'pending', | |
| PAID = 'paid', | |
| CANCELLED = 'cancelled', | |
| REFUNDED = 'refunded', | |
| } | |
| export enum OrderType { | |
| PURCHASE = 'purchase', | |
| DONATION = 'donation', | |
| VIP = 'vip', | |
| } | |
| ('orders') | |
| export class Order { | |
| () | |
| id: number; | |
| ({ type: 'varchar', length: 32, unique: true, name: 'order_no' }) | |
| orderNo: string; | |
| ({ name: 'user_id' }) | |
| userId: number; | |
| ({ name: 'course_id', nullable: true }) | |
| courseId: number; | |
| ({ type: 'decimal', precision: 10, scale: 2 }) | |
| amount: number; | |
| ({ type: 'varchar', default: OrderStatus.PENDING }) | |
| status: OrderStatus; | |
| ({ type: 'varchar', default: OrderType.PURCHASE, name: 'order_type' }) | |
| orderType: OrderType; | |
| ({ type: 'varchar', length: 255, nullable: true }) | |
| message: string; | |
| ({ name: 'created_at' }) | |
| createdAt: Date; | |
| ({ type: 'datetime', nullable: true, name: 'paid_at' }) | |
| paidAt: Date; | |
| (() => User, (user) => user.orders) | |
| ({ name: 'user_id' }) | |
| user: User; | |
| (() => Course, (course) => course.orders) | |
| ({ name: 'course_id' }) | |
| course: Course; | |
| (() => Payment, (payment) => payment.order) | |
| payments: Payment[]; | |
| } | |