| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn } from 'typeorm';
- import { User } from '../users/user.entity';
- import { Route } from '../routes/route.entity';
- import { ObjectLiteral } from 'typeorm/common/ObjectLiteral';
- export enum OrderStatus {
- PENDING_PAYMENT = '待支付',
- WAITING_DEPARTURE = '待出发',
- IN_PROGRESS = '行程中',
- COMPLETED = '已完成',
- CANCELLED = '已取消'
- }
- export enum PaymentStatus {
- PENDING = '待支付',
- PAID = '已支付',
- FAILED = '支付失败',
- REFUNDED = '已退款'
- }
- @Entity('orders')
- export class Order implements ObjectLiteral {
- @PrimaryGeneratedColumn({ comment: '订单ID' })
- id!: number;
- @Column({ comment: '用户ID' })
- userId!: number;
- @Column({ comment: '路线ID' })
- routeId!: number;
- @Column({ comment: '乘客数量' })
- passengerCount!: number;
- @Column('decimal', { precision: 10, scale: 2, comment: '订单总金额' })
- totalAmount!: number;
- @Column({
- type: 'enum',
- enum: OrderStatus,
- default: OrderStatus.PENDING_PAYMENT,
- comment: '订单状态'
- })
- status!: OrderStatus;
- @Column({
- type: 'enum',
- enum: PaymentStatus,
- default: PaymentStatus.PENDING,
- comment: '支付状态'
- })
- paymentStatus!: PaymentStatus;
- @Column('json', { comment: '乘客信息快照数组(下单时的多个乘客信息)' })
- passengerSnapshots!: any[];
- @Column('json', { comment: '路线信息快照(下单时的路线信息)' })
- routeSnapshot!: any;
- @Column({ nullable: true, comment: '创建人ID' })
- createdBy?: number;
- @Column({ nullable: true, comment: '更新人ID' })
- updatedBy?: number;
- @CreateDateColumn({ comment: '创建时间' })
- createdAt!: Date;
- @UpdateDateColumn({ comment: '更新时间' })
- updatedAt!: Date;
- @ManyToOne(() => User)
- @JoinColumn({ name: 'userId' })
- user!: User;
- @ManyToOne(() => Route)
- @JoinColumn({ name: 'routeId' })
- route!: Route;
- }
|