import { IGroup, IGroupPropertiesConfig, defaultGroupPropertiesConfig } from './group'; import { IUser, IUserPropertiesConfig, defaultUserPropertiesConfig } from './user'; import { IUserPermission, IUserPermissionPropertiesConfig, defaultUserPermissionPropertiesConfig, } from './user-permission'; export interface IUserRole { id: number; name: string; permission: IUserPermission; groupId: number | null; group: IGroup | null; userId: number | null; user: IUser | null; } export interface IUserRoleCreateInput { name: string; permission: IUserPermission; groupId: number; userId: number; } export interface IUserRoleUpdateInput { id: number; name?: string; groupId?: number; userId?: number; } export interface IUserRoleProperties { id?: boolean; name?: boolean; groupId?: boolean; userId?: boolean; } interface IUserRoleRelationProperties { group?: IGroupPropertiesConfig; user?: IUserPropertiesConfig; permission?: IUserPermissionPropertiesConfig; } export interface IUserRolePropertiesConfig { properties: IUserRoleProperties; relationProperties?: IUserRoleRelationProperties; } export interface IUserRoleDeleteInput { id: number; } export function defaultUserRoleProperties(): IUserRoleProperties { return { id: true, name: true, groupId: true, userId: true, }; } export function defaultUserRoleRelationProperties(): IUserRoleRelationProperties { return { group: defaultGroupPropertiesConfig(), permission: defaultUserPermissionPropertiesConfig(), // user: defaultUserPropertiesConfig(), // events: defaultEventProperties(), }; } export function defaultUserRolePropertiesConfig(): IUserRolePropertiesConfig { return { properties: defaultUserRoleProperties(), relationProperties: defaultUserRoleRelationProperties(), }; }