keys
This commit is contained in:
32
api/src/model/entitites/cylinder.entity.ts
Normal file
32
api/src/model/entitites/cylinder.entity.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
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, unique: true })
|
||||
name: string;
|
||||
|
||||
@OneToMany(() => Key, (key) => key.cylinder)
|
||||
keys: Key[];
|
||||
|
||||
@ManyToOne(() => KeySystem, (sys) => sys.cylinders)
|
||||
system: KeySystem;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@UpdateDateColumn({ name: 'updatet_at' })
|
||||
updatedAt: Date;
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
export * from './sso.user.entity';
|
||||
export * from './user.entity';
|
||||
export * from './role.entity';
|
||||
export * from './cylinder.entity';
|
||||
export * from './key.entity';
|
||||
export * from './key_activity.entity';
|
||||
|
||||
34
api/src/model/entitites/key.entity.ts
Normal file
34
api/src/model/entitites/key.entity.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
import { Cylinder } from './cylinder.entity';
|
||||
import { IKey } from '../interface/key.interface';
|
||||
|
||||
@Entity()
|
||||
export class Key implements IKey {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
name: string;
|
||||
|
||||
@Column({ name: 'key_number', unique: true })
|
||||
nr: number;
|
||||
|
||||
@Column({ name: 'handed_out', default: false })
|
||||
handedOut: boolean;
|
||||
|
||||
@ManyToOne(() => Cylinder, (cylinder) => cylinder.keys)
|
||||
cylinder: Cylinder;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@UpdateDateColumn({ name: 'updatet_at' })
|
||||
updatedAt: Date;
|
||||
}
|
||||
37
api/src/model/entitites/key_activity.entity.ts
Normal file
37
api/src/model/entitites/key_activity.entity.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
} from 'typeorm';
|
||||
import { User } from './user.entity';
|
||||
import { IKey } from '../interface/key.interface';
|
||||
import { Cylinder } from './cylinder.entity';
|
||||
|
||||
@Entity()
|
||||
export class KeyActivity implements IKey {
|
||||
@PrimaryGeneratedColumn()
|
||||
primaryId: number;
|
||||
|
||||
@Column()
|
||||
id: string;
|
||||
|
||||
@Column({ nullable: true })
|
||||
name: string;
|
||||
|
||||
@Column({ name: 'key_number' })
|
||||
nr: number;
|
||||
|
||||
@Column({ name: 'handed_out', default: false })
|
||||
handedOut: boolean;
|
||||
|
||||
@ManyToOne(() => Cylinder)
|
||||
cylinder: Cylinder;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@ManyToOne(() => User)
|
||||
user: User;
|
||||
}
|
||||
35
api/src/model/entitites/system.entity.ts
Normal file
35
api/src/model/entitites/system.entity.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import {
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
JoinTable,
|
||||
ManyToMany,
|
||||
OneToMany,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
import { IKeySystem } from '../interface';
|
||||
import { User } from './user.entity';
|
||||
import { Cylinder } from './cylinder.entity';
|
||||
|
||||
@Entity()
|
||||
export class KeySystem implements IKeySystem {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@Column({ nullable: false, unique: true })
|
||||
name: string;
|
||||
|
||||
@ManyToMany(() => User, (manager) => manager.systems)
|
||||
@JoinTable()
|
||||
managers: User[];
|
||||
|
||||
@OneToMany(() => Cylinder, (cylinder) => cylinder.system)
|
||||
cylinders: Cylinder[];
|
||||
|
||||
@UpdateDateColumn({ name: 'updatet_at' })
|
||||
updatedAt: Date;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
JoinColumn,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
OneToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
@@ -12,6 +13,7 @@ import { IUser } from '../interface';
|
||||
import { SSOUser } from './sso.user.entity';
|
||||
import { IsEmail } from 'class-validator';
|
||||
import { Role } from './role.entity';
|
||||
import { KeySystem } from './system.entity';
|
||||
|
||||
@Entity()
|
||||
export class User implements IUser {
|
||||
@@ -46,6 +48,9 @@ export class User implements IUser {
|
||||
@Transform(({ value }) => value.name)
|
||||
role: Role;
|
||||
|
||||
@ManyToMany(() => KeySystem, (system) => system.managers)
|
||||
systems: KeySystem[];
|
||||
|
||||
accessToken?: string;
|
||||
refreshToken?: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user