import { Document } from 'mongoose'; import { IAction } from './action.interface'; import { IApplication } from './application.interface'; import { IMenu } from './menu.interface'; import { IProfile } from './profile.interface'; import { IUser } from './user.interface'; export interface IRoleSchema { applicationId: string; name: string; description?: string; active: boolean; createdAt: Date; createdBy: string; updatedAt?: Date; updatedBy?: string; deletedAt?: Date; deletedBy?: string; } export interface IRoleModel extends Document, IRoleSchema { actions: IAction[] | string[]; menus: IMenu[] | string[]; } export interface IRole extends IRoleSchema { _id?: string; application: IApplication; actions: IAction[] | string[]; menus: IMenu[] | string[]; profiles: IProfile[]; users: IUser[]; } export interface IRoleFilter { _id?: string; applicationId?: string; name?: string; description?: string; active?: boolean; } export interface IRoleInput { applicationId: string; name: string; description?: string; active?: boolean; menus?: string[]; actions?: string[]; }