Files
keyvault/api/src/model/entitites/cylinder.entity.ts
2026-02-24 14:55:19 +01:00

54 lines
1.0 KiB
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: 'is_digital', type: 'boolean', default: false})
isDigital: 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;
}
}
}