import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, ObjectLiteral } from 'typeorm'; import { UserEntity } from '../users/user.entity'; export enum IdType { ID_CARD = '身份证', HONG_KONG_MACAO_PASS = '港澳通行证', TAIWAN_PASS = '台湾通行证', PASSPORT = '护照', OTHER = '其他证件' } @Entity('passengers') export class Passenger implements ObjectLiteral { @PrimaryGeneratedColumn() id!: number; @Column({ name: 'user_id', type: 'integer' }) userId!: number; @ManyToOne(() => UserEntity, (user) => user.id) @JoinColumn({ name: 'user_id' }) user!: UserEntity; @Column({ type: 'varchar', length: 50 }) name!: string; @Column({ type: 'enum', enum: IdType, default: IdType.ID_CARD }) idType!: IdType; @Column({ name: 'id_number', type: 'varchar', length: 30 }) idNumber!: string; @Column({ type: 'varchar', length: 20 }) phone!: string; @Column({ name: 'is_default', type: 'boolean', default: false }) isDefault!: boolean; @CreateDateColumn({ name: 'created_at' }) createdAt!: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt!: Date; @Column({ name: 'created_by', type: 'integer', nullable: true }) createdBy?: number; @Column({ name: 'updated_by', type: 'integer', nullable: true }) updatedBy?: number; }