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