kt-template-online-api/src/modules/admin/identity/role/admin-role.entity.ts

82 lines
1.3 KiB
TypeScript

import {
BeforeInsert,
Column,
Entity,
JoinTable,
ManyToMany,
PrimaryColumn,
} from 'typeorm';
import {
ensureSnowflakeId,
KtCreateDateColumn,
KtDateTime,
KtUpdateDateColumn,
} from '@/common';
import { AdminMenu } from '../menu/admin-menu.entity';
import { AdminUser } from '../user/admin-user.entity';
@Entity('admin_role')
export class AdminRole {
@PrimaryColumn({
type: 'bigint',
})
id: string;
@Column({
name: 'role_code',
unique: true,
})
roleCode: string;
@Column()
name: string;
@Column({
default: '',
})
remark: string;
@Column({
default: 1,
})
status: number;
@Column({
default: false,
name: 'is_deleted',
})
isDeleted: boolean;
@KtCreateDateColumn({
name: 'create_time',
})
createTime: KtDateTime;
@KtUpdateDateColumn({
name: 'update_time',
})
updateTime: KtDateTime;
@ManyToMany(() => AdminMenu, (menu) => menu.roles)
@JoinTable({
inverseJoinColumn: {
name: 'menu_id',
referencedColumnName: 'id',
},
joinColumn: {
name: 'role_id',
referencedColumnName: 'id',
},
name: 'admin_role_menu',
})
menus: AdminMenu[];
@ManyToMany(() => AdminUser, (user) => user.roles)
users: AdminUser[];
@BeforeInsert()
createId() {
ensureSnowflakeId(this);
}
}