import { IGroup } from '../user/group'; import { IWorkspace, IWorkspaceOutput } from './workspace'; import { IWorkspacePermission } from './workspace-permission'; export interface IWorkspaceRoleBase { id: number; name: string; permission: IWorkspacePermission; } export interface IWorkspaceRole extends IWorkspaceRoleBase { groupId: number; workspaceId: string; } export interface IWorkspaceRoleOutput extends IWorkspaceRoleBase { group: IGroup; workspace: IWorkspaceOutput; } export interface IWorkspaceRoleCreateInput { name: string; permission: IWorkspacePermission; groupId: number; workspaceId: string; } export interface IWorkspaceRoleUpdateInput extends Partial { id: number; } export interface IWorkspaceRoleDeleteInput { id: number; } // export interface IWorkspaceRoleProperties { // id?: boolean; // name?: boolean; // groupId?: boolean; // workspaceId?: boolean; // } // interface IWorkspaceRoleRelationProperties { // group?: IGroupPropertiesConfig; // workspace?: IWorkspacePropertiesConfig; // permission?: IWorkspacePermissionPropertiesConfig; // } // export interface IWorkspaceRolePropertiesConfig { // properties: IWorkspaceRoleProperties; // relationProperties?: IWorkspaceRoleRelationProperties; // } // export function defaultWorkspaceRoleProperties(): IWorkspaceRoleProperties { // return { // id: true, // name: true, // groupId: true, // workspaceId: true, // }; // } // export function defaultWorkspaceRoleRelationProperties(): IWorkspaceRoleRelationProperties { // return { // group: defaultGroupPropertiesConfig(), // permission: defaultWorkspacePermissionPropertiesConfig(), // // workspace: defaultWorkspacePropertiesConfig(), // // events: defaultEventProperties(), // }; // } // export function defaultWorkspaceRolePropertiesConfig(): IWorkspaceRolePropertiesConfig { // return { // properties: defaultWorkspaceRoleProperties(), // relationProperties: defaultWorkspaceRoleRelationProperties(), // }; // }