{"version":3,"file":"CampaignsApi.mjs","names":[],"sources":["../../../src/apis/campaigns/CampaignsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core'\nimport { BaseCrudApi } from '../../core'\nimport type {\n  AutoPauseModePayload,\n  Campaign,\n  CampaignStats,\n  CreateCampaignPayload,\n  ExportCampaignResultPayload,\n  ExportTemplateCsvPayload,\n  HsmLimit,\n  SetIntervalPayload,\n  UpdateCampaignPayload,\n} from './types'\n\nexport class CampaignsApi extends BaseCrudApi<\n  Campaign,\n  CreateCampaignPayload,\n  UpdateCampaignPayload\n> {\n  constructor(client: ApiClient) {\n    super(client, '/campaigns')\n\n    this.sendById = this.sendById.bind(this)\n    this.pauseById = this.pauseById.bind(this)\n    this.resumeById = this.resumeById.bind(this)\n    this.duplicateById = this.duplicateById.bind(this)\n    this.getStatsById = this.getStatsById.bind(this)\n    this.setIntervalById = this.setIntervalById.bind(this)\n    this.getContactCount = this.getContactCount.bind(this)\n    this.setAutoPauseMode = this.setAutoPauseMode.bind(this)\n    this.exportCampaignResult = this.exportCampaignResult.bind(this)\n    this.exportTemplateCsv = this.exportTemplateCsv.bind(this)\n    this.getHsmLimit = this.getHsmLimit.bind(this)\n  }\n\n  /** Starts sending messages for the given campaign. */\n  sendById(id: string): Promise<Campaign> {\n    return this.client.post<Campaign>(`${this.basePath}/${id}/send`)\n  }\n\n  /** Pauses a campaign that is currently sending. */\n  pauseById(id: string): Promise<Campaign> {\n    return this.client.post<Campaign>(`${this.basePath}/${id}/pause`)\n  }\n\n  /** Resumes a previously paused campaign. */\n  resumeById(id: string): Promise<Campaign> {\n    return this.client.post<Campaign>(`${this.basePath}/${id}/resume`)\n  }\n\n  /** Creates a copy of an existing campaign. */\n  duplicateById(id: string): Promise<Campaign> {\n    return this.client.post<Campaign>(`${this.basePath}/${id}/duplicate`)\n  }\n\n  /** Returns send/delivery/view statistics for a campaign. */\n  getStatsById(id: string): Promise<CampaignStats> {\n    return this.client.get<CampaignStats>(`${this.basePath}/${id}/stats`)\n  }\n\n  /** Updates the min/max send interval for a campaign. */\n  setIntervalById(id: string, data: SetIntervalPayload): Promise<Campaign> {\n    return this.client.post<Campaign, SetIntervalPayload>(`${this.basePath}/${id}/interval`, data)\n  }\n\n  /** Returns the total number of contacts targeted by a campaign. */\n  getContactCount(id: string): Promise<number> {\n    return this.client.get<number>(`${this.basePath}/${id}/contactCount`)\n  }\n\n  /** Configures the auto-pause behavior for campaigns. */\n  setAutoPauseMode(data: AutoPauseModePayload): Promise<unknown> {\n    return this.client.put(`${this.basePath}/autoPauseMode`, data)\n  }\n\n  /** Exports campaign send results as a CSV file. */\n  exportCampaignResult(data: ExportCampaignResultPayload): Promise<unknown> {\n    return this.client.post(`${this.basePath}/export/csv`, data)\n  }\n\n  /** Exports a CSV template for importing contacts into an HSM campaign. */\n  exportTemplateCsv(data: ExportTemplateCsvPayload): Promise<unknown> {\n    return this.client.post(`${this.basePath}/exportTemplate`, data)\n  }\n\n  /** Returns the HSM message usage and limit for an account. */\n  getHsmLimit(accountId: string): Promise<HsmLimit> {\n    return this.client.get<HsmLimit>(`/whatsapp-business-templates/${accountId}/hsmLimit`)\n  }\n}\n"],"mappings":";;;;AAcA,IAAa,eAAb,cAAkC,YAIhC;CACA,YAAY,QAAmB;AAC7B,QAAM,QAAQ,aAAa;AAE3B,OAAK,WAAW,KAAK,SAAS,KAAK,KAAK;AACxC,OAAK,YAAY,KAAK,UAAU,KAAK,KAAK;AAC1C,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;AAC5C,OAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK;AAClD,OAAK,eAAe,KAAK,aAAa,KAAK,KAAK;AAChD,OAAK,kBAAkB,KAAK,gBAAgB,KAAK,KAAK;AACtD,OAAK,kBAAkB,KAAK,gBAAgB,KAAK,KAAK;AACtD,OAAK,mBAAmB,KAAK,iBAAiB,KAAK,KAAK;AACxD,OAAK,uBAAuB,KAAK,qBAAqB,KAAK,KAAK;AAChE,OAAK,oBAAoB,KAAK,kBAAkB,KAAK,KAAK;AAC1D,OAAK,cAAc,KAAK,YAAY,KAAK,KAAK;;;CAIhD,SAAS,IAA+B;AACtC,SAAO,KAAK,OAAO,KAAe,GAAG,KAAK,SAAS,GAAG,GAAG,OAAO;;;CAIlE,UAAU,IAA+B;AACvC,SAAO,KAAK,OAAO,KAAe,GAAG,KAAK,SAAS,GAAG,GAAG,QAAQ;;;CAInE,WAAW,IAA+B;AACxC,SAAO,KAAK,OAAO,KAAe,GAAG,KAAK,SAAS,GAAG,GAAG,SAAS;;;CAIpE,cAAc,IAA+B;AAC3C,SAAO,KAAK,OAAO,KAAe,GAAG,KAAK,SAAS,GAAG,GAAG,YAAY;;;CAIvE,aAAa,IAAoC;AAC/C,SAAO,KAAK,OAAO,IAAmB,GAAG,KAAK,SAAS,GAAG,GAAG,QAAQ;;;CAIvE,gBAAgB,IAAY,MAA6C;AACvE,SAAO,KAAK,OAAO,KAAmC,GAAG,KAAK,SAAS,GAAG,GAAG,YAAY,KAAK;;;CAIhG,gBAAgB,IAA6B;AAC3C,SAAO,KAAK,OAAO,IAAY,GAAG,KAAK,SAAS,GAAG,GAAG,eAAe;;;CAIvE,iBAAiB,MAA8C;AAC7D,SAAO,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,iBAAiB,KAAK;;;CAIhE,qBAAqB,MAAqD;AACxE,SAAO,KAAK,OAAO,KAAK,GAAG,KAAK,SAAS,cAAc,KAAK;;;CAI9D,kBAAkB,MAAkD;AAClE,SAAO,KAAK,OAAO,KAAK,GAAG,KAAK,SAAS,kBAAkB,KAAK;;;CAIlE,YAAY,WAAsC;AAChD,SAAO,KAAK,OAAO,IAAc,gCAAgC,UAAU,WAAW"}