@beincom/dto
Version:
Share dto for all projects of Beincom
54 lines (53 loc) • 1.75 kB
TypeScript
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>;
}