import { IUser, defaultUserPropertiesConfig, IUserPropertiesConfig } from './user'; import { IMultipleRelationOperation } from '../relation'; export interface IGroup { id: number; name: string; userIds: number[] | null; users: IUser[] | null; } export interface IGroupCreateInput { name: string; // userIds: number[]; // userRelations?: IRelation[]; userRelations: IMultipleRelationOperation[]; // userOperation?: ISingleRelationOperation; } export interface IGroupUpdateInput { id: number; name?: string; // userIds?: number[]; userRelations?: IMultipleRelationOperation[]; // userRelations?: IRelation[]; // userOperations?: IRelationOperations; } export interface IGroupProperties { id?: boolean; name?: boolean; userIds?: boolean; } interface IGroupRelationProperties { users?: IUserPropertiesConfig; } export interface IGroupPropertiesConfig { properties: IGroupProperties; relationProperties?: IGroupRelationProperties; } export interface IGroupDeleteInput { id: number; } export function defaultGroupProperties(): IGroupProperties { return { id: true, name: true, userIds: true, }; } export function defaultGroupRelationProperties(): IGroupRelationProperties { return { users: defaultUserPropertiesConfig(), // events: defaultEventProperties(), }; } export function defaultGroupPropertiesConfig(): IGroupPropertiesConfig { return { properties: defaultGroupProperties(), relationProperties: defaultGroupRelationProperties(), }; }