import http from '@/services/http'; import type { CrmLead, CrmTask, CrmContact, CrmDeal, CrmSearchParams, CrmApiResponse, CrmPaginatedResponse } from '../types/CrmTypes'; // Available CRM resource types export type CrmResourceType = 'leads' | 'tasks' | 'deals' | 'contacts'; // Base API endpoint const CRM_BASE_URL = '/api/v1/integrations/data'; export const crmAPI = { // Generic method to get CRM data by resource type getCrmData: ( resource: CrmResourceType, params?: CrmSearchParams ) => { const queryParams = { provider: 'zoho', service: 'crm', resource, page: 1, limit: 20, ...params }; return http.get>>(CRM_BASE_URL, queryParams); }, // Specific resource methods for type safety getLeads: (params?: CrmSearchParams) => crmAPI.getCrmData('leads', params), getTasks: (params?: CrmSearchParams) => crmAPI.getCrmData('tasks', params), getContacts: (params?: CrmSearchParams) => crmAPI.getCrmData('contacts', params), getDeals: (params?: CrmSearchParams) => crmAPI.getCrmData('deals', params), };