import { CsGroup } from './../../../models/group/index'; import { GroupEntityStatus, GroupMemberRole, GroupMembershipType } from '../../../models/group'; import { Observable } from 'rxjs'; import { CsGroupServiceConfig } from '../../../index'; import { CsGroupActivityService } from '../activity/interface'; import { Form } from '../../../models/form'; export interface CsGroupCreateRequest { name: string; membershipType?: GroupMembershipType; description: string; } export interface CsGroupCreateResponse { groupId: string; } export interface CsGroupUpdateRequest { name?: string; membershipType?: GroupMembershipType; description?: string; status?: GroupEntityStatus; } export interface CsGroupUpdateResponse { } export interface CsGroupAddMembersRequest { members: { userId: string; role: GroupMemberRole; }[]; } export interface CsGroupAddMembersResponse { error?: { members?: { userId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupRemoveMembersRequest { userIds: string[]; } export interface CsGroupRemoveMembersResponse { error?: { members?: { userId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupUpdateMembersRequest { members: { userId: string; role?: GroupMemberRole; status?: GroupEntityStatus; visited?: boolean; }[]; } export interface CsGroupUpdateMembersResponse { error?: { members?: { userId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupAddActivitiesRequest { activities: { id: string; type: string; }[]; } export interface CsGroupAddActivitiesResponse { error: { activities: { activityId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupUpdateActivitiesRequest { activities: { id: string; type?: string; status?: GroupEntityStatus; }[]; } export interface CsGroupUpdateActivitiesResponse { error: { activities: { activityId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupSearchCriteria { filters: { userId: string; groupAttribute?: { [key: string]: any | any[]; }[]; }; sort_by?: { [key: string]: 'asc' | 'desc'; }; limit?: number; offset?: number; } export interface CsGroupDeleteResponse { } export interface CsGroupSuspendResponse { } export interface CsGroupReactivateResponse { } export interface CsGroupRemoveActivitiesRequest { activityIds: string[]; } export interface CsGroupRemoveActivitiesResponse { error: { activities: { activityId: string; errorCode: string; errorMessage: string; }[]; }; } export interface CsGroupSearchResponse extends CsGroup { memberRole: GroupMemberRole; visited?: boolean; } export interface CsGroupSupportedActivitiesFormField { index: number; title: string; translations: string; isEnabled: boolean; activityType: string; objectType: string; searchQuery: string; sortBy: { [key: string]: 'asc' | 'desc'; }[]; } export interface CsGroupUpdateGroupGuidelinesRequest { userId: string; groups: { groupId: string; visited: boolean; }[]; } export interface CsGroupUpdateGroupGuidelinesResponse { } export interface CsGroupService { activityService: CsGroupActivityService; create(createRequest: CsGroupCreateRequest, config?: CsGroupServiceConfig): Observable; getById(id: string, options?: { includeMembers?: boolean; includeActivities?: boolean; groupActivities?: boolean; }, config?: CsGroupServiceConfig): Observable; search(searchCriteria: CsGroupSearchCriteria, config?: CsGroupServiceConfig): Observable; updateById(id: string, updateRequest: CsGroupUpdateRequest, config?: CsGroupServiceConfig): Observable; deleteById(id: string, config?: CsGroupServiceConfig): Observable; addMembers(groupId: string, addMembersRequest: CsGroupAddMembersRequest, config?: CsGroupServiceConfig): Observable; updateMembers(groupId: string, updateMembersRequest: CsGroupUpdateMembersRequest, config?: CsGroupServiceConfig): Observable; removeMembers(groupId: string, removeMembersRequest: CsGroupRemoveMembersRequest, config?: CsGroupServiceConfig): Observable; addActivities(groupId: string, addActivitiesRequest: CsGroupAddActivitiesRequest, config?: CsGroupServiceConfig): Observable; updateActivities(groupId: string, updateActivitiesRequest: CsGroupUpdateActivitiesRequest, config?: CsGroupServiceConfig): Observable; removeActivities(groupId: string, removeActivitiesRequest: CsGroupRemoveActivitiesRequest, config?: CsGroupServiceConfig): Observable; getSupportedActivities(config?: CsGroupServiceConfig): Observable>; suspendById(id: string, config?: CsGroupServiceConfig): Observable; reactivateById(id: string, config?: CsGroupServiceConfig): Observable; updateGroupGuidelines(request: CsGroupUpdateGroupGuidelinesRequest, config?: CsGroupServiceConfig): Observable; }