UNPKG

@kenniy/godeye-event-contracts

Version:

Shared event schemas and stream definitions for 8Medical microservices architecture

71 lines 2.14 kB
export interface EventMetadata { correlationId: string; sourceService: string; version: string; priority?: 'low' | 'normal' | 'high' | 'urgent'; headers?: Record<string, string>; requiresAcknowledgment?: boolean; maxRetries?: number; expiresAt?: string; } export interface BaseEvent<TData = any> { eventId: string; eventType: string; timestamp: string; data: TData; metadata: EventMetadata; } export interface EventEnvelope<TData = any> extends BaseEvent<TData> { stream: string; streamMessageId?: string; } export interface BusinessEntityIds { userId?: string; businessId?: string; hospitalId?: string; customerId?: string; transactionId?: string; transportId?: string; fileId?: string; adminId?: string; } export interface EventErrorInfo { code: string; message: string; details?: Record<string, any>; stack?: string; occurredAt: string; } export interface Address { street: string; city: string; state: string; postalCode: string; country: string; coordinates?: { latitude: number; longitude: number; }; } export interface ContactInfo { email?: string; phoneNumber?: string; alternatePhone?: string; emergencyContact?: { name: string; phoneNumber: string; relationship: string; }; } export type BusinessType = 'hospital' | 'hmo' | 'diagnostic_center' | 'ambulance_provider' | 'pharmacy' | 'laboratory'; export type UserType = 'customer' | 'business_owner' | 'business_agent' | 'admin' | 'super_admin'; export type EntityStatus = 'active' | 'inactive' | 'pending' | 'suspended' | 'archived' | 'deleted'; export type VerificationStatus = 'pending' | 'in_review' | 'verified' | 'rejected' | 'expired' | 'requires_resubmission'; export type EventData<T extends BaseEvent> = T['data']; export type EventHandler<T extends BaseEvent> = (event: T) => Promise<void> | void; export interface EventBatch<TData = any> { events: BaseEvent<TData>[]; batchId: string; batchMetadata?: EventMetadata; } //# sourceMappingURL=base-event.d.ts.map