@23blocks/block-crm 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/index.esm.js +302 -3
  2. package/dist/src/lib/crm.block.d.ts +6 -1
  3. package/dist/src/lib/crm.block.d.ts.map +1 -1
  4. package/dist/src/lib/mappers/index.d.ts +2 -0
  5. package/dist/src/lib/mappers/index.d.ts.map +1 -1
  6. package/dist/src/lib/mappers/mail-template.mapper.d.ts +4 -0
  7. package/dist/src/lib/mappers/mail-template.mapper.d.ts.map +1 -0
  8. package/dist/src/lib/mappers/user.mapper.d.ts +4 -0
  9. package/dist/src/lib/mappers/user.mapper.d.ts.map +1 -0
  10. package/dist/src/lib/services/billing-reports.service.d.ts +11 -0
  11. package/dist/src/lib/services/billing-reports.service.d.ts.map +1 -0
  12. package/dist/src/lib/services/calendar-sync.service.d.ts +15 -0
  13. package/dist/src/lib/services/calendar-sync.service.d.ts.map +1 -0
  14. package/dist/src/lib/services/communications.service.d.ts +9 -0
  15. package/dist/src/lib/services/communications.service.d.ts.map +1 -0
  16. package/dist/src/lib/services/index.d.ts +5 -0
  17. package/dist/src/lib/services/index.d.ts.map +1 -1
  18. package/dist/src/lib/services/mail-templates.service.d.ts +16 -0
  19. package/dist/src/lib/services/mail-templates.service.d.ts.map +1 -0
  20. package/dist/src/lib/services/users.service.d.ts +16 -0
  21. package/dist/src/lib/services/users.service.d.ts.map +1 -0
  22. package/dist/src/lib/types/billing-report.d.ts +51 -0
  23. package/dist/src/lib/types/billing-report.d.ts.map +1 -0
  24. package/dist/src/lib/types/communication.d.ts +12 -0
  25. package/dist/src/lib/types/communication.d.ts.map +1 -0
  26. package/dist/src/lib/types/index.d.ts +4 -0
  27. package/dist/src/lib/types/index.d.ts.map +1 -1
  28. package/dist/src/lib/types/mail-template.d.ts +72 -0
  29. package/dist/src/lib/types/mail-template.d.ts.map +1 -0
  30. package/dist/src/lib/types/user.d.ts +22 -0
  31. package/dist/src/lib/types/user.d.ts.map +1 -0
  32. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { decodePageResult, decodeOne } from '@23blocks/jsonapi-codec';
1
+ import { decodePageResult, decodeOne, decodeMany } from '@23blocks/jsonapi-codec';
2
2
 
