@upv/ushi-shared
Version:
Shared DTOs, types, and utilities for the USHI platform (LMS, Trials, Social, Wallet).
35 lines (34 loc) • 1.27 kB
TypeScript
import BaseDto from '../base/BaseDto';
import { IRoleAssignmentDto, IRoleAssignment, RoleAssignmentStatus } from '../../../types/roleAssignment';
import { RoleDomain, PersonRole } from '../../enums';
/**
* RoleAssignmentDto
*
* DTO class for managing user roles within scoped domains and contexts.
* Supports auditing, expiration, and status tracking.
*/
declare class RoleAssignmentDto extends BaseDto<IRoleAssignmentDto> {
protected _userId: string;
protected _role: PersonRole;
protected _domain: RoleDomain;
protected _contextId?: string;
protected _assignedBy?: string;
protected _expiresAt?: number;
protected _status: RoleAssignmentStatus;
protected _revokedAt?: number;
protected _revokedBy?: string;
protected _notes?: string;
constructor(data: IRoleAssignmentDto);
serialize(): Promise<IRoleAssignment>;
get userId(): string;
get role(): PersonRole;
get domain(): RoleDomain;
get contextId(): string | undefined;
get assignedBy(): string | undefined;
get expiresAt(): number | undefined;
get status(): RoleAssignmentStatus;
get revokedAt(): number | undefined;
get revokedBy(): string | undefined;
get notes(): string | undefined;
}
export default RoleAssignmentDto;