Files
n8n_Demo/n8n-n8n-1.109.2/packages/@n8n/db/src/entities/folder.ts
2025-09-08 04:48:28 +08:00

55 lines
1.1 KiB
TypeScript
Executable File

import {
Column,
Entity,
JoinColumn,
JoinTable,
ManyToMany,
ManyToOne,
OneToMany,
} from '@n8n/typeorm';
import { WithTimestampsAndStringId } from './abstract-entity';
import { Project } from './project';
import { TagEntity } from './tag-entity';
import type { WorkflowEntity } from './workflow-entity';
@Entity()
export class Folder extends WithTimestampsAndStringId {
@Column()
name: string;
@Column({ nullable: true })
parentFolderId: string | null;
@ManyToOne(() => Folder, { nullable: true, onDelete: 'CASCADE' })
@JoinColumn({ name: 'parentFolderId' })
parentFolder: Folder | null;
@OneToMany(
() => Folder,
(folder) => folder.parentFolder,
)
subFolders: Folder[];
@ManyToOne(() => Project)
@JoinColumn({ name: 'projectId' })
homeProject: Project;
@OneToMany('WorkflowEntity', 'parentFolder')
workflows: WorkflowEntity[];
@ManyToMany(() => TagEntity)
@JoinTable({
name: 'folder_tag',
joinColumn: {
name: 'folderId',
referencedColumnName: 'id',
},
inverseJoinColumn: {
name: 'tagId',
referencedColumnName: 'id',
},
})
tags: TagEntity[];
}