graph-editor/src/lib/server/entity/Edge.ts

29 lines
603 B
TypeScript

import {BeforeInsert, Entity, ManyToOne, PrimaryColumn} from 'typeorm';
import {Node} from '$lib/server/entity/Node';
import {ulidMonotonic} from '$lib/server/ulid';
@Entity()
export class Edge {
@PrimaryColumn({type: 'varchar', length: 26})
id = ulidMonotonic();
@ManyToOne(() => Node, node => node.outgoingEdges, {
nullable: false,
cascade: true,
onDelete: 'CASCADE',
})
head!: Node;
@ManyToOne(() => Node, node => node.incomingEdges, {
nullable: false,
cascade: true,
onDelete: 'CASCADE',
})
tail!: Node;
@BeforeInsert()
beforeInsert () {
this.id = ulidMonotonic();
}
}