@beincom/dto
Version:
Share dto for all projects of Beincom
32 lines (31 loc) • 1.57 kB
TypeScript
import { ActivityLogBaseUseCase, BasePayloadPropsDTO } from '../../activity-log-base-use-case.dto';
import { ActivityLogDocumentDTO, ActivityLogGroupDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityLogUserDTO, ActivityPropChangedDTO } from '../../dtos';
import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from '../../enums';
type SettingKey = 'isJoinApproval' | 'isInvitedOnly' | 'isActiveGroupTerms' | 'isActiveMembershipQuestions';
export type GroupSettingsState = {
[k in SettingKey]?: boolean;
};
declare class PayloadDTO extends BasePayloadPropsDTO {
group: Group;
originalState: GroupSettingsState;
currentState: GroupSettingsState;
}
type Group = ActivityLogGroupDTO & {
settings: GroupSettingsState;
};
declare class DataDTO {
actor: Partial<ActivityLogUserDTO>;
group: Partial<ActivityLogGroupDTO>;
object: Group;
changes: ActivityPropChangedDTO<GroupSettingsState>;
}
export declare class UpdateGroupSettingsLog extends ActivityLogBaseUseCase<DataDTO> {
static readonly useCase = ACTIVITY_LOG_USE_CASES.UPDATE_GROUP_SETTINGS;
static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP;
static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO>;
static toDocument({ eventTime, data, }: ActivityLogPayloadDTO<PayloadDTO>): ActivityLogDocumentDTO<DataDTO>;
toObjectIds(): ActivityLogObjectIdDTO;
toData(objectData: ActivityLogObjectDataDTO): DataDTO;
}
export {};