Files
keyvault/api/src/model/entitites/cylinder.entity.ts
Bastian Wagner d9f633deef zylinder entity
2026-02-25 10:28:24 +01:00

54 lines
1019 B
TypeScript

import {
AfterLoad,
Column,
CreateDateColumn,
DeleteDateColumn,
Entity,
ManyToMany,
ManyToOne,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
import { Key } from './key.entity';
import { KeySystem } from './system.entity';
@Entity()
export class Cylinder {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ nullable: false })
name: string;
@Column({ name:'description', type: 'text', nullable: true })
description: string;
@Column({name: 'digital', type: 'boolean', default: false})
digital: boolean;
@ManyToMany(() => Key, (key) => key.cylinder, { onDelete: 'NO ACTION'})
keys: Key[];
@ManyToOne(() => KeySystem, (sys) => sys.cylinders)
system: KeySystem;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@UpdateDateColumn({ name: 'updatet_at' })
updatedAt: Date;
@DeleteDateColumn()
deletedAt: Date;
keyCount: number;
@AfterLoad()
countKeys() {
if (this.keys) {
this.keyCount = this.keys.length;
}
}
}