3
3
  /**
4
4
  * Parse a string value, returning undefined for empty/undefined
@@ -1976,6 +1976,298 @@ function createZoomHostsService(transport, _config) {
1976
1976
  };
1977
1977
  }
1978
1978
 
1979
+ const crmMailTemplateMapper = {
1980
+ type: 'mail_template',
1981
+ map: (resource)=>{
1982
+ var _resource_attributes_enabled;
1983
+ return {
1984
+ id: resource.id,
1985
+ uniqueId: resource.attributes['unique_id'],
1986
+ code: resource.attributes['code'],
1987
+ name: resource.attributes['name'],
1988
+ subject: resource.attributes['subject'],
1989
+ fromEmail: resource.attributes['from_email'],
1990
+ fromName: resource.attributes['from_name'],
1991
+ htmlContent: resource.attributes['html_content'],
1992
+ textContent: resource.attributes['text_content'],
1993
+ mandrillSlug: resource.attributes['mandrill_slug'],
1994
+ status: parseStatus(resource.attributes['status']),
1995
+ enabled: (_resource_attributes_enabled = resource.attributes['enabled']) != null ? _resource_attributes_enabled : true,
1996
+ payload: resource.attributes['payload'],
1997
+ createdAt: parseDate(resource.attributes['created_at']),
1998
+ updatedAt: parseDate(resource.attributes['updated_at'])
1999
+ };
2000
+ }
2001
+ };
2002
+
2003
+ function createCrmMailTemplatesService(transport, _config) {
2004
+ return {
2005
+ async list (params) {
2006
+ const queryParams = {};
2007
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
2008
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
2009
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
2010
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
2011
+ const response = await transport.get('/mailtemplates', {
2012
+ params: queryParams
2013
+ });
2014
+ return decodePageResult(response, crmMailTemplateMapper);
2015
+ },
2016
+ async get (uniqueId) {
2017
+ const response = await transport.get(`/mailtemplates/${uniqueId}`);
2018
+ return decodeOne(response, crmMailTemplateMapper);
2019
+ },
2020
+ async create (data) {
2021
+ const response = await transport.post('/mailtemplates', {
2022
+ mail_template: {
2023
+ code: data.code,
2024
+ name: data.name,
2025
+ subject: data.subject,
2026
+ from_email: data.fromEmail,
2027
+ from_name: data.fromName,
2028
+ html_content: data.htmlContent,
2029
+ text_content: data.textContent,
2030
+ payload: data.payload
2031
+ }
2032
+ });
2033
+ return decodeOne(response, crmMailTemplateMapper);
2034
+ },
2035
+ async update (uniqueId, data) {
2036
+ const response = await transport.put(`/mailtemplates/${uniqueId}`, {
2037
+ mail_template: {
2038
+ name: data.name,
2039
+ subject: data.subject,
2040
+ from_email: data.fromEmail,
2041
+ from_name: data.fromName,
2042
+ html_content: data.htmlContent,
2043
+ text_content: data.textContent,
2044
+ enabled: data.enabled,
2045
+ status: data.status,
2046
+ payload: data.payload
2047
+ }
2048
+ });
2049
+ return decodeOne(response, crmMailTemplateMapper);
2050
+ },
2051
+ async getMandrillStats (uniqueId) {
2052
+ const response = await transport.get(`/mailtemplates/${uniqueId}/mandrill/stats`);
2053
+ return {
2054
+ slug: response.slug,
2055
+ name: response.name,
2056
+ sentCount: response.sent_count || 0,
2057
+ openCount: response.open_count || 0,
2058
+ clickCount: response.click_count || 0,
2059
+ bounceCount: response.bounce_count || 0,
2060
+ complaintCount: response.complaint_count || 0,
2061
+ createdAt: new Date(response.created_at),
2062
+ updatedAt: new Date(response.updated_at)
2063
+ };
2064
+ },
2065
+ async createMandrillTemplate (uniqueId, data) {
2066
+ const response = await transport.post(`/mailtemplates/${uniqueId}/mandrill`, {
2067
+ mandrill: {
2068
+ name: data.name,
2069
+ from_email: data.fromEmail,
2070
+ from_name: data.fromName,
2071
+ subject: data.subject,
2072
+ code: data.code,
2073
+ text: data.text,
2074
+ publish: data.publish,
2075
+ labels: data.labels
2076
+ }
2077
+ });
2078
+ return decodeOne(response, crmMailTemplateMapper);
2079
+ },
2080
+ async updateMandrillTemplate (uniqueId, data) {
2081
+ const response = await transport.put(`/mailtemplates/${uniqueId}/mandrill`, {
2082
+ mandrill: {
2083
+ from_email: data.fromEmail,
2084
+ from_name: data.fromName,
2085
+ subject: data.subject,
2086
+ code: data.code,
2087
+ text: data.text,
2088
+ publish: data.publish,
2089
+ labels: data.labels
2090
+ }
2091
+ });
2092
+ return decodeOne(response, crmMailTemplateMapper);
2093
+ },
2094
+ async publishMandrill (uniqueId) {
2095
+ const response = await transport.put(`/mailtemplates/${uniqueId}/mandrill/publish`, {});
2096
+ return decodeOne(response, crmMailTemplateMapper);
2097
+ }
2098
+ };
2099
+ }
2100
+
2101
+ function createCommunicationsService(transport, _config) {
2102
+ return {
2103
+ async unsubscribe (data) {
2104
+ const response = await transport.post('/communications/unsubscribe', {
2105
+ unsubscribe: {
2106
+ email: data.email,
2107
+ reason: data.reason,
2108
+ campaign_id: data.campaignId,
2109
+ payload: data.payload
2110
+ }
2111
+ });
2112
+ var _response_success;
2113
+ return {
2114
+ success: (_response_success = response.success) != null ? _response_success : true,
2115
+ email: response.email || data.email,
2116
+ unsubscribedAt: new Date(response.unsubscribed_at || Date.now())
2117
+ };
2118
+ }
2119
+ };
2120
+ }
2121
+
2122
+ const crmUserMapper = {
2123
+ type: 'user',
2124
+ map: (resource)=>{
2125
+ var _resource_attributes_enabled;
2126
+ return {
2127
+ id: resource.id,
2128
+ uniqueId: resource.attributes['unique_id'],
2129
+ email: resource.attributes['email'],
2130
+ name: resource.attributes['name'],
2131
+ phone: resource.attributes['phone'],
2132
+ status: parseStatus(resource.attributes['status']),
2133
+ enabled: (_resource_attributes_enabled = resource.attributes['enabled']) != null ? _resource_attributes_enabled : true,
2134
+ payload: resource.attributes['payload'],
2135
+ createdAt: parseDate(resource.attributes['created_at']),
2136
+ updatedAt: parseDate(resource.attributes['updated_at'])
2137
+ };
2138
+ }
2139
+ };
2140
+
2141
+ function createCrmUsersService(transport, _config) {
2142
+ return {
2143
+ async list (params) {
2144
+ const queryParams = {};
2145
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
2146
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
2147
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
2148
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
2149
+ const response = await transport.get('/users', {
2150
+ params: queryParams
2151
+ });
2152
+ return decodePageResult(response, crmUserMapper);
2153
+ },
2154
+ async get (uniqueId) {
2155
+ const response = await transport.get(`/users/${uniqueId}`);
2156
+ return decodeOne(response, crmUserMapper);
2157
+ },
2158
+ async register (uniqueId, data) {
2159
+ const response = await transport.post(`/users/${uniqueId}/register`, {
2160
+ user: {
2161
+ email: data.email,
2162
+ name: data.name,
2163
+ phone: data.phone,
2164
+ payload: data.payload
2165
+ }
2166
+ });
2167
+ return decodeOne(response, crmUserMapper);
2168
+ },
2169
+ async delete (uniqueId) {
2170
+ await transport.delete(`/users/${uniqueId}`);
2171
+ },
2172
+ async getContacts (uniqueId) {
2173
+ const response = await transport.get(`/users/${uniqueId}/contacts`);
2174
+ return decodeMany(response, contactMapper);
2175
+ },
2176
+ async getMeetings (uniqueId) {
2177
+ const response = await transport.get(`/users/${uniqueId}/meetings`);
2178
+ return decodeMany(response, meetingMapper);
2179
+ }
2180
+ };
2181
+ }
2182
+
2183
+ function createBillingReportsService(transport, _config) {
2184
+ return {
2185
+ async getRevenueReport (params) {
2186
+ const queryParams = {};
2187
+ if (params == null ? void 0 : params.startDate) queryParams['start_date'] = params.startDate;
2188
+ if (params == null ? void 0 : params.endDate) queryParams['end_date'] = params.endDate;
2189
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
2190
+ const response = await transport.get('/billings/reports/revenue', {
2191
+ params: queryParams
2192
+ });
2193
+ return {
2194
+ totalRevenue: response.total_revenue,
2195
+ totalBilled: response.total_billed,
2196
+ totalPaid: response.total_paid,
2197
+ totalOutstanding: response.total_outstanding,
2198
+ currency: response.currency,
2199
+ period: {
2200
+ startDate: new Date(response.period.start_date),
2201
+ endDate: new Date(response.period.end_date)
2202
+ },
2203
+ breakdown: {
2204
+ byMonth: response.breakdown.by_month,
2205
+ byStatus: response.breakdown.by_status
2206
+ }
2207
+ };
2208
+ },
2209
+ async getAgingReport () {
2210
+ const response = await transport.get('/billings/reports/aging');
2211
+ return {
2212
+ current: response.current,
2213
+ thirtyDays: response.thirty_days,
2214
+ sixtyDays: response.sixty_days,
2215
+ ninetyDays: response.ninety_days,
2216
+ over90Days: response.over_90_days,
2217
+ total: response.total,
2218
+ items: (response.items || []).map((i)=>({
2219
+ billingUniqueId: i.billing_unique_id,
2220
+ accountName: i.account_name,
2221
+ contactName: i.contact_name,
2222
+ amount: i.amount,
2223
+ dueDate: new Date(i.due_date),
2224
+ daysOutstanding: i.days_outstanding
2225
+ }))
2226
+ };
2227
+ },
2228
+ async getParticipantReport (participantEmail) {
2229
+ const response = await transport.get(`/billings/reports/participant/${encodeURIComponent(participantEmail)}`);
2230
+ return {
2231
+ participantEmail: response.participant_email,
2232
+ totalBilled: response.total_billed,
2233
+ totalPaid: response.total_paid,
2234
+ totalOutstanding: response.total_outstanding,
2235
+ sessions: (response.sessions || []).map((s)=>({
2236
+ meetingUniqueId: s.meeting_unique_id,
2237
+ date: new Date(s.date),
2238
+ amount: s.amount,
2239
+ status: s.status
2240
+ }))
2241
+ };
2242
+ }
2243
+ };
2244
+ }
2245
+
2246
+ function createCalendarSyncService(transport, _config) {
2247
+ return {
2248
+ async syncUser (userUniqueId) {
2249
+ const response = await transport.post(`/users/${userUniqueId}/calendar/sync`, {});
2250
+ var _response_success;
2251
+ return {
2252
+ success: (_response_success = response.success) != null ? _response_success : true,
2253
+ syncedEvents: response.synced_events || 0,
2254
+ errors: response.errors,
2255
+ syncedAt: new Date(response.synced_at || Date.now())
2256
+ };
2257
+ },
2258
+ async syncTenant () {
2259
+ const response = await transport.post('/calendar/sync', {});
2260
+ var _response_success;
2261
+ return {
2262
+ success: (_response_success = response.success) != null ? _response_success : true,
2263
+ syncedEvents: response.synced_events || 0,
2264
+ errors: response.errors,
2265
+ syncedAt: new Date(response.synced_at || Date.now())
2266
+ };
2267
+ }
2268
+ };
2269
+ }
2270
+
1979
2271
  function createCrmBlock(transport, config) {
1980
2272
  return {
1981
2273
  accounts: createAccountsService(transport),
@@ -1996,7 +2288,12 @@ function createCrmBlock(transport, config) {
1996
2288
  busyBlocks: createBusyBlocksService(transport),
1997
2289
  icsTokens: createIcsTokensService(transport),
1998
2290
  zoomMeetings: createZoomMeetingsService(transport),
1999
- zoomHosts: createZoomHostsService(transport)
2291
+ zoomHosts: createZoomHostsService(transport),
2292
+ mailTemplates: createCrmMailTemplatesService(transport),
2293
+ communications: createCommunicationsService(transport),
2294
+ users: createCrmUsersService(transport),
2295
+ billingReports: createBillingReportsService(transport),
2296
+ calendarSync: createCalendarSyncService(transport)
2000
2297
  };
2001
2298
  }
2002
2299
  const crmBlockMetadata = {
@@ -2025,7 +2322,9 @@ const crmBlockMetadata = {
2025
2322
  'BusyBlock',
2026
2323
  'IcsToken',
2027
2324
  'ZoomMeeting',
2028
- 'ZoomHost'
2325
+ 'ZoomHost',
2326
+ 'CrmMailTemplate',
2327
+ 'CrmUser'
2029
2328
  ]
2030
2329
  };
2031
2330
 
@@ -1,5 +1,5 @@
1
1
  import type { Transport, BlockConfig, BlockMetadata } from '@23blocks/contracts';
2
- import { type AccountsService, type ContactsService, type ContactEventsService, type LeadsService, type LeadFollowsService, type OpportunitiesService, type MeetingsService, type MeetingParticipantsService, type MeetingBillingsService, type QuotesService, type SubscribersService, type ReferralsService, type TouchesService, type CategoriesService, type CalendarAccountsService, type BusyBlocksService, type IcsTokensService, type ZoomMeetingsService, type ZoomHostsService } from './services';
2
+ import { type AccountsService, type ContactsService, type ContactEventsService, type LeadsService, type LeadFollowsService, type OpportunitiesService, type MeetingsService, type MeetingParticipantsService, type MeetingBillingsService, type QuotesService, type SubscribersService, type ReferralsService, type TouchesService, type CategoriesService, type CalendarAccountsService, type BusyBlocksService, type IcsTokensService, type ZoomMeetingsService, type ZoomHostsService, type CrmMailTemplatesService, type CommunicationsService, type CrmUsersService, type BillingReportsService, type CalendarSyncService } from './services';
3
3
  export interface CrmBlockConfig extends BlockConfig {
4
4
  appId: string;
5
5
  tenantId?: string;
@@ -24,6 +24,11 @@ export interface CrmBlock {
24
24
  icsTokens: IcsTokensService;
25
25
  zoomMeetings: ZoomMeetingsService;
26
26
  zoomHosts: ZoomHostsService;
27
+ mailTemplates: CrmMailTemplatesService;
28
+ communications: CommunicationsService;
29
+ users: CrmUsersService;
30
+ billingReports: BillingReportsService;
31
+ calendarSync: CalendarSyncService;
27
32
  }
28
33
  export declare function createCrmBlock(transport: Transport, config: CrmBlockConfig): CrmBlock;
29
34
  export declare const crmBlockMetadata: BlockMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"crm.block.d.ts","sourceRoot":"","sources":["../../../src/lib/crm.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAoBL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,eAAe,EAAE,sBAAsB,CAAC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,cAAc,GACrB,QAAQ,CAsBV;AAED,eAAO,MAAM,gBAAgB,EAAE,aA4B9B,CAAC"}
1
+ {"version":3,"file":"crm.block.d.ts","sourceRoot":"","sources":["../../../src/lib/crm.block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAyBL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,aAAa,EAAE,oBAAoB,CAAC;IACpC,QAAQ,EAAE,eAAe,CAAC;IAC1B,mBAAmB,EAAE,0BAA0B,CAAC;IAChD,eAAe,EAAE,sBAAsB,CAAC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,aAAa,EAAE,uBAAuB,CAAC;IACvC,cAAc,EAAE,qBAAqB,CAAC;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,qBAAqB,CAAC;IACtC,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,cAAc,GACrB,QAAQ,CA2BV;AAED,eAAO,MAAM,gBAAgB,EAAE,aA8B9B,CAAC"}
@@ -19,4 +19,6 @@ export * from './ics-token.mapper';
19
19
  export * from './zoom-meeting.mapper';
20
20
  export * from './zoom-host.mapper';
21
21
  export * from './utils';
22
+ export * from './mail-template.mapper';
23
+ export * from './user.mapper';
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { CrmMailTemplate } from '../types/mail-template';
3
+ export declare const crmMailTemplateMapper: ResourceMapper<CrmMailTemplate>;
4
+ //# sourceMappingURL=mail-template.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-template.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/mail-template.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,eAAe,CAmBjE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ResourceMapper } from '@23blocks/jsonapi-codec';
2
+ import type { CrmUser } from '../types/user';
3
+ export declare const crmUserMapper: ResourceMapper<CrmUser>;
4
+ //# sourceMappingURL=user.mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.mapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/mappers/user.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,OAAO,CAcjD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Transport } from '@23blocks/contracts';
2
+ import type { BillingReportParams, RevenueReport, AgingReport, ParticipantBillingReport } from '../types/billing-report';
3
+ export interface BillingReportsService {
4
+ getRevenueReport(params?: BillingReportParams): Promise<RevenueReport>;
5
+ getAgingReport(): Promise<AgingReport>;
6
+ getParticipantReport(participantEmail: string): Promise<ParticipantBillingReport>;
7
+ }
8
+ export declare function createBillingReportsService(transport: Transport, _config: {
9
+ appId: string;
10
+ }): BillingReportsService;
11
+ //# sourceMappingURL=billing-reports.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-reports.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/billing-reports.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACnF;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,qBAAqB,CA8DnH"}
@@ -0,0 +1,15 @@
1
+ import type { Transport } from '@23blocks/contracts';
2
+ export interface CalendarSyncResult {
3
+ success: boolean;
4
+ syncedEvents: number;
5
+ errors?: string[];
6
+ syncedAt: Date;
7
+ }
8
+ export interface CalendarSyncService {
9
+ syncUser(userUniqueId: string): Promise<CalendarSyncResult>;
10
+ syncTenant(): Promise<CalendarSyncResult>;
11
+ }
12
+ export declare function createCalendarSyncService(transport: Transport, _config: {
13
+ appId: string;
14
+ }): CalendarSyncService;
15
+ //# sourceMappingURL=calendar-sync.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar-sync.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/calendar-sync.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5D,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC3C;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAsB/G"}
@@ -0,0 +1,9 @@
1
+ import type { Transport } from '@23blocks/contracts';
2
+ import type { UnsubscribeRequest, UnsubscribeResponse } from '../types/communication';
3
+ export interface CommunicationsService {
4
+ unsubscribe(data: UnsubscribeRequest): Promise<UnsubscribeResponse>;
5
+ }
6
+ export declare function createCommunicationsService(transport: Transport, _config: {
7
+ appId: string;
8
+ }): CommunicationsService;
9
+ //# sourceMappingURL=communications.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communications.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/communications.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,qBAAqB,CAkBnH"}
@@ -17,4 +17,9 @@ export * from './busy-blocks.service';
17
17
  export * from './ics-tokens.service';
18
18
  export * from './zoom-meetings.service';
19
19
  export * from './zoom-hosts.service';
20
+ export * from './mail-templates.service';
21
+ export * from './communications.service';
22
+ export * from './users.service';
23
+ export * from './billing-reports.service';
24
+ export * from './calendar-sync.service';
20
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { CrmMailTemplate, CreateCrmMailTemplateRequest, UpdateCrmMailTemplateRequest, ListCrmMailTemplatesParams, CreateMandrillTemplateRequest, UpdateMandrillTemplateRequest, MandrillTemplateStats } from '../types/mail-template';
3
+ export interface CrmMailTemplatesService {
4
+ list(params?: ListCrmMailTemplatesParams): Promise<PageResult<CrmMailTemplate>>;
5
+ get(uniqueId: string): Promise<CrmMailTemplate>;
6
+ create(data: CreateCrmMailTemplateRequest): Promise<CrmMailTemplate>;
7
+ update(uniqueId: string, data: UpdateCrmMailTemplateRequest): Promise<CrmMailTemplate>;
8
+ getMandrillStats(uniqueId: string): Promise<MandrillTemplateStats>;
9
+ createMandrillTemplate(uniqueId: string, data: CreateMandrillTemplateRequest): Promise<CrmMailTemplate>;
10
+ updateMandrillTemplate(uniqueId: string, data: UpdateMandrillTemplateRequest): Promise<CrmMailTemplate>;
11
+ publishMandrill(uniqueId: string): Promise<CrmMailTemplate>;
12
+ }
13
+ export declare function createCrmMailTemplatesService(transport: Transport, _config: {
14
+ appId: string;
15
+ }): CrmMailTemplatesService;
16
+ //# sourceMappingURL=mail-templates.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-templates.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/mail-templates.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EACV,eAAe,EACf,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;IAChF,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAsGvH"}
@@ -0,0 +1,16 @@
1
+ import type { Transport, PageResult } from '@23blocks/contracts';
2
+ import type { CrmUser, RegisterCrmUserRequest, ListCrmUsersParams } from '../types/user';
3
+ import type { Contact } from '../types/contact';
4
+ import type { Meeting } from '../types/meeting';
5
+ export interface CrmUsersService {
6
+ list(params?: ListCrmUsersParams): Promise<PageResult<CrmUser>>;
7
+ get(uniqueId: string): Promise<CrmUser>;
8
+ register(uniqueId: string, data: RegisterCrmUserRequest): Promise<CrmUser>;
9
+ delete(uniqueId: string): Promise<void>;
10
+ getContacts(uniqueId: string): Promise<Contact[]>;
11
+ getMeetings(uniqueId: string): Promise<Meeting[]>;
12
+ }
13
+ export declare function createCrmUsersService(transport: Transport, _config: {
14
+ appId: string;
15
+ }): CrmUsersService;
16
+ //# sourceMappingURL=users.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/users.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKhD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACnD;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CA4CvG"}
@@ -0,0 +1,51 @@
1
+ export interface BillingReportParams {
2
+ startDate?: string;
3
+ endDate?: string;
4
+ status?: string;
5
+ }
6
+ export interface RevenueReport {
7
+ totalRevenue: number;
8
+ totalBilled: number;
9
+ totalPaid: number;
10
+ totalOutstanding: number;
11
+ currency: string;
12
+ period: {
13
+ startDate: Date;
14
+ endDate: Date;
15
+ };
16
+ breakdown: {
17
+ byMonth: Record<string, number>;
18
+ byStatus: Record<string, number>;
19
+ };
20
+ }
21
+ export interface AgingReport {
22
+ current: number;
23
+ thirtyDays: number;
24
+ sixtyDays: number;
25
+ ninetyDays: number;
26
+ over90Days: number;
27
+ total: number;
28
+ items: AgingItem[];
29
+ }
30
+ export interface AgingItem {
31
+ billingUniqueId: string;
32
+ accountName?: string;
33
+ contactName?: string;
34
+ amount: number;
35
+ dueDate: Date;
36
+ daysOutstanding: number;
37
+ }
38
+ export interface ParticipantBillingReport {
39
+ participantEmail: string;
40
+ totalBilled: number;
41
+ totalPaid: number;
42
+ totalOutstanding: number;
43
+ sessions: ParticipantSession[];
44
+ }
45
+ export interface ParticipantSession {
46
+ meetingUniqueId: string;
47
+ date: Date;
48
+ amount: number;
49
+ status: string;
50
+ }
51
+ //# sourceMappingURL=billing-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-report.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/billing-report.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,CAAC;KACf,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,12 @@
1
+ export interface UnsubscribeRequest {
2
+ email: string;
3
+ reason?: string;
4
+ campaignId?: string;
5
+ payload?: Record<string, unknown>;
6
+ }
7
+ export interface UnsubscribeResponse {
8
+ success: boolean;
9
+ email: string;
10
+ unsubscribedAt: Date;
11
+ }
12
+ //# sourceMappingURL=communication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/communication.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,IAAI,CAAC;CACtB"}
@@ -18,4 +18,8 @@ export * from './busy-block';
18
18
  export * from './ics-token';
19
19
  export * from './zoom-meeting';
20
20
  export * from './zoom-host';
21
+ export * from './mail-template';
22
+ export * from './communication';
23
+ export * from './user';
24
+ export * from './billing-report';
21
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
2
+ export interface CrmMailTemplate extends IdentityCore {
3
+ code: string;
4
+ name: string;
5
+ subject?: string;
6
+ fromEmail?: string;
7
+ fromName?: string;
8
+ htmlContent?: string;
9
+ textContent?: string;
10
+ mandrillSlug?: string;
11
+ status: EntityStatus;
12
+ enabled: boolean;
13
+ payload?: Record<string, unknown>;
14
+ }
15
+ export interface CreateCrmMailTemplateRequest {
16
+ code: string;
17
+ name: string;
18
+ subject?: string;
19
+ fromEmail?: string;
20
+ fromName?: string;
21
+ htmlContent?: string;
22
+ textContent?: string;
23
+ payload?: Record<string, unknown>;
24
+ }
25
+ export interface UpdateCrmMailTemplateRequest {
26
+ name?: string;
27
+ subject?: string;
28
+ fromEmail?: string;
29
+ fromName?: string;
30
+ htmlContent?: string;
31
+ textContent?: string;
32
+ enabled?: boolean;
33
+ status?: EntityStatus;
34
+ payload?: Record<string, unknown>;
35
+ }
36
+ export interface ListCrmMailTemplatesParams {
37
+ page?: number;
38
+ perPage?: number;
39
+ status?: EntityStatus;
40
+ search?: string;
41
+ }
42
+ export interface CreateMandrillTemplateRequest {
43
+ name: string;
44
+ fromEmail?: string;
45
+ fromName?: string;
46
+ subject?: string;
47
+ code?: string;
48
+ text?: string;
49
+ publish?: boolean;
50
+ labels?: string[];
51
+ }
52
+ export interface UpdateMandrillTemplateRequest {
53
+ fromEmail?: string;
54
+ fromName?: string;
55
+ subject?: string;
56
+ code?: string;
57
+ text?: string;
58
+ publish?: boolean;
59
+ labels?: string[];
60
+ }
61
+ export interface MandrillTemplateStats {
62
+ slug: string;
63
+ name: string;
64
+ sentCount: number;
65
+ openCount: number;
66
+ clickCount: number;
67
+ bounceCount: number;
68
+ complaintCount: number;
69
+ createdAt: Date;
70
+ updatedAt: Date;
71
+ }
72
+ //# sourceMappingURL=mail-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-template.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/mail-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,22 @@
1
+ import type { IdentityCore, EntityStatus } from '@23blocks/contracts';
2
+ export interface CrmUser extends IdentityCore {
3
+ email: string;
4
+ name?: string;
5
+ phone?: string;
6
+ status: EntityStatus;
7
+ enabled: boolean;
8
+ payload?: Record<string, unknown>;
9
+ }
10
+ export interface RegisterCrmUserRequest {
11
+ email: string;
12
+ name?: string;
13
+ phone?: string;
14
+ payload?: Record<string, unknown>;
15
+ }
16
+ export interface ListCrmUsersParams {
17
+ page?: number;
18
+ perPage?: number;
19
+ status?: EntityStatus;
20
+ search?: string;
21
+ }
22
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAItE,MAAM,WAAW,OAAQ,SAAQ,YAAY;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@23blocks/block-crm",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "CRM block for 23blocks SDK - accounts, contacts, leads, opportunities, meetings",
5
5
  "license": "MIT",
6
6
  "author": "23blocks <hello@23blocks.com>",