hrms-api-org/src/entities/AuthRoleAttr.ts
2024-10-18 11:45:16 +07:00

119 lines
2.5 KiB
TypeScript

import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { AuthSys } from "./AuthSys";
import { AuthRole } from "./AuthRole";
@Entity("authRoleAttr")
export class AuthRoleAttr extends EntityBase {
@Column({
nullable: true,
comment: "ความเป็นเจ้าของ (Ownership)",
length: 255,
default: null,
})
attrOwnership: string;
@Column({
comment: "สิทธิ์ดำเนินการ (Permission) การ Create",
default: false,
})
attrIsCreate: boolean;
@Column({
comment: "สิทธิ์ดำเนินการ (Permission) การ List",
default: false,
})
attrIsList: boolean;
@Column({
comment: "สิทธิ์ดำเนินการ (Permission) การ Get",
default: false,
})
attrIsGet: boolean;
@Column({
comment: "สิทธิ์ดำเนินการ (Permission) การ Update",
default: false,
})
attrIsUpdate: boolean;
@Column({
comment: "สิทธิ์ดำเนินการ (Permission) การ Delete",
default: false,
})
attrIsDelete: boolean;
@Column({
nullable: true,
comment: "สิทธิ์การเข้าถึง(Privilege)",
length: 255,
default: null,
})
attrPrivilege: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง AuthRole",
default: null,
})
authRoleId: string;
@Column({
nullable: true,
length: 255,
comment: "คีย์นอก(FK)ของตาราง AuthSys",
default: null,
})
authSysId: string;
@Column({
nullable: true,
length: 255,
comment: "Root",
default: null,
})
parentNode?: string;
@ManyToOne(() => AuthSys, (authSys) => authSys.authRoleAttrs)
@JoinColumn({ name: "authSysId" })
authRoleAttrForSys: AuthSys;
@ManyToOne(() => AuthRole, (authRole) => authRole.authRoles)
@JoinColumn({ name: "authRoleId" })
authRoleAttrForRole: AuthRole;
}
export class CreateAuthRoleAttr {
@Column()
attrOwnership: string;
@Column()
attrIsCreate: boolean;
@Column()
attrIsList: boolean;
@Column()
attrIsGet: boolean;
@Column()
attrIsUpdate: boolean;
@Column()
attrIsDelete: boolean;
@Column()
attrPrivilege: string;
@Column("uuid")
authRoleId: string;
@Column("uuid")
authSysId: string;
@Column()
parentNode?: string | null;
}
export type UpdateAuthRoleAttr = Partial<CreateAuthRoleAttr>;