UNPKG

@beincom/dto

Version:

Share dto for all projects of Beincom

54 lines (53 loc) 1.75 kB
import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from '../enums'; import { ActivityLogBadgeDTO, ActivityLogCommunityDTO, ActivityLogGroupDTO, ActivityLogGroupSetDTO, ActivityLogUserDTO } from './activity-log-use-case.dto'; /** * For the producer * Represents a payload for an activity log. * @template TPayload - The type of data contained in the payload. */ export declare class ActivityLogPayloadDTO<TPayload> { useCase: ACTIVITY_LOG_USE_CASES; eventTime: number; data: TPayload; } /** * For the consumer * Represents a document for an activity log. * @template TData - The type of data contained in the document. */ export declare class ActivityLogDocumentDTO<TData> { id: string; mainId: string; useCase: ACTIVITY_LOG_USE_CASES; eventTime: number; actorId: string; communityId: string; groupId?: string; eventType: ACTIVITY_EVENT_TYPES; objectType: ACTIVITY_OBJECT_TYPES; objectId: string; data: TData; mainLog?: ActivityLogDocumentDTO<unknown>; } /** * For data fetching * Collect all object ids from the activity log document. */ export declare class ActivityLogObjectIdDTO { userIds?: string[]; groupIds?: string[]; communityIds?: string[]; badgeIds?: string[]; groupSetIds?: string[]; } /** * For data fetching * Aggregate all object data from the object ids to bind data to the activity log documents. */ export declare class ActivityLogObjectDataDTO { users: Record<string, ActivityLogUserDTO>; groups: Record<string, ActivityLogGroupDTO>; communities: Record<string, ActivityLogCommunityDTO>; badges?: Record<string, ActivityLogBadgeDTO>; groupSets?: Record<string, ActivityLogGroupSetDTO>; }