menu.entity.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import {
  2. Column,
  3. CreateDateColumn,
  4. Entity,
  5. JoinColumn,
  6. JoinTable,
  7. ManyToMany,
  8. ManyToOne,
  9. OneToMany,
  10. OneToOne,
  11. PrimaryGeneratedColumn,
  12. UpdateDateColumn,
  13. } from 'typeorm';
  14. import { Category } from '../category/category.entity';
  15. import { User } from '../user/user.entity';
  16. @Entity()
  17. export class Menu {
  18. @PrimaryGeneratedColumn()
  19. id: number;
  20. @Column({ unique: false, default: '', length: 200 })
  21. title: string;
  22. @Column({ default: true })
  23. enable: boolean;
  24. @Column({ default: 0 })
  25. level: number;
  26. @Column({ default: '' })
  27. cover: string;
  28. @Column({ default: false })
  29. isPublish: boolean;
  30. @Column({ type: 'longtext', nullable: true })
  31. content: string;
  32. @Column({ default: '' })
  33. remark: string;
  34. @OneToOne(() => Category, {
  35. cascade: true,
  36. onDelete: 'CASCADE',
  37. createForeignKeyConstraints: false,
  38. })
  39. @JoinColumn()
  40. category: Category;
  41. @Column({ nullable: true })
  42. categoryId: number;
  43. @OneToOne(() => User, {
  44. cascade: true,
  45. })
  46. @JoinColumn()
  47. user: User;
  48. @Column({ nullable: true })
  49. userId: number;
  50. @CreateDateColumn()
  51. createTime: Date;
  52. @UpdateDateColumn()
  53. updateTime: Date;
  54. @ManyToOne(() => Menu, (menu) => menu.children, {
  55. createForeignKeyConstraints: false,
  56. })
  57. parent: Menu;
  58. @OneToMany(() => Menu, (menu) => menu.parent, {
  59. createForeignKeyConstraints: false,
  60. })
  61. children: Menu[];
  62. @Column({ nullable: true })
  63. parentId: number;
  64. }