UNPKG

@beincom/dto

Version:

Share dto for all projects of Beincom

61 lines (60 loc) 2.27 kB
import { ActivityLogCommunityDTO, ActivityLogDocumentDTO, ActivityLogGroupDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityLogUserDTO, ActivityPropChangedDTO } from './dtos'; import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from './enums'; export declare class BasePayloadPropsDTO { id: string; mainId: string; actor: ActivityLogUserDTO; } export declare class BasePayloadDTO<T = object> extends BasePayloadPropsDTO { community: ActivityLogCommunityDTO; group: ActivityLogGroupDTO; originalState: T; currentState: T; } export declare class BaseDataDTO<T = object> { actor: Partial<ActivityLogUserDTO>; community: Partial<ActivityLogCommunityDTO>; group: Partial<ActivityLogGroupDTO>; changes: ActivityPropChangedDTO; object: T; } export interface IActivityLogBaseUseCase { toPayload(data: any): ActivityLogPayloadDTO<any>; toDocument(payload: ActivityLogPayloadDTO<any>): ActivityLogDocumentDTO<any>; toObjectIds(): ActivityLogObjectIdDTO; toData(objectData: ActivityLogObjectDataDTO): any; } export declare abstract class ActivityLogBaseUseCase<T> { private readonly _document; static readonly useCase: ACTIVITY_LOG_USE_CASES; static readonly eventType: ACTIVITY_EVENT_TYPES; static readonly objectType: ACTIVITY_OBJECT_TYPES; constructor(_document: ActivityLogDocumentDTO<T>); /** * @method * public static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO> * * Used for the producer, to create a payload for an activity log. * DO NOT NEED TO EDIT THIS METHOD */ /** * @method * public static toDocument(payload: ActivityLogPayloadDTO<PayloadDTO>) * * Used for the consumer, to create a document for an activity log. */ /** * Get the document data with the type of T */ get document(): ActivityLogDocumentDTO<T>; /** * Get all object ids from the activity log document * Used for data fetching */ abstract toObjectIds(): ActivityLogObjectIdDTO; /** * Get the binding data from the object ids * Used for data fetching */ abstract toData(objectData: ActivityLogObjectDataDTO): T; }