permission

This commit is contained in:
2026-02-04 20:43:28 +03:30
parent 14eeba4cfd
commit d4ae03fa4f
24 changed files with 175 additions and 110 deletions
+13 -3
View File
@@ -1,11 +1,13 @@
import { Collection, Entity, ManyToMany, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
import { BaseEntity } from '../../../common/entities/base.entity';
import { Collection, Entity, ManyToMany, OneToMany, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
import { Permission } from './permission.entity';
import { RolePermission } from './rolePermission.entity';
import { ulid } from 'ulid';
import { Admin } from 'src/modules/admin/entities/admin.entity';
@Entity({ tableName: 'roles' })
export class Role extends BaseEntity {
export class Role {
[OptionalProps]?: 'createdAt' | 'deletedAt' | 'admins';
@PrimaryKey({ type: 'string', columnType: 'char(26)' })
id: string = ulid()
@@ -21,5 +23,13 @@ export class Role extends BaseEntity {
@ManyToMany({ entity: () => Permission, pivotEntity: () => RolePermission, inversedBy: p => p.roles })
permissions = new Collection<Permission>(this);
@OneToMany(() => Admin, (admin) => admin.role)
admins: Admin
@Property({ defaultRaw: 'now()', columnType: 'timestamptz' })
createdAt: Date = new Date();
@Property({ nullable: true, columnType: 'timestamptz' })
deletedAt?: Date;
}