@mbc-cqrs-serverless/core
Version:
CQRS and event base core
44 lines (43 loc) • 1.24 kB
TypeScript
/**
* Interface for complete command input data.
* Used when creating or fully updating an entity.
*/
export interface CommandInputModel {
/** Partition key. Format: {tenantCode}#{entityType} */
pk: string;
/** Sort key. Format: {entityType}#{entityId} */
sk: string;
/** Unique entity identifier */
id: string;
/** Business code */
code: string;
/** Display name */
name: string;
/** Version for optimistic locking */
version: number;
/** Tenant code for isolation */
tenantCode: string;
/** Entity type */
type: string;
/** Soft delete flag */
isDeleted?: boolean;
/** Sequence number */
seq?: number;
/** Time-to-live in seconds */
ttl?: number;
/** Custom attributes */
attributes?: Record<string, any>;
}
/**
* Interface for partial command input data.
* Used when updating only specific fields of an entity.
* Requires pk, sk, and version for identification and locking.
*/
export interface CommandPartialInputModel extends Partial<CommandInputModel> {
/** Partition key (required) */
pk: string;
/** Sort key (required) */
sk: string;
/** Version for optimistic locking (required) */
version: number;
}