The PropChain backend uses a pluggable adapter pattern for external integrations.
All adapter contracts are defined in src/integrations/contracts/adapters.interface.ts.
IMlsAdapter: Multiple Listing Service integration.ICrmAdapter: CRM Integration (e.g. Salesforce, HubSpot).IPaymentAdapter: Payment Gateways (e.g. Stripe).
- Create a new class that implements the target interface (e.g.,
HubSpotCrmAdapter implements ICrmAdapter). - Add the adapter implementation to
src/integrations/adapters/. - In
integrations.module.ts, swap out theuseClassfor the respective injection token to use your new adapter.
Example:
{
provide: CRM_ADAPTER,
useClass: HubSpotCrmAdapter,
}