54 lines
1.0 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
}
|