@gsb-core/core
Version:
GSB core services and classes for platform-independent web applications
336 lines (335 loc) • 8.45 kB
TypeScript
import { GsbPermission, GsbUser } from './gsb-user.model';
import { GsbDocTemplate } from './gsb-doc-template.model';
import { GsbContact, GsbGroup, GsbRole } from './gsb-user.model';
import { GsbEntityDef } from './gsb-entity-def.model';
import { QueryDto } from '../types/query-dto';
import { GsbModule } from './gsb-module.model';
import { GsbRecurringJob } from './gsb-recurring-job.model';
import { GsbWorkflowInstance } from './gsb-workflow.model';
import { GsbDtoBase, Variation } from './gsb-dto-base.model';
import { GsbFile } from './gsb-file.model';
/**
* Notification channel enum
*/
export declare enum NotificationChannel {
StandardInterface = 1,
Email = 2,
SMS = 4,
PushNotify = 8
}
/**
* Notification type enum
*/
export declare enum NotificationType {
Info = 0,
Success = 1,
Warning = 2,
Error = 3
}
/**
* Permission type enum
*/
export declare enum PermissionType {
None = 0,
View = 1,
Edit = 2,
Delete = 4,
All = 7
}
/**
* Represents a GSB Notification entity
*/
export declare class GsbNotification {
_entDefName?: string;
id?: string;
name?: string;
title?: string;
message?: string;
category?: string;
priority?: number;
eventType?: string;
templateId?: string;
description?: string;
expiryDate?: Date;
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
channel?: NotificationChannel;
permissionType?: PermissionType;
actions?: any[];
data?: any;
dataStr?: string;
content?: string;
type?: NotificationType;
image?: GsbFile;
entity_id?: string;
entityDefinition_id?: string;
clickAction?: any;
variation?: Variation;
constructor(obj?: Partial<GsbNotification>);
}
/**
* Operation types for workflow functions
*/
export declare enum OperationType {
SetProperties = 1,
SendSms = 2,
CallGSBAPI = 3,
CallExternalAPI = 4,
SendEmail = 5,
SendEmailAdvanced = 6,
RunScriptCode = 7,
CommitChanges = 8,
GetEntity = 9,
SetEntity = 10,
DeleteEntity = 11,
CreatePDFDocument = 12,
SendNotification = 13,
SaveEntity = 14
}
/**
* Operation enum for entity operations
*/
export declare enum Operation {
Read = 4,
Execute = 16,
Create = 1,
Delete = 32,
List = 8,
Update = 2,
Associate = 64,
Disassociate = 128
}
/**
* Property value for setting entity properties
*/
export declare class EntPropertyValue {
_entDefName?: string;
name?: string;
value?: any;
constructor(obj?: Partial<EntPropertyValue>);
}
/**
* Dynamic attachment for email operations
*/
export declare class GsbDynamicAttachment {
_entDefName?: string;
template?: string;
fileName?: string;
constructor(obj?: Partial<GsbDynamicAttachment>);
}
/**
* Email message operation configuration
*/
export declare class GsbMailMessageOp {
_entDefName?: string;
toAddresses?: any[];
ccAddresses?: any[];
bccAddresses?: any[];
subject?: string;
distinct?: boolean;
messageBody?: GsbDocTemplate;
attachments?: GsbDocTemplate[];
constructor(obj?: Partial<GsbMailMessageOp>);
}
/**
* Notification operation recipients configuration
*/
export declare class GsbNotificationOpRecipients {
_entDefName?: string;
contacts?: GsbContact[];
users?: GsbUser[];
roles?: GsbRole[];
groups?: GsbGroup[];
excludeUsers?: GsbUser[];
excludeSender?: boolean;
constructor(obj?: Partial<GsbNotificationOpRecipients>);
}
/**
* Advanced email message operation configuration
*/
export declare class GsbAdvancedMailMessageOp {
_entDefName?: string;
toAddresses?: string;
ccAddresses?: string;
attachments?: string;
subject?: string;
messageBody?: string;
constructor(obj?: Partial<GsbAdvancedMailMessageOp>);
}
/**
* Document generation operation configuration
*/
export declare class GsbDocumentGenerateOp {
_entDefName?: string;
docTemplate?: GsbDocTemplate;
propertyName?: string;
urlParam?: string;
htmlWfParam?: string;
htmlEntityParam?: string;
template?: string;
byteArrParam?: string;
fileNameProp?: string;
usePuppeteer?: boolean;
constructor(obj?: Partial<GsbDocumentGenerateOp>);
}
/**
* Get entity operation options
*/
export declare class GsbGetEntityOptions {
_entDefName?: string;
query?: QueryDto;
constructor(obj?: Partial<GsbGetEntityOptions>);
}
/**
* Set entity operation options
*/
export declare class GsbSetEntityOptions {
_entDefName?: string;
setProps?: EntPropertyValue[];
entityDef?: GsbEntityDef;
constructor(obj?: Partial<GsbSetEntityOptions>);
}
/**
* Notification data for notification operations
*/
export declare class NotificationDto extends GsbDtoBase {
title?: string;
message?: string;
recipients?: GsbNotificationOpRecipients;
priority?: number;
category?: string;
expiryDate?: Date;
notification?: GsbNotification;
mailMessage?: GsbMailMessageOp;
transformScript?: string;
entity?: any;
tEntity?: any;
allUsers?: GsbUser[];
modelInstance?: GsbWorkflowInstance;
users?: GsbUser[];
roles?: GsbRole[];
groups?: GsbGroup[];
}
/**
* Represents a workflow operation
*/
export declare class GsbWfOperation {
_entDefName?: string;
id?: string;
title?: string;
operationType?: OperationType;
scriptCode?: string;
scriptCodeStr?: string;
docTemplate?: GsbDocumentGenerateOp;
getEntityOptions?: GsbGetEntityOptions;
setEntityOptions?: GsbSetEntityOptions;
notification?: NotificationDto;
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
constructor(obj?: Partial<GsbWfOperation>);
}
/**
* Represents a GSB WF Function entity
*/
export declare class GsbWfFunction {
_entDefName?: string;
id?: string;
name?: string;
title?: string;
code?: string;
references?: GsbWfCodeLibrary[];
imports?: GsbModule[];
permissions?: GsbPermission[];
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
orderNumber?: number;
wfLogs?: GsbWfLog[];
createdBy?: GsbUser;
activities?: GsbWfActivity[];
module?: GsbModule;
afterActivities?: GsbWfActivity[];
lastUpdatedBy?: GsbUser;
currentVersion?: string;
bgTasks?: GsbRecurringJob[];
standalone?: boolean;
limits?: GsbUsageLimit[];
operations?: string;
operationsObj?: GsbWfOperation[];
testInstance?: string;
prevActivities?: GsbWfActivity[];
module_id?: string;
constructor(obj?: Partial<GsbWfFunction>);
}
/**
* Represents a GSB WF Code Library
*/
export declare class GsbWfCodeLibrary {
_entDefName?: string;
id?: string;
name?: string;
code?: string;
codeText?: string;
references?: GsbWfCodeLibrary[];
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
constructor(obj?: Partial<GsbWfCodeLibrary>);
}
/**
* Represents a GSB WF Log
*/
export declare class GsbWfLog {
_entDefName?: string;
id?: string;
name?: string;
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
constructor(obj?: Partial<GsbWfLog>);
}
/**
* Represents a GSB WF Activity
*/
export declare class GsbWfActivity {
_entDefName?: string;
id?: string;
name?: string;
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
constructor(obj?: Partial<GsbWfActivity>);
}
/**
* Represents a GSB Usage Limit
*/
export declare class GsbUsageLimit {
_entDefName?: string;
id?: string;
name?: string;
createDate?: Date;
lastUpdateDate?: Date;
createdBy_id?: string;
lastUpdatedBy_id?: string;
constructor(obj?: Partial<GsbUsageLimit>);
}
/**
* Helper function to check if a function is empty
*/
export declare function isGsbFunctionEmpty(func: GsbWfFunction): boolean;
/**
* Helper functions for copying and serializing DTOs
*/
export declare function copySettingsFrom(target: GsbDtoBase, source: GsbDtoBase): void;
/**
* Creates a serializable copy of a notification DTO
*/
export declare function copyNotificationSerializable(source: NotificationDto): NotificationDto;