passenger.entity.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn, ObjectLiteral } from 'typeorm';
  2. import { UserEntity } from '../users/user.entity';
  3. export enum IdType {
  4. ID_CARD = '身份证',
  5. HONG_KONG_MACAO_PASS = '港澳通行证',
  6. TAIWAN_PASS = '台湾通行证',
  7. PASSPORT = '护照',
  8. OTHER = '其他证件'
  9. }
  10. @Entity('passengers')
  11. export class Passenger implements ObjectLiteral {
  12. @PrimaryGeneratedColumn()
  13. id!: number;
  14. @Column({ name: 'user_id', type: 'integer' })
  15. userId!: number;
  16. @ManyToOne(() => UserEntity, (user) => user.id)
  17. @JoinColumn({ name: 'user_id' })
  18. user!: UserEntity;
  19. @Column({ type: 'varchar', length: 50 })
  20. name!: string;
  21. @Column({
  22. type: 'enum',
  23. enum: IdType,
  24. default: IdType.ID_CARD
  25. })
  26. idType!: IdType;
  27. @Column({ name: 'id_number', type: 'varchar', length: 30 })
  28. idNumber!: string;
  29. @Column({ type: 'varchar', length: 20 })
  30. phone!: string;
  31. @Column({ name: 'is_default', type: 'boolean', default: false })
  32. isDefault!: boolean;
  33. @CreateDateColumn({ name: 'created_at' })
  34. createdAt!: Date;
  35. @UpdateDateColumn({ name: 'updated_at' })
  36. updatedAt!: Date;
  37. @Column({ name: 'created_by', type: 'integer', nullable: true })
  38. createdBy?: number;
  39. @Column({ name: 'updated_by', type: 'integer', nullable: true })
  40. updatedBy?: number;
  41. }