123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- import {
- Column,
- CreateDateColumn,
- Entity,
- JoinColumn,
- JoinTable,
- ManyToMany,
- ManyToOne,
- OneToMany,
- OneToOne,
- PrimaryGeneratedColumn,
- UpdateDateColumn,
- } from 'typeorm';
- import { Category } from '../category/category.entity';
- import { User } from '../user/user.entity';
- import { Article } from '../article/article.entity';
- import { MenuTranslation } from './menu.entity.translation';
- import { TranslatableEntity, Translation } from 'typeorm-translatable';
- @Entity()
- export class Menu extends TranslatableEntity<MenuTranslation> {
- @PrimaryGeneratedColumn()
- id: number;
- @Column({ unique: false, default: '', length: 200 })
- title: string;
- @Column({ default: true })
- enable: boolean;
- @Column({ default: 0 })
- styleType: number;
- @Column({ default: 0 })
- otherType: number;
- @Column({ default: 0 })
- order: number;
- @Column({ default: '' })
- description: string;
- @Column({ default: 0 })
- level: number;
- @Column({ default: '' })
- cover: string;
- @Column({ default: false })
- isPublish: boolean;
- @Column({ default: '' })
- remark: string;
- @OneToOne(() => Category, {
- cascade: false,
- onDelete: 'CASCADE',
- createForeignKeyConstraints: false,
- })
- @JoinColumn()
- category: Category;
- @Column({ nullable: true })
- categoryId: number;
- @OneToOne(() => User, {
- createForeignKeyConstraints: false,
- onDelete: 'CASCADE',
- })
- @JoinColumn()
- user: User;
- @Column({ nullable: true })
- userId: number;
- @CreateDateColumn()
- createTime: Date;
- @UpdateDateColumn()
- updateTime: Date;
- @ManyToOne(() => Menu, (menu) => menu.children, {
- createForeignKeyConstraints: false,
- })
- parent: Menu;
- @OneToMany(() => Menu, (menu) => menu.parent, {
- createForeignKeyConstraints: false,
- })
- children: Menu[];
- @Column({ nullable: true })
- parentId: number;
- @Column({ nullable: true, default: 3 })
- grid: number;
- @OneToOne(() => Article, {
- createForeignKeyConstraints: false,
- onDelete: 'CASCADE',
- })
- @JoinColumn()
- article: Article;
- @Column({ nullable: true })
- articleId: number;
- @OneToMany(() => MenuTranslation, (menuTranslation) => menuTranslation.source, {
- cascade: true,
- })
- translations?: Translation<MenuTranslation>[] | undefined;
- static translatableFields = new Set(['title', 'description']);
- }
|