passenger.entity.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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', comment: '用户ID' })
  15. userId!: number;
  16. @ManyToOne(() => UserEntity, (user) => user.id)
  17. @JoinColumn({ name: 'user_id' })
  18. user!: UserEntity;
  19. @Column({ type: 'varchar', length: 50, comment: '乘客姓名' })
  20. name!: string;
  21. @Column({
  22. type: 'enum',
  23. enum: IdType,
  24. default: IdType.ID_CARD,
  25. comment: '证件类型'
  26. })
  27. idType!: IdType;
  28. @Column({ name: 'id_number', type: 'varchar', length: 30, comment: '证件号码' })
  29. idNumber!: string;
  30. @Column({ type: 'varchar', length: 20, comment: '手机号' })
  31. phone!: string;
  32. @Column({ name: 'is_default', type: 'boolean', default: false, comment: '是否默认乘客' })
  33. isDefault!: boolean;
  34. @CreateDateColumn({ name: 'created_at', comment: '创建时间' })
  35. createdAt!: Date;
  36. @UpdateDateColumn({ name: 'updated_at', comment: '更新时间' })
  37. updatedAt!: Date;
  38. @Column({ name: 'created_by', type: 'integer', nullable: true, comment: '创建人ID' })
  39. createdBy?: number;
  40. @Column({ name: 'updated_by', type: 'integer', nullable: true, comment: '更新人ID' })
  41. updatedBy?: number;
  42. }