@primacrm/core
v1.0.0
Published
SDK TypeScript pour développer des modules Prima CRM
Readme
@primacrm/core
SDK TypeScript pour développer des modules Prima CRM.
Installation
npm install @primacrm/coreUtilisation
Implémenter un module
import {
PrimaCrmModuleInterface,
ModuleMetadata,
IPrimaCrmApi,
} from '@primacrm/core';
class MyModule implements PrimaCrmModuleInterface {
constructor(private api: IPrimaCrmApi) {}
async onInstall(metadata: ModuleMetadata) {
console.log('Module installed:', metadata.name);
}
async onActivate(tenantId: string) {
console.log('Module activated for tenant:', tenantId);
}
async onDeactivate(tenantId: string) {
console.log('Module deactivated for tenant:', tenantId);
}
async onUninstall() {
console.log('Module uninstalled');
}
}
export default MyModule;Utiliser les hooks
import { Hook, CoreHooks, HookContext } from '@primacrm/core';
class MyModule {
@Hook(CoreHooks.LEAD_AFTER_CREATE, 50)
async onLeadCreated(data: any, context: HookContext) {
console.log('Lead created:', data);
// Enrichir les données
return { ...data, enriched: true };
}
}Utiliser les événements
import { EventListener } from '@primacrm/core';
class MyModule {
@EventListener('lead.created')
async onLeadCreated(event: any) {
console.log('Lead created event:', event);
}
}Utiliser l'API
import { IPrimaCrmApi } from '@primacrm/core';
class MyModule {
constructor(private api: IPrimaCrmApi) {}
async processLeads() {
const leads = await this.api.getLeads();
for (const lead of leads) {
// Traiter le lead
await this.api.updateLead(lead.id, { status: 'processed' });
}
}
}API Reference
Voir la documentation complète.
License
MIT
