UNPKG

@explorins/pers-sdk

Version:

Platform-agnostic SDK for PERS (Phygital Experience Rewards System)

53 lines (43 loc) 2.05 kB
/** * @explorins/pers-sdk-business * * Platform-agnostic Business Domain SDK for PERS ecosystem * Focuses on non-admin business operations */ // API Layer export { BusinessApi } from './api/business-api'; // Service Layer export { BusinessService } from './services/business-service'; // Models & Types export * from './models'; // Factory function for creating business SDK instance import { PersApiClient } from '../core/pers-api-client'; import { BusinessApi } from './api/business-api'; import { BusinessService } from './services/business-service'; /** * Create a complete Business SDK instance * * @param apiClient - Configured PERS API client * @returns Business SDK with flattened structure for better DX */ export function createBusinessSDK(apiClient: PersApiClient) { const businessApi = new BusinessApi(apiClient); const businessService = new BusinessService(businessApi); return { // Direct access to service methods (primary interface) getActiveBusinesses: () => businessService.getActiveBusinesses(), getAllBusinessTypes: () => businessService.getAllBusinessTypes(), getBusinessById: (businessId: string) => businessService.getBusinessById(businessId), getBusinessByAccount: (accountAddress: string) => businessService.getBusinessByAccount(accountAddress), getBusinessesByType: (typeId: string) => businessService.getBusinessesByType(typeId), // Admin methods getAllBusinesses: () => businessService.getAllBusinesses(), createBusinessByDisplayName: (displayName: string) => businessService.createBusinessByDisplayName(displayName), updateBusiness: (id: string, businessData: any) => businessService.updateBusiness(id, businessData), toggleBusinessActive: (id: string, isActive: boolean) => businessService.toggleBusinessActive(id, isActive), // Advanced access for edge cases api: businessApi, service: businessService }; } export type BusinessSDK = ReturnType<typeof createBusinessSDK>;