goods-category.entity.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
  2. import { File } from '@/server/modules/files/file.entity';
  3. @Entity('goods_category')
  4. export class GoodsCategory {
  5. @PrimaryGeneratedColumn({ unsigned: true })
  6. id!: number;
  7. @Column({ name: 'name', type: 'varchar', length: 255, comment: '类别名称' })
  8. name!: string;
  9. @Column({ name: 'parent_id', type: 'int', unsigned: true, default: 0, comment: '上级id' })
  10. parentId!: number;
  11. @Column({ name: 'image_file_id', type: 'int', unsigned: true, nullable: true, comment: '分类图片文件ID' })
  12. imageFileId!: number | null;
  13. @Column({ name: 'level', type: 'int', unsigned: true, default: 0, comment: '层级' })
  14. level!: number;
  15. @Column({ name: 'state', type: 'tinyint', unsigned: true, default: 1, comment: '状态 1可用 2不可用' })
  16. state!: number;
  17. @Column({ name: 'created_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', comment: '创建时间' })
  18. createdAt!: Date;
  19. @Column({ name: 'updated_at', type: 'timestamp', default: () => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', comment: '更新时间' })
  20. updatedAt!: Date;
  21. @Column({ name: 'created_by', type: 'int', unsigned: true, nullable: true, comment: '创建用户ID' })
  22. createdBy!: number | null;
  23. @Column({ name: 'updated_by', type: 'int', unsigned: true, nullable: true, comment: '更新用户ID' })
  24. updatedBy!: number | null;
  25. @ManyToOne(() => File, { nullable: true })
  26. @JoinColumn({ name: 'image_file_id', referencedColumnName: 'id' })
  27. imageFile!: File | null;
  28. }