UNPKG

@kenniy/event-contracts

Version:

Shared event schemas and stream definitions for 8Medical microservices architecture

93 lines 3.41 kB
export declare const UserServiceEventTypes: { readonly CUSTOMER_REGISTERED: "customer.registered"; readonly BUSINESS_REGISTERED: "business.registered"; readonly CUSTOMER_LOGGED_IN: "customer.logged_in"; readonly BUSINESS_LOGGED_IN: "business.logged_in"; readonly EMAIL_VERIFIED: "email.verified"; readonly PHONE_VERIFIED: "phone.verified"; readonly PROFILE_UPDATED: "profile.updated"; readonly PASSWORD_CHANGED: "password.changed"; readonly BUSINESS_VERIFICATION_SUBMITTED: "business.verification.submitted"; readonly BUSINESS_VERIFICATION_APPROVED: "business.verification.approved"; readonly BUSINESS_VERIFICATION_REJECTED: "business.verification.rejected"; readonly AGENT_INVITED: "agent.invited"; readonly AGENT_ACCEPTED: "agent.accepted"; readonly AGENT_REJECTED: "agent.rejected"; }; export interface BusinessRegisteredEvent { eventId: string; timestamp: string; eventType: typeof UserServiceEventTypes.BUSINESS_REGISTERED; data: { businessId: string; businessName: string; businessType: 'hospital' | 'hmo' | 'diagnostic_center' | 'ambulance_provider'; email: string; contactName?: string; phoneNumber?: string; ownerId: string; ownerEmail: string; ownerName: string; registeredAt: string; verificationStatus: 'pending' | 'verified' | 'rejected'; onboardingStatus: 'not_started' | 'in_progress' | 'completed'; }; metadata: { correlationId: string; sourceService: 'user-service'; version: '1.0'; requiresNotification: boolean; notificationTemplates?: string[]; }; } export interface CustomerRegisteredEvent { eventId: string; timestamp: string; eventType: typeof UserServiceEventTypes.CUSTOMER_REGISTERED; data: { customerId: string; email: string; firstName: string; lastName: string; phoneNumber?: string; dateOfBirth?: string; registeredAt: string; verificationStatus: 'pending' | 'verified'; accountStatus: 'active' | 'inactive' | 'suspended'; }; metadata: { correlationId: string; sourceService: 'user-service'; version: '1.0'; requiresNotification: boolean; notificationTemplates?: string[]; }; } export interface BusinessVerificationDecisionEvent { eventId: string; timestamp: string; eventType: typeof UserServiceEventTypes.BUSINESS_VERIFICATION_APPROVED | typeof UserServiceEventTypes.BUSINESS_VERIFICATION_REJECTED; data: { businessId: string; businessName: string; businessType: string; email: string; decision: 'approved' | 'rejected'; decidedBy: string; decidedAt: string; reason?: string; notes?: string; hrmOnboardingRequired?: boolean; nextSteps?: string[]; }; metadata: { correlationId: string; sourceService: 'user-service'; version: '1.0'; requiresNotification: boolean; notificationTemplates?: string[]; }; } export type UserServiceEvent = BusinessRegisteredEvent | CustomerRegisteredEvent | BusinessVerificationDecisionEvent; export type UserServiceEventType = typeof UserServiceEventTypes[keyof typeof UserServiceEventTypes]; //# sourceMappingURL=user-service.d.ts.map