@blazeo.com/calendar-client 1.0.35 → 1.0.36

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.
package/dist/index.d.ts CHANGED
@@ -131,9 +131,25 @@ export const EventModel: {
131
131
  getCustomData(calendarId: string, eventId?: string): Promise<unknown>;
132
132
  setReminder(eventId: string): Promise<unknown>;
133
133
  setAttendeeStatus(eventId: string, attendeeStatus: number | string): Promise<unknown>;
134
+ setEventStatus(eventId: string, status: number | string): Promise<unknown>;
134
135
  create(snapshot: EventSnapshot | object, options?: { env?: object }): unknown;
135
136
  };
136
137
 
138
+ export type ExternalEventSnapshot = {
139
+ title?: string | null;
140
+ startDate?: string;
141
+ endDate?: string;
142
+ startHour?: number;
143
+ startMinute?: number;
144
+ endHour?: number;
145
+ endMinute?: number;
146
+ };
147
+
148
+ export const ExternalEventModel: {
149
+ getByParticipant(participantId: string, opts?: { offset?: number }): Promise<unknown[]>;
150
+ create(snapshot: ExternalEventSnapshot | object, options?: { env?: object }): unknown;
151
+ };
152
+
137
153
  export const AvailabilityModel: { create(snapshot: object, options?: { env?: object }): unknown };
138
154
  export const AvailabilityDetailModel: { create(snapshot: object, options?: { env?: object }): unknown };
139
155
  export const CalendarParticipantModel: {
@@ -272,15 +288,16 @@ export const LeadModel: {
272
288
  data?: { userId?: string; columns?: string[]; isDefault?: boolean };
273
289
  message?: string;
274
290
  }>;
291
+ /** Requires companyKey and at least one of email or phone. */
275
292
  createLead(payload: {
276
- email: string;
277
293
  companyKey: string;
278
- name?: string;
294
+ email?: string;
279
295
  phone?: string;
296
+ name?: string;
280
297
  source?: string;
281
298
  leadType?: 'sales' | 'service' | 'others' | number;
282
299
  referrerLink?: string;
283
- }): Promise<unknown>;
300
+ }): Promise<{ status: string; data?: unknown; message?: string } | null>;
284
301
  updateLead(payload: {
285
302
  leadId: string;
286
303
  email?: string;
@@ -450,6 +467,7 @@ export function createRootStore(initialState?: object): unknown;
450
467
  export const Unit: Record<string, number>;
451
468
  export const AssignmentMethod: Record<string, number>;
452
469
  export const AttendeeStatus: Record<string, number>;
470
+ export const EventStatus: Record<string, number>;
453
471
  export const RecurringFrequency: Record<string, number>;
454
472
  export const DayOfWeek: Record<string, number>;
455
473
  export const LocationType: Record<string, number>;
package/dist/index.js CHANGED
@@ -39,6 +39,8 @@ __export(index_exports, {
39
39
  EmailProvider: () => EmailProvider,
40
40
  EventModel: () => Event_default,
41
41
  EventSource: () => EventSource,
42
+ EventStatus: () => EventStatus,
43
+ ExternalEventModel: () => ExternalEvent_default,
42
44
  FlowModel: () => Flow_default,
43
45
  LeadModel: () => Lead_default,
44
46
  LocationType: () => LocationType,
@@ -338,6 +340,12 @@ var AttendeeStatus = {
338
340
  NeedsAction: 4,
339
341
  Canceled: 5
340
342
  };
343
+ var EventStatus = {
344
+ Scheduled: 1,
345
+ ReScheduled: 2,
346
+ Completed: 3,
347
+ Canceled: 4
348
+ };
341
349
  var RecurringFrequency = {
342
350
  None: 0,
343
351
  Daily: 1,
@@ -488,6 +496,7 @@ var EventModel = import_mobx_state_tree4.types.model("Event", {
488
496
  flowId: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.string), null),
489
497
  flowPath: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.string), null),
490
498
  attendeeStatus: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.number, AttendeeStatus.Tentative),
499
+ status: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.number), null),
491
500
  rescheduleLink: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.string), null),
492
501
  cancelLink: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.string), null),
493
502
  timeZone: import_mobx_state_tree4.types.optional(import_mobx_state_tree4.types.maybeNull(import_mobx_state_tree4.types.string), null),
@@ -626,6 +635,18 @@ var EventModel = import_mobx_state_tree4.types.model("Event", {
626
635
  async setAttendeeStatus(status) {
627
636
  const statusName = typeof status === "number" ? Object.keys(AttendeeStatus).find((k) => AttendeeStatus[k] === status) ?? "None" : status;
628
637
  return reqGet(`/event/${encodeURIComponent(self.eventId)}/${encodeURIComponent(statusName)}`);
638
+ },
639
+ /** GET /event/status/update – update event lifecycle status */
640
+ async setEventStatus(status) {
641
+ const statusValue = typeof status === "number" ? status : EventStatus[status] ?? status;
642
+ const res = await reqGet("/event/status/update", {
643
+ event_id: self.eventId,
644
+ status: statusValue
645
+ });
646
+ if (res.status === "success" && res.data) {
647
+ (0, import_mobx_state_tree4.applySnapshot)(self, { ...mapEventFromApi(res.data), eventId: self.eventId });
648
+ }
649
+ return res;
629
650
  }
630
651
  };
631
652
  });
@@ -658,6 +679,7 @@ function mapEventFromApi(d) {
658
679
  flowId: pick2("flowId", "FlowId", "flow_id"),
659
680
  flowPath: pick2("flowPath", "FlowPath", "flow_path"),
660
681
  attendeeStatus: n(pick2("attendeeStatus", "AttendeeStatus", "attendee_status")),
682
+ status: n(pick2("status", "Status")),
661
683
  eventSource: n(pick2("eventSource", "EventSource", "event_source")),
662
684
  rescheduleLink: pick2("rescheduleLink", "RescheduleLink", "reschedule_link"),
663
685
  cancelLink: pick2("cancelLink", "CancelLink", "cancel_link"),
@@ -889,6 +911,11 @@ EventModel.setAttendeeStatus = async (eventId, attendeeStatus) => {
889
911
  const statusName = typeof attendeeStatus === "number" ? Object.keys(AttendeeStatus).find((k) => AttendeeStatus[k] === attendeeStatus) ?? "None" : attendeeStatus;
890
912
  return reqGet(`/event/${encodeURIComponent(eventId)}/${encodeURIComponent(statusName)}`);
891
913
  };
914
+ EventModel.setEventStatus = async (eventId, status) => {
915
+ const { reqGet } = createRequestHelpersFromEnv(getConfig());
916
+ const statusValue = typeof status === "number" ? status : EventStatus[status] ?? status;
917
+ return reqGet("/event/status/update", { event_id: eventId, status: statusValue });
918
+ };
892
919
  var Event_default = EventModel;
893
920
 
894
921
  // src/models/appointment/CalendarParticipant.js
@@ -1686,30 +1713,96 @@ var OpeningHourModel = import_mobx_state_tree12.types.model("OpeningHour", {
1686
1713
  });
1687
1714
  var OpeningHour_default = OpeningHourModel;
1688
1715
 
1689
- // src/models/appointment/Setting.js
1716
+ // src/models/appointment/ExternalEvent.js
1690
1717
  var import_mobx_state_tree13 = require("mobx-state-tree");
1691
- var SettingModel = import_mobx_state_tree13.types.model("Setting", {
1692
- id: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.number), null),
1693
- settingsId: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.string, ""),
1694
- calendarId: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.string, ""),
1695
- logo: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.string), null),
1696
- theme: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.string), null),
1697
- schedulingButtonText: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.string), null),
1698
- scheduledMessage: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.string), null)
1718
+ function getDefaultOffset2() {
1719
+ var _a;
1720
+ const cfg = getConfig();
1721
+ return ((_a = cfg == null ? void 0 : cfg.getDefaultOffset) == null ? void 0 : _a.call(cfg)) ?? -(/* @__PURE__ */ new Date()).getTimezoneOffset();
1722
+ }
1723
+ function pickStr(obj, ...keys) {
1724
+ for (const k of keys) {
1725
+ const v = obj[k];
1726
+ if (v != null && typeof v === "string") return v;
1727
+ }
1728
+ return void 0;
1729
+ }
1730
+ function pickNum(obj, ...keys) {
1731
+ for (const k of keys) {
1732
+ const v = obj[k];
1733
+ if (v != null) {
1734
+ const n = typeof v === "number" ? v : Number(v);
1735
+ if (!Number.isNaN(n)) return n;
1736
+ }
1737
+ }
1738
+ return void 0;
1739
+ }
1740
+ function toIsoDate(value) {
1741
+ if (value == null || value === "") return "";
1742
+ if (typeof value === "string") return value;
1743
+ if (value instanceof Date) return value.toISOString();
1744
+ return String(value);
1745
+ }
1746
+ var ExternalEventModel = import_mobx_state_tree13.types.model("ExternalEvent", {
1747
+ title: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.maybeNull(import_mobx_state_tree13.types.string), null),
1748
+ startDate: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.string, ""),
1749
+ endDate: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.string, ""),
1750
+ startHour: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.number, 0),
1751
+ startMinute: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.number, 0),
1752
+ endHour: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.number, 0),
1753
+ endMinute: import_mobx_state_tree13.types.optional(import_mobx_state_tree13.types.number, 0)
1754
+ });
1755
+ function mapApiRow(row) {
1756
+ return ExternalEventModel.create({
1757
+ title: pickStr(row, "title", "Title") ?? null,
1758
+ startDate: toIsoDate(row.startDate ?? row.StartDate),
1759
+ endDate: toIsoDate(row.endDate ?? row.EndDate),
1760
+ startHour: pickNum(row, "startHour", "StartHour") ?? 0,
1761
+ startMinute: pickNum(row, "startMinute", "StartMinute") ?? 0,
1762
+ endHour: pickNum(row, "endHour", "EndHour") ?? 0,
1763
+ endMinute: pickNum(row, "endMinute", "EndMinute") ?? 0
1764
+ });
1765
+ }
1766
+ ExternalEventModel.getByParticipant = async (participantId, opts = {}) => {
1767
+ if (!participantId) throw new Error("participantId required");
1768
+ const { req } = createRequestHelpersFromEnv(getConfig());
1769
+ const offset = opts.offset ?? getDefaultOffset2();
1770
+ const res = await req("/externalcalendar/events/get", {
1771
+ method: "GET",
1772
+ query: { participant_id: participantId },
1773
+ headers: { offset: String(offset) }
1774
+ });
1775
+ if (res.status === "success" && Array.isArray(res.data)) {
1776
+ return res.data.map(mapApiRow);
1777
+ }
1778
+ return [];
1779
+ };
1780
+ var ExternalEvent_default = ExternalEventModel;
1781
+
1782
+ // src/models/appointment/Setting.js
1783
+ var import_mobx_state_tree14 = require("mobx-state-tree");
1784
+ var SettingModel = import_mobx_state_tree14.types.model("Setting", {
1785
+ id: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.number), null),
1786
+ settingsId: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.string, ""),
1787
+ calendarId: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.string, ""),
1788
+ logo: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null),
1789
+ theme: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null),
1790
+ schedulingButtonText: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null),
1791
+ scheduledMessage: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null)
1699
1792
  }).actions((self) => {
1700
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree13.getEnv);
1793
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree14.getEnv);
1701
1794
  return {
1702
1795
  /** GET setting/get – fetch setting for this calendar */
1703
1796
  async get() {
1704
1797
  const res = await reqGet("/setting/get", { calendar_id: self.calendarId });
1705
- if (res.status === "success" && res.data) (0, import_mobx_state_tree13.applySnapshot)(self, mapFromApi3(res.data));
1798
+ if (res.status === "success" && res.data) (0, import_mobx_state_tree14.applySnapshot)(self, mapFromApi3(res.data));
1706
1799
  return res;
1707
1800
  },
1708
1801
  /** POST setting/save – save this setting */
1709
1802
  async save() {
1710
1803
  const payload = toPayload2(self);
1711
1804
  const res = await reqPost("/setting/save", payload);
1712
- if (res.status === "success" && res.data) (0, import_mobx_state_tree13.applySnapshot)(self, mapFromApi3(res.data));
1805
+ if (res.status === "success" && res.data) (0, import_mobx_state_tree14.applySnapshot)(self, mapFromApi3(res.data));
1713
1806
  return res;
1714
1807
  },
1715
1808
  /** POST setting/logo/upload – upload logo file for this calendar */
@@ -1784,27 +1877,27 @@ SettingModel.uploadLogo = async (calendarId, file) => {
1784
1877
  var Setting_default = SettingModel;
1785
1878
 
1786
1879
  // src/models/appointment/Company.js
1787
- var import_mobx_state_tree14 = require("mobx-state-tree");
1788
- var CompanyModel = import_mobx_state_tree14.types.model("Company", {
1789
- id: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.number), null),
1790
- companyKey: import_mobx_state_tree14.types.identifier,
1791
- companyName: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.string, ""),
1792
- createdOn: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null),
1793
- modifiedOn: import_mobx_state_tree14.types.optional(import_mobx_state_tree14.types.maybeNull(import_mobx_state_tree14.types.string), null)
1880
+ var import_mobx_state_tree15 = require("mobx-state-tree");
1881
+ var CompanyModel = import_mobx_state_tree15.types.model("Company", {
1882
+ id: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.number), null),
1883
+ companyKey: import_mobx_state_tree15.types.identifier,
1884
+ companyName: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.string, ""),
1885
+ createdOn: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null),
1886
+ modifiedOn: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null)
1794
1887
  }).actions((self) => {
1795
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree14.getEnv);
1888
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree15.getEnv);
1796
1889
  return {
1797
1890
  /** GET Company/Get – fetch this company */
1798
1891
  async get() {
1799
1892
  const res = await reqGet("/Company/Get", { company_key: self.companyKey });
1800
- if (res.status === "success" && res.data) (0, import_mobx_state_tree14.applySnapshot)(self, mapFromApi4(res.data));
1893
+ if (res.status === "success" && res.data) (0, import_mobx_state_tree15.applySnapshot)(self, mapFromApi4(res.data));
1801
1894
  return res;
1802
1895
  },
1803
1896
  /** POST Company/Save – save this company */
1804
1897
  async save() {
1805
1898
  const payload = toPayload3(self);
1806
1899
  const res = await reqPost("/Company/Save", payload);
1807
- if (res.status === "success" && res.data) (0, import_mobx_state_tree14.applySnapshot)(self, mapFromApi4(res.data));
1900
+ if (res.status === "success" && res.data) (0, import_mobx_state_tree15.applySnapshot)(self, mapFromApi4(res.data));
1808
1901
  return res;
1809
1902
  }
1810
1903
  };
@@ -1852,13 +1945,13 @@ CompanyModel.save = async (payload) => {
1852
1945
  var Company_default = CompanyModel;
1853
1946
 
1854
1947
  // src/models/appointment/Asset.js
1855
- var import_mobx_state_tree15 = require("mobx-state-tree");
1856
- var AssetModel = import_mobx_state_tree15.types.model("Asset", {
1857
- url: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null),
1858
- blobPath: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null),
1859
- category: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null),
1860
- contentType: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.string), null),
1861
- size: import_mobx_state_tree15.types.optional(import_mobx_state_tree15.types.maybeNull(import_mobx_state_tree15.types.number), null)
1948
+ var import_mobx_state_tree16 = require("mobx-state-tree");
1949
+ var AssetModel = import_mobx_state_tree16.types.model("Asset", {
1950
+ url: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1951
+ blobPath: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1952
+ category: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1953
+ contentType: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1954
+ size: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.number), null)
1862
1955
  }).actions((self) => ({
1863
1956
  /** POST /asset/upload – upload file using model category. */
1864
1957
  async upload(file, opts = {}) {
@@ -1932,7 +2025,7 @@ AssetModel.upload = async (file, opts = {}) => {
1932
2025
  var Asset_default = AssetModel;
1933
2026
 
1934
2027
  // src/models/appointment/CalendarLocation.js
1935
- var import_mobx_state_tree16 = require("mobx-state-tree");
2028
+ var import_mobx_state_tree17 = require("mobx-state-tree");
1936
2029
  function mapCalendarLocationFromApi(d) {
1937
2030
  if (!d) return d;
1938
2031
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -1962,19 +2055,19 @@ function toPayload4(self) {
1962
2055
  sortOrder: self.sortOrder
1963
2056
  };
1964
2057
  }
1965
- var CalendarLocationModel = import_mobx_state_tree16.types.model("CalendarLocation", {
1966
- id: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.number), null),
1967
- calendarLocationId: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1968
- calendarId: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1969
- locationType: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.number, LocationType.Physical),
1970
- name: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.string, ""),
1971
- value: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.string, ""),
1972
- isDefault: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.boolean, false),
1973
- sortOrder: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.number, 0),
1974
- createdOn: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null),
1975
- modifiedOn: import_mobx_state_tree16.types.optional(import_mobx_state_tree16.types.maybeNull(import_mobx_state_tree16.types.string), null)
2058
+ var CalendarLocationModel = import_mobx_state_tree17.types.model("CalendarLocation", {
2059
+ id: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.number), null),
2060
+ calendarLocationId: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null),
2061
+ calendarId: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null),
2062
+ locationType: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.number, LocationType.Physical),
2063
+ name: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.string, ""),
2064
+ value: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.string, ""),
2065
+ isDefault: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.boolean, false),
2066
+ sortOrder: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.number, 0),
2067
+ createdOn: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null),
2068
+ modifiedOn: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null)
1976
2069
  }).actions((self) => {
1977
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree16.getEnv);
2070
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree17.getEnv);
1978
2071
  return {
1979
2072
  /** GET Calendar/Location/Get – list locations by calendar id */
1980
2073
  async getByCalendar(calendarId) {
@@ -1992,7 +2085,7 @@ var CalendarLocationModel = import_mobx_state_tree16.types.model("CalendarLocati
1992
2085
  async save() {
1993
2086
  const res = await reqPost("/Calendar/Location/Save", toPayload4(self));
1994
2087
  if (res.status === "success" && res.data) {
1995
- (0, import_mobx_state_tree16.applySnapshot)(self, mapCalendarLocationFromApi(res.data));
2088
+ (0, import_mobx_state_tree17.applySnapshot)(self, mapCalendarLocationFromApi(res.data));
1996
2089
  }
1997
2090
  return res;
1998
2091
  },
@@ -2054,7 +2147,7 @@ CalendarLocationModel.setDefault = async (calendarId, calendarLocationId) => {
2054
2147
  var CalendarLocation_default = CalendarLocationModel;
2055
2148
 
2056
2149
  // src/models/appointment/Preference.js
2057
- var import_mobx_state_tree17 = require("mobx-state-tree");
2150
+ var import_mobx_state_tree18 = require("mobx-state-tree");
2058
2151
  var PreferenceScope = {
2059
2152
  Global: 0,
2060
2153
  Consumer: 1,
@@ -2065,13 +2158,13 @@ var PreferenceScope = {
2065
2158
  User: 6
2066
2159
  };
2067
2160
  var SCOPE_NAMES = ["Global", "Consumer", "Company", "Calendar", "Event", "Participant", "User"];
2068
- var PreferenceModel = import_mobx_state_tree17.types.model("Preference", {
2069
- id: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.number), null),
2070
- preferenceId: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null),
2071
- level: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.number, 0),
2072
- primaryKey: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.string, ""),
2073
- preferenceOption: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.string, ""),
2074
- optionsJson: import_mobx_state_tree17.types.optional(import_mobx_state_tree17.types.maybeNull(import_mobx_state_tree17.types.string), null)
2161
+ var PreferenceModel = import_mobx_state_tree18.types.model("Preference", {
2162
+ id: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.number), null),
2163
+ preferenceId: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2164
+ level: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.number, 0),
2165
+ primaryKey: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.string, ""),
2166
+ preferenceOption: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.string, ""),
2167
+ optionsJson: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null)
2075
2168
  }).actions((self) => ({
2076
2169
  /** POST /preference/{scope}/{key}/{option} – save this preference to the API. */
2077
2170
  async save() {
@@ -2119,7 +2212,7 @@ PreferenceModel.delete = async (preferenceId) => {
2119
2212
  var Preference_default = PreferenceModel;
2120
2213
 
2121
2214
  // src/models/appointment/Flow.js
2122
- var import_mobx_state_tree18 = require("mobx-state-tree");
2215
+ var import_mobx_state_tree19 = require("mobx-state-tree");
2123
2216
  function mapFlowFromApi(d) {
2124
2217
  if (!d) return d;
2125
2218
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -2138,27 +2231,27 @@ function mapFlowFromApi(d) {
2138
2231
  modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on") ?? null
2139
2232
  };
2140
2233
  }
2141
- var FlowModel = import_mobx_state_tree18.types.model("Flow", {
2142
- id: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.number), null),
2143
- flowId: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.identifier, "new"),
2144
- companyKey: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2145
- calendarId: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2146
- name: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2147
- description: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2148
- flowJson: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.string, ""),
2149
- isActive: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.boolean, true),
2150
- isDeleted: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.boolean, false),
2151
- createdOn: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null),
2152
- modifiedOn: import_mobx_state_tree18.types.optional(import_mobx_state_tree18.types.maybeNull(import_mobx_state_tree18.types.string), null)
2234
+ var FlowModel = import_mobx_state_tree19.types.model("Flow", {
2235
+ id: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.number), null),
2236
+ flowId: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.identifier, "new"),
2237
+ companyKey: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2238
+ calendarId: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2239
+ name: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2240
+ description: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2241
+ flowJson: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2242
+ isActive: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.boolean, true),
2243
+ isDeleted: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.boolean, false),
2244
+ createdOn: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2245
+ modifiedOn: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null)
2153
2246
  }).actions((self) => {
2154
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree18.getEnv);
2247
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree19.getEnv);
2155
2248
  return {
2156
2249
  /** GET flow/get – fetch this flow by flowId */
2157
2250
  async get() {
2158
2251
  if (!self.flowId || self.flowId === "new") return { status: "failure", message: "flowId required" };
2159
2252
  const res = await reqGet("/flow/get", { flow_id: self.flowId });
2160
2253
  if (res.status === "success" && res.data) {
2161
- (0, import_mobx_state_tree18.applySnapshot)(self, mapFlowFromApi(res.data));
2254
+ (0, import_mobx_state_tree19.applySnapshot)(self, mapFlowFromApi(res.data));
2162
2255
  }
2163
2256
  return res;
2164
2257
  },
@@ -2174,7 +2267,7 @@ var FlowModel = import_mobx_state_tree18.types.model("Flow", {
2174
2267
  };
2175
2268
  const res = await reqPost("/flow/create", payload);
2176
2269
  if (res.status === "success" && res.data) {
2177
- (0, import_mobx_state_tree18.applySnapshot)(self, mapFlowFromApi(res.data));
2270
+ (0, import_mobx_state_tree19.applySnapshot)(self, mapFlowFromApi(res.data));
2178
2271
  }
2179
2272
  return res;
2180
2273
  },
@@ -2191,7 +2284,7 @@ var FlowModel = import_mobx_state_tree18.types.model("Flow", {
2191
2284
  };
2192
2285
  const res = await reqPost("/flow/update", payload);
2193
2286
  if (res.status === "success" && res.data) {
2194
- (0, import_mobx_state_tree18.applySnapshot)(self, mapFlowFromApi(res.data));
2287
+ (0, import_mobx_state_tree19.applySnapshot)(self, mapFlowFromApi(res.data));
2195
2288
  }
2196
2289
  return res;
2197
2290
  },
@@ -2205,7 +2298,7 @@ var FlowModel = import_mobx_state_tree18.types.model("Flow", {
2205
2298
  if (!self.flowId || self.flowId === "new") return { status: "failure", message: "flowId required" };
2206
2299
  const res = await reqPost("/flow/duplicate", { flow_id: self.flowId, new_name: newName ?? void 0 });
2207
2300
  if (res.status === "success" && res.data) {
2208
- (0, import_mobx_state_tree18.applySnapshot)(self, mapFlowFromApi(res.data));
2301
+ (0, import_mobx_state_tree19.applySnapshot)(self, mapFlowFromApi(res.data));
2209
2302
  }
2210
2303
  return res;
2211
2304
  },
@@ -2382,7 +2475,20 @@ FlowModel.getPreview = async (flowId) => {
2382
2475
  var Flow_default = FlowModel;
2383
2476
 
2384
2477
  // src/models/appointment/Lead.js
2385
- var import_mobx_state_tree19 = require("mobx-state-tree");
2478
+ var import_mobx_state_tree20 = require("mobx-state-tree");
2479
+ function pickLeadCreateContact(payload) {
2480
+ const p = payload ?? {};
2481
+ const email = String(p.email ?? p.Email ?? "").trim();
2482
+ const phone = String(p.phone ?? p.Phone ?? "").trim();
2483
+ const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
2484
+ return { email, phone, companyKey };
2485
+ }
2486
+ function validateLeadCreatePayload(payload) {
2487
+ const { email, phone, companyKey } = pickLeadCreateContact(payload);
2488
+ if (!companyKey) return { ok: false, message: "companyKey is required" };
2489
+ if (!email && !phone) return { ok: false, message: "email or phone is required" };
2490
+ return { ok: true };
2491
+ }
2386
2492
  function mapLeadFromApi(d) {
2387
2493
  if (!d) return d;
2388
2494
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -2411,27 +2517,27 @@ function mapLeadFromApi(d) {
2411
2517
  modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on") ?? null
2412
2518
  };
2413
2519
  }
2414
- var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2415
- id: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.number), null),
2416
- leadId: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.identifier, "new"),
2417
- email: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2418
- name: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2419
- phone: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2420
- companyKey: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2421
- source: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2422
- leadType: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.number, 2),
2423
- referrerLink: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.string, ""),
2424
- createdOn: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null),
2425
- modifiedOn: import_mobx_state_tree19.types.optional(import_mobx_state_tree19.types.maybeNull(import_mobx_state_tree19.types.string), null)
2520
+ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
2521
+ id: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.number), null),
2522
+ leadId: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.identifier, "new"),
2523
+ email: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2524
+ name: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2525
+ phone: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2526
+ companyKey: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2527
+ source: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2528
+ leadType: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.number, 2),
2529
+ referrerLink: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2530
+ createdOn: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2531
+ modifiedOn: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null)
2426
2532
  }).actions((self) => {
2427
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree19.getEnv);
2533
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree20.getEnv);
2428
2534
  return {
2429
2535
  /** GET /lead/get – fetch this lead by leadId */
2430
2536
  async get() {
2431
2537
  if (!self.leadId || self.leadId === "new") return { status: "failure", message: "leadId required" };
2432
2538
  const res = await reqGet("/lead/get", { lead_id: self.leadId });
2433
2539
  if (res.status === "success" && res.data) {
2434
- (0, import_mobx_state_tree19.applySnapshot)(self, mapLeadFromApi(res.data));
2540
+ (0, import_mobx_state_tree20.applySnapshot)(self, mapLeadFromApi(res.data));
2435
2541
  }
2436
2542
  return res;
2437
2543
  },
@@ -2442,7 +2548,7 @@ var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2442
2548
  }
2443
2549
  const lead = await LeadModel.getByEmail(self.email, self.companyKey);
2444
2550
  if (lead) {
2445
- (0, import_mobx_state_tree19.applySnapshot)(self, (0, import_mobx_state_tree19.getSnapshot)(lead));
2551
+ (0, import_mobx_state_tree20.applySnapshot)(self, (0, import_mobx_state_tree20.getSnapshot)(lead));
2446
2552
  }
2447
2553
  return { status: lead ? "success" : "failure", data: lead ?? void 0 };
2448
2554
  },
@@ -2453,7 +2559,7 @@ var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2453
2559
  }
2454
2560
  const lead = await LeadModel.getByPhone(self.phone, self.companyKey);
2455
2561
  if (lead) {
2456
- (0, import_mobx_state_tree19.applySnapshot)(self, (0, import_mobx_state_tree19.getSnapshot)(lead));
2562
+ (0, import_mobx_state_tree20.applySnapshot)(self, (0, import_mobx_state_tree20.getSnapshot)(lead));
2457
2563
  }
2458
2564
  return { status: lead ? "success" : "failure", data: lead ?? void 0 };
2459
2565
  },
@@ -2470,8 +2576,14 @@ var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2470
2576
  async getColumnSelection(userId) {
2471
2577
  return LeadModel.getColumnSelection(userId);
2472
2578
  },
2473
- /** POST /lead/create – create this lead */
2579
+ /** POST /lead/create – create this lead (requires companyKey and email or phone) */
2474
2580
  async createLead() {
2581
+ const validation = validateLeadCreatePayload({
2582
+ email: self.email,
2583
+ phone: self.phone,
2584
+ companyKey: self.companyKey
2585
+ });
2586
+ if (!validation.ok) return { status: "failure", message: validation.message };
2475
2587
  const payload = {
2476
2588
  email: self.email,
2477
2589
  name: self.name,
@@ -2483,7 +2595,7 @@ var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2483
2595
  };
2484
2596
  const res = await reqPost("/lead/create", payload);
2485
2597
  if (res.status === "success" && res.data) {
2486
- (0, import_mobx_state_tree19.applySnapshot)(self, mapLeadFromApi(res.data));
2598
+ (0, import_mobx_state_tree20.applySnapshot)(self, mapLeadFromApi(res.data));
2487
2599
  }
2488
2600
  return res;
2489
2601
  },
@@ -2504,7 +2616,7 @@ var LeadModel = import_mobx_state_tree19.types.model("Lead", {
2504
2616
  };
2505
2617
  const res = await reqPost("/lead/update", payload);
2506
2618
  if (res.status === "success" && res.data) {
2507
- (0, import_mobx_state_tree19.applySnapshot)(self, mapLeadFromApi(res.data));
2619
+ (0, import_mobx_state_tree20.applySnapshot)(self, mapLeadFromApi(res.data));
2508
2620
  }
2509
2621
  return res;
2510
2622
  },
@@ -2621,6 +2733,8 @@ LeadModel.getByCompany = async (companyKey, opts = {}) => {
2621
2733
  return null;
2622
2734
  };
2623
2735
  LeadModel.createLead = async (payload) => {
2736
+ const validation = validateLeadCreatePayload(payload);
2737
+ if (!validation.ok) return { status: "failure", message: validation.message };
2624
2738
  const { reqPost } = createRequestHelpersFromEnv(getConfig());
2625
2739
  const res = await reqPost("/lead/create", payload);
2626
2740
  if (res.status === "success" && res.data) {
@@ -2676,19 +2790,19 @@ LeadModel.getSources = async (companyKey) => {
2676
2790
  var Lead_default = LeadModel;
2677
2791
 
2678
2792
  // src/models/appointment/CustomField.js
2679
- var import_mobx_state_tree20 = require("mobx-state-tree");
2680
- var CustomFieldModel = import_mobx_state_tree20.types.model("CustomField", {
2681
- id: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.number), null),
2682
- customFieldId: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2683
- calendarId: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2684
- label: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2685
- type: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.string, ""),
2686
- isRequired: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.boolean, false),
2687
- createdOn: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2688
- modifiedOn: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.maybeNull(import_mobx_state_tree20.types.string), null),
2689
- isDeleted: import_mobx_state_tree20.types.optional(import_mobx_state_tree20.types.boolean, false)
2793
+ var import_mobx_state_tree21 = require("mobx-state-tree");
2794
+ var CustomFieldModel = import_mobx_state_tree21.types.model("CustomField", {
2795
+ id: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.number), null),
2796
+ customFieldId: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.string), null),
2797
+ calendarId: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.string), null),
2798
+ label: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.string), null),
2799
+ type: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.string, ""),
2800
+ isRequired: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.boolean, false),
2801
+ createdOn: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.string), null),
2802
+ modifiedOn: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.maybeNull(import_mobx_state_tree21.types.string), null),
2803
+ isDeleted: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.boolean, false)
2690
2804
  }).actions((self) => {
2691
- const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree20.getEnv);
2805
+ const { reqGet, reqPost } = createRequestHelpers(self, import_mobx_state_tree21.getEnv);
2692
2806
  return {
2693
2807
  /** GET /CustomField/GetAll?calendar_id= */
2694
2808
  async getAll(calendarId) {
@@ -2709,7 +2823,7 @@ var CustomFieldModel = import_mobx_state_tree20.types.model("CustomField", {
2709
2823
  const body = payload ?? toPayload5(self);
2710
2824
  const res = await reqPost("/CustomField/Add", body);
2711
2825
  if (res.status === "success" && res.data) {
2712
- (0, import_mobx_state_tree20.applySnapshot)(self, mapCustomFieldFromApi(res.data));
2826
+ (0, import_mobx_state_tree21.applySnapshot)(self, mapCustomFieldFromApi(res.data));
2713
2827
  }
2714
2828
  return res;
2715
2829
  },
@@ -3016,10 +3130,10 @@ var AuthModel = {
3016
3130
  var Auth_default = AuthModel;
3017
3131
 
3018
3132
  // src/models/appointment/index.js
3019
- var import_mobx_state_tree21 = require("mobx-state-tree");
3020
- var RootStore = import_mobx_state_tree21.types.model("RootStore", {
3021
- calendars: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.map(Calendar_default), {}),
3022
- events: import_mobx_state_tree21.types.optional(import_mobx_state_tree21.types.map(Event_default), {})
3133
+ var import_mobx_state_tree22 = require("mobx-state-tree");
3134
+ var RootStore = import_mobx_state_tree22.types.model("RootStore", {
3135
+ calendars: import_mobx_state_tree22.types.optional(import_mobx_state_tree22.types.map(Calendar_default), {}),
3136
+ events: import_mobx_state_tree22.types.optional(import_mobx_state_tree22.types.map(Event_default), {})
3023
3137
  }).actions((self) => ({
3024
3138
  addCalendar(snapshot) {
3025
3139
  const cal = Calendar_default.create(snapshot);
@@ -3059,6 +3173,8 @@ function createRootStore(initialState = {}) {
3059
3173
  EmailProvider,
3060
3174
  EventModel,
3061
3175
  EventSource,
3176
+ EventStatus,
3177
+ ExternalEventModel,
3062
3178
  FlowModel,
3063
3179
  LeadModel,
3064
3180
  LocationType,
package/dist/index.mjs CHANGED
@@ -266,6 +266,12 @@ var AttendeeStatus = {
266
266
  NeedsAction: 4,
267
267
  Canceled: 5
268
268
  };
269
+ var EventStatus = {
270
+ Scheduled: 1,
271
+ ReScheduled: 2,
272
+ Completed: 3,
273
+ Canceled: 4
274
+ };
269
275
  var RecurringFrequency = {
270
276
  None: 0,
271
277
  Daily: 1,
@@ -416,6 +422,7 @@ var EventModel = types4.model("Event", {
416
422
  flowId: types4.optional(types4.maybeNull(types4.string), null),
417
423
  flowPath: types4.optional(types4.maybeNull(types4.string), null),
418
424
  attendeeStatus: types4.optional(types4.number, AttendeeStatus.Tentative),
425
+ status: types4.optional(types4.maybeNull(types4.number), null),
419
426
  rescheduleLink: types4.optional(types4.maybeNull(types4.string), null),
420
427
  cancelLink: types4.optional(types4.maybeNull(types4.string), null),
421
428
  timeZone: types4.optional(types4.maybeNull(types4.string), null),
@@ -554,6 +561,18 @@ var EventModel = types4.model("Event", {
554
561
  async setAttendeeStatus(status) {
555
562
  const statusName = typeof status === "number" ? Object.keys(AttendeeStatus).find((k) => AttendeeStatus[k] === status) ?? "None" : status;
556
563
  return reqGet(`/event/${encodeURIComponent(self.eventId)}/${encodeURIComponent(statusName)}`);
564
+ },
565
+ /** GET /event/status/update – update event lifecycle status */
566
+ async setEventStatus(status) {
567
+ const statusValue = typeof status === "number" ? status : EventStatus[status] ?? status;
568
+ const res = await reqGet("/event/status/update", {
569
+ event_id: self.eventId,
570
+ status: statusValue
571
+ });
572
+ if (res.status === "success" && res.data) {
573
+ applySnapshot(self, { ...mapEventFromApi(res.data), eventId: self.eventId });
574
+ }
575
+ return res;
557
576
  }
558
577
  };
559
578
  });
@@ -586,6 +605,7 @@ function mapEventFromApi(d) {
586
605
  flowId: pick2("flowId", "FlowId", "flow_id"),
587
606
  flowPath: pick2("flowPath", "FlowPath", "flow_path"),
588
607
  attendeeStatus: n(pick2("attendeeStatus", "AttendeeStatus", "attendee_status")),
608
+ status: n(pick2("status", "Status")),
589
609
  eventSource: n(pick2("eventSource", "EventSource", "event_source")),
590
610
  rescheduleLink: pick2("rescheduleLink", "RescheduleLink", "reschedule_link"),
591
611
  cancelLink: pick2("cancelLink", "CancelLink", "cancel_link"),
@@ -817,6 +837,11 @@ EventModel.setAttendeeStatus = async (eventId, attendeeStatus) => {
817
837
  const statusName = typeof attendeeStatus === "number" ? Object.keys(AttendeeStatus).find((k) => AttendeeStatus[k] === attendeeStatus) ?? "None" : attendeeStatus;
818
838
  return reqGet(`/event/${encodeURIComponent(eventId)}/${encodeURIComponent(statusName)}`);
819
839
  };
840
+ EventModel.setEventStatus = async (eventId, status) => {
841
+ const { reqGet } = createRequestHelpersFromEnv(getConfig());
842
+ const statusValue = typeof status === "number" ? status : EventStatus[status] ?? status;
843
+ return reqGet("/event/status/update", { event_id: eventId, status: statusValue });
844
+ };
820
845
  var Event_default = EventModel;
821
846
 
822
847
  // src/models/appointment/CalendarParticipant.js
@@ -1614,16 +1639,82 @@ var OpeningHourModel = types12.model("OpeningHour", {
1614
1639
  });
1615
1640
  var OpeningHour_default = OpeningHourModel;
1616
1641
 
1642
+ // src/models/appointment/ExternalEvent.js
1643
+ import { types as types13 } from "mobx-state-tree";
1644
+ function getDefaultOffset2() {
1645
+ var _a;
1646
+ const cfg = getConfig();
1647
+ return ((_a = cfg == null ? void 0 : cfg.getDefaultOffset) == null ? void 0 : _a.call(cfg)) ?? -(/* @__PURE__ */ new Date()).getTimezoneOffset();
1648
+ }
1649
+ function pickStr(obj, ...keys) {
1650
+ for (const k of keys) {
1651
+ const v = obj[k];
1652
+ if (v != null && typeof v === "string") return v;
1653
+ }
1654
+ return void 0;
1655
+ }
1656
+ function pickNum(obj, ...keys) {
1657
+ for (const k of keys) {
1658
+ const v = obj[k];
1659
+ if (v != null) {
1660
+ const n = typeof v === "number" ? v : Number(v);
1661
+ if (!Number.isNaN(n)) return n;
1662
+ }
1663
+ }
1664
+ return void 0;
1665
+ }
1666
+ function toIsoDate(value) {
1667
+ if (value == null || value === "") return "";
1668
+ if (typeof value === "string") return value;
1669
+ if (value instanceof Date) return value.toISOString();
1670
+ return String(value);
1671
+ }
1672
+ var ExternalEventModel = types13.model("ExternalEvent", {
1673
+ title: types13.optional(types13.maybeNull(types13.string), null),
1674
+ startDate: types13.optional(types13.string, ""),
1675
+ endDate: types13.optional(types13.string, ""),
1676
+ startHour: types13.optional(types13.number, 0),
1677
+ startMinute: types13.optional(types13.number, 0),
1678
+ endHour: types13.optional(types13.number, 0),
1679
+ endMinute: types13.optional(types13.number, 0)
1680
+ });
1681
+ function mapApiRow(row) {
1682
+ return ExternalEventModel.create({
1683
+ title: pickStr(row, "title", "Title") ?? null,
1684
+ startDate: toIsoDate(row.startDate ?? row.StartDate),
1685
+ endDate: toIsoDate(row.endDate ?? row.EndDate),
1686
+ startHour: pickNum(row, "startHour", "StartHour") ?? 0,
1687
+ startMinute: pickNum(row, "startMinute", "StartMinute") ?? 0,
1688
+ endHour: pickNum(row, "endHour", "EndHour") ?? 0,
1689
+ endMinute: pickNum(row, "endMinute", "EndMinute") ?? 0
1690
+ });
1691
+ }
1692
+ ExternalEventModel.getByParticipant = async (participantId, opts = {}) => {
1693
+ if (!participantId) throw new Error("participantId required");
1694
+ const { req } = createRequestHelpersFromEnv(getConfig());
1695
+ const offset = opts.offset ?? getDefaultOffset2();
1696
+ const res = await req("/externalcalendar/events/get", {
1697
+ method: "GET",
1698
+ query: { participant_id: participantId },
1699
+ headers: { offset: String(offset) }
1700
+ });
1701
+ if (res.status === "success" && Array.isArray(res.data)) {
1702
+ return res.data.map(mapApiRow);
1703
+ }
1704
+ return [];
1705
+ };
1706
+ var ExternalEvent_default = ExternalEventModel;
1707
+
1617
1708
  // src/models/appointment/Setting.js
1618
- import { types as types13, getEnv as getEnv4, applySnapshot as applySnapshot4 } from "mobx-state-tree";
1619
- var SettingModel = types13.model("Setting", {
1620
- id: types13.optional(types13.maybeNull(types13.number), null),
1621
- settingsId: types13.optional(types13.string, ""),
1622
- calendarId: types13.optional(types13.string, ""),
1623
- logo: types13.optional(types13.maybeNull(types13.string), null),
1624
- theme: types13.optional(types13.maybeNull(types13.string), null),
1625
- schedulingButtonText: types13.optional(types13.maybeNull(types13.string), null),
1626
- scheduledMessage: types13.optional(types13.maybeNull(types13.string), null)
1709
+ import { types as types14, getEnv as getEnv4, applySnapshot as applySnapshot4 } from "mobx-state-tree";
1710
+ var SettingModel = types14.model("Setting", {
1711
+ id: types14.optional(types14.maybeNull(types14.number), null),
1712
+ settingsId: types14.optional(types14.string, ""),
1713
+ calendarId: types14.optional(types14.string, ""),
1714
+ logo: types14.optional(types14.maybeNull(types14.string), null),
1715
+ theme: types14.optional(types14.maybeNull(types14.string), null),
1716
+ schedulingButtonText: types14.optional(types14.maybeNull(types14.string), null),
1717
+ scheduledMessage: types14.optional(types14.maybeNull(types14.string), null)
1627
1718
  }).actions((self) => {
1628
1719
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv4);
1629
1720
  return {
@@ -1712,13 +1803,13 @@ SettingModel.uploadLogo = async (calendarId, file) => {
1712
1803
  var Setting_default = SettingModel;
1713
1804
 
1714
1805
  // src/models/appointment/Company.js
1715
- import { types as types14, getEnv as getEnv5, applySnapshot as applySnapshot5 } from "mobx-state-tree";
1716
- var CompanyModel = types14.model("Company", {
1717
- id: types14.optional(types14.maybeNull(types14.number), null),
1718
- companyKey: types14.identifier,
1719
- companyName: types14.optional(types14.string, ""),
1720
- createdOn: types14.optional(types14.maybeNull(types14.string), null),
1721
- modifiedOn: types14.optional(types14.maybeNull(types14.string), null)
1806
+ import { types as types15, getEnv as getEnv5, applySnapshot as applySnapshot5 } from "mobx-state-tree";
1807
+ var CompanyModel = types15.model("Company", {
1808
+ id: types15.optional(types15.maybeNull(types15.number), null),
1809
+ companyKey: types15.identifier,
1810
+ companyName: types15.optional(types15.string, ""),
1811
+ createdOn: types15.optional(types15.maybeNull(types15.string), null),
1812
+ modifiedOn: types15.optional(types15.maybeNull(types15.string), null)
1722
1813
  }).actions((self) => {
1723
1814
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv5);
1724
1815
  return {
@@ -1780,13 +1871,13 @@ CompanyModel.save = async (payload) => {
1780
1871
  var Company_default = CompanyModel;
1781
1872
 
1782
1873
  // src/models/appointment/Asset.js
1783
- import { types as types15, getEnv as getEnv6 } from "mobx-state-tree";
1784
- var AssetModel = types15.model("Asset", {
1785
- url: types15.optional(types15.maybeNull(types15.string), null),
1786
- blobPath: types15.optional(types15.maybeNull(types15.string), null),
1787
- category: types15.optional(types15.maybeNull(types15.string), null),
1788
- contentType: types15.optional(types15.maybeNull(types15.string), null),
1789
- size: types15.optional(types15.maybeNull(types15.number), null)
1874
+ import { types as types16, getEnv as getEnv6 } from "mobx-state-tree";
1875
+ var AssetModel = types16.model("Asset", {
1876
+ url: types16.optional(types16.maybeNull(types16.string), null),
1877
+ blobPath: types16.optional(types16.maybeNull(types16.string), null),
1878
+ category: types16.optional(types16.maybeNull(types16.string), null),
1879
+ contentType: types16.optional(types16.maybeNull(types16.string), null),
1880
+ size: types16.optional(types16.maybeNull(types16.number), null)
1790
1881
  }).actions((self) => ({
1791
1882
  /** POST /asset/upload – upload file using model category. */
1792
1883
  async upload(file, opts = {}) {
@@ -1860,7 +1951,7 @@ AssetModel.upload = async (file, opts = {}) => {
1860
1951
  var Asset_default = AssetModel;
1861
1952
 
1862
1953
  // src/models/appointment/CalendarLocation.js
1863
- import { types as types16, getEnv as getEnv7, applySnapshot as applySnapshot6 } from "mobx-state-tree";
1954
+ import { types as types17, getEnv as getEnv7, applySnapshot as applySnapshot6 } from "mobx-state-tree";
1864
1955
  function mapCalendarLocationFromApi(d) {
1865
1956
  if (!d) return d;
1866
1957
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -1890,17 +1981,17 @@ function toPayload4(self) {
1890
1981
  sortOrder: self.sortOrder
1891
1982
  };
1892
1983
  }
1893
- var CalendarLocationModel = types16.model("CalendarLocation", {
1894
- id: types16.optional(types16.maybeNull(types16.number), null),
1895
- calendarLocationId: types16.optional(types16.maybeNull(types16.string), null),
1896
- calendarId: types16.optional(types16.maybeNull(types16.string), null),
1897
- locationType: types16.optional(types16.number, LocationType.Physical),
1898
- name: types16.optional(types16.string, ""),
1899
- value: types16.optional(types16.string, ""),
1900
- isDefault: types16.optional(types16.boolean, false),
1901
- sortOrder: types16.optional(types16.number, 0),
1902
- createdOn: types16.optional(types16.maybeNull(types16.string), null),
1903
- modifiedOn: types16.optional(types16.maybeNull(types16.string), null)
1984
+ var CalendarLocationModel = types17.model("CalendarLocation", {
1985
+ id: types17.optional(types17.maybeNull(types17.number), null),
1986
+ calendarLocationId: types17.optional(types17.maybeNull(types17.string), null),
1987
+ calendarId: types17.optional(types17.maybeNull(types17.string), null),
1988
+ locationType: types17.optional(types17.number, LocationType.Physical),
1989
+ name: types17.optional(types17.string, ""),
1990
+ value: types17.optional(types17.string, ""),
1991
+ isDefault: types17.optional(types17.boolean, false),
1992
+ sortOrder: types17.optional(types17.number, 0),
1993
+ createdOn: types17.optional(types17.maybeNull(types17.string), null),
1994
+ modifiedOn: types17.optional(types17.maybeNull(types17.string), null)
1904
1995
  }).actions((self) => {
1905
1996
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv7);
1906
1997
  return {
@@ -1982,7 +2073,7 @@ CalendarLocationModel.setDefault = async (calendarId, calendarLocationId) => {
1982
2073
  var CalendarLocation_default = CalendarLocationModel;
1983
2074
 
1984
2075
  // src/models/appointment/Preference.js
1985
- import { types as types17 } from "mobx-state-tree";
2076
+ import { types as types18 } from "mobx-state-tree";
1986
2077
  var PreferenceScope = {
1987
2078
  Global: 0,
1988
2079
  Consumer: 1,
@@ -1993,13 +2084,13 @@ var PreferenceScope = {
1993
2084
  User: 6
1994
2085
  };
1995
2086
  var SCOPE_NAMES = ["Global", "Consumer", "Company", "Calendar", "Event", "Participant", "User"];
1996
- var PreferenceModel = types17.model("Preference", {
1997
- id: types17.optional(types17.maybeNull(types17.number), null),
1998
- preferenceId: types17.optional(types17.maybeNull(types17.string), null),
1999
- level: types17.optional(types17.number, 0),
2000
- primaryKey: types17.optional(types17.string, ""),
2001
- preferenceOption: types17.optional(types17.string, ""),
2002
- optionsJson: types17.optional(types17.maybeNull(types17.string), null)
2087
+ var PreferenceModel = types18.model("Preference", {
2088
+ id: types18.optional(types18.maybeNull(types18.number), null),
2089
+ preferenceId: types18.optional(types18.maybeNull(types18.string), null),
2090
+ level: types18.optional(types18.number, 0),
2091
+ primaryKey: types18.optional(types18.string, ""),
2092
+ preferenceOption: types18.optional(types18.string, ""),
2093
+ optionsJson: types18.optional(types18.maybeNull(types18.string), null)
2003
2094
  }).actions((self) => ({
2004
2095
  /** POST /preference/{scope}/{key}/{option} – save this preference to the API. */
2005
2096
  async save() {
@@ -2047,7 +2138,7 @@ PreferenceModel.delete = async (preferenceId) => {
2047
2138
  var Preference_default = PreferenceModel;
2048
2139
 
2049
2140
  // src/models/appointment/Flow.js
2050
- import { types as types18, getEnv as getEnv8, applySnapshot as applySnapshot7 } from "mobx-state-tree";
2141
+ import { types as types19, getEnv as getEnv8, applySnapshot as applySnapshot7 } from "mobx-state-tree";
2051
2142
  function mapFlowFromApi(d) {
2052
2143
  if (!d) return d;
2053
2144
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -2066,18 +2157,18 @@ function mapFlowFromApi(d) {
2066
2157
  modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on") ?? null
2067
2158
  };
2068
2159
  }
2069
- var FlowModel = types18.model("Flow", {
2070
- id: types18.optional(types18.maybeNull(types18.number), null),
2071
- flowId: types18.optional(types18.identifier, "new"),
2072
- companyKey: types18.optional(types18.maybeNull(types18.string), null),
2073
- calendarId: types18.optional(types18.maybeNull(types18.string), null),
2074
- name: types18.optional(types18.maybeNull(types18.string), null),
2075
- description: types18.optional(types18.maybeNull(types18.string), null),
2076
- flowJson: types18.optional(types18.string, ""),
2077
- isActive: types18.optional(types18.boolean, true),
2078
- isDeleted: types18.optional(types18.boolean, false),
2079
- createdOn: types18.optional(types18.maybeNull(types18.string), null),
2080
- modifiedOn: types18.optional(types18.maybeNull(types18.string), null)
2160
+ var FlowModel = types19.model("Flow", {
2161
+ id: types19.optional(types19.maybeNull(types19.number), null),
2162
+ flowId: types19.optional(types19.identifier, "new"),
2163
+ companyKey: types19.optional(types19.maybeNull(types19.string), null),
2164
+ calendarId: types19.optional(types19.maybeNull(types19.string), null),
2165
+ name: types19.optional(types19.maybeNull(types19.string), null),
2166
+ description: types19.optional(types19.maybeNull(types19.string), null),
2167
+ flowJson: types19.optional(types19.string, ""),
2168
+ isActive: types19.optional(types19.boolean, true),
2169
+ isDeleted: types19.optional(types19.boolean, false),
2170
+ createdOn: types19.optional(types19.maybeNull(types19.string), null),
2171
+ modifiedOn: types19.optional(types19.maybeNull(types19.string), null)
2081
2172
  }).actions((self) => {
2082
2173
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv8);
2083
2174
  return {
@@ -2310,7 +2401,20 @@ FlowModel.getPreview = async (flowId) => {
2310
2401
  var Flow_default = FlowModel;
2311
2402
 
2312
2403
  // src/models/appointment/Lead.js
2313
- import { types as types19, getEnv as getEnv9, applySnapshot as applySnapshot8, getSnapshot } from "mobx-state-tree";
2404
+ import { types as types20, getEnv as getEnv9, applySnapshot as applySnapshot8, getSnapshot } from "mobx-state-tree";
2405
+ function pickLeadCreateContact(payload) {
2406
+ const p = payload ?? {};
2407
+ const email = String(p.email ?? p.Email ?? "").trim();
2408
+ const phone = String(p.phone ?? p.Phone ?? "").trim();
2409
+ const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
2410
+ return { email, phone, companyKey };
2411
+ }
2412
+ function validateLeadCreatePayload(payload) {
2413
+ const { email, phone, companyKey } = pickLeadCreateContact(payload);
2414
+ if (!companyKey) return { ok: false, message: "companyKey is required" };
2415
+ if (!email && !phone) return { ok: false, message: "email or phone is required" };
2416
+ return { ok: true };
2417
+ }
2314
2418
  function mapLeadFromApi(d) {
2315
2419
  if (!d) return d;
2316
2420
  const pick2 = (...keys) => keys.reduce((v, k) => v ?? d[k], void 0);
@@ -2339,18 +2443,18 @@ function mapLeadFromApi(d) {
2339
2443
  modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on") ?? null
2340
2444
  };
2341
2445
  }
2342
- var LeadModel = types19.model("Lead", {
2343
- id: types19.optional(types19.maybeNull(types19.number), null),
2344
- leadId: types19.optional(types19.identifier, "new"),
2345
- email: types19.optional(types19.string, ""),
2346
- name: types19.optional(types19.string, ""),
2347
- phone: types19.optional(types19.string, ""),
2348
- companyKey: types19.optional(types19.string, ""),
2349
- source: types19.optional(types19.string, ""),
2350
- leadType: types19.optional(types19.number, 2),
2351
- referrerLink: types19.optional(types19.string, ""),
2352
- createdOn: types19.optional(types19.maybeNull(types19.string), null),
2353
- modifiedOn: types19.optional(types19.maybeNull(types19.string), null)
2446
+ var LeadModel = types20.model("Lead", {
2447
+ id: types20.optional(types20.maybeNull(types20.number), null),
2448
+ leadId: types20.optional(types20.identifier, "new"),
2449
+ email: types20.optional(types20.string, ""),
2450
+ name: types20.optional(types20.string, ""),
2451
+ phone: types20.optional(types20.string, ""),
2452
+ companyKey: types20.optional(types20.string, ""),
2453
+ source: types20.optional(types20.string, ""),
2454
+ leadType: types20.optional(types20.number, 2),
2455
+ referrerLink: types20.optional(types20.string, ""),
2456
+ createdOn: types20.optional(types20.maybeNull(types20.string), null),
2457
+ modifiedOn: types20.optional(types20.maybeNull(types20.string), null)
2354
2458
  }).actions((self) => {
2355
2459
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv9);
2356
2460
  return {
@@ -2398,8 +2502,14 @@ var LeadModel = types19.model("Lead", {
2398
2502
  async getColumnSelection(userId) {
2399
2503
  return LeadModel.getColumnSelection(userId);
2400
2504
  },
2401
- /** POST /lead/create – create this lead */
2505
+ /** POST /lead/create – create this lead (requires companyKey and email or phone) */
2402
2506
  async createLead() {
2507
+ const validation = validateLeadCreatePayload({
2508
+ email: self.email,
2509
+ phone: self.phone,
2510
+ companyKey: self.companyKey
2511
+ });
2512
+ if (!validation.ok) return { status: "failure", message: validation.message };
2403
2513
  const payload = {
2404
2514
  email: self.email,
2405
2515
  name: self.name,
@@ -2549,6 +2659,8 @@ LeadModel.getByCompany = async (companyKey, opts = {}) => {
2549
2659
  return null;
2550
2660
  };
2551
2661
  LeadModel.createLead = async (payload) => {
2662
+ const validation = validateLeadCreatePayload(payload);
2663
+ if (!validation.ok) return { status: "failure", message: validation.message };
2552
2664
  const { reqPost } = createRequestHelpersFromEnv(getConfig());
2553
2665
  const res = await reqPost("/lead/create", payload);
2554
2666
  if (res.status === "success" && res.data) {
@@ -2604,17 +2716,17 @@ LeadModel.getSources = async (companyKey) => {
2604
2716
  var Lead_default = LeadModel;
2605
2717
 
2606
2718
  // src/models/appointment/CustomField.js
2607
- import { types as types20, getEnv as getEnv10, applySnapshot as applySnapshot9 } from "mobx-state-tree";
2608
- var CustomFieldModel = types20.model("CustomField", {
2609
- id: types20.optional(types20.maybeNull(types20.number), null),
2610
- customFieldId: types20.optional(types20.maybeNull(types20.string), null),
2611
- calendarId: types20.optional(types20.maybeNull(types20.string), null),
2612
- label: types20.optional(types20.maybeNull(types20.string), null),
2613
- type: types20.optional(types20.string, ""),
2614
- isRequired: types20.optional(types20.boolean, false),
2615
- createdOn: types20.optional(types20.maybeNull(types20.string), null),
2616
- modifiedOn: types20.optional(types20.maybeNull(types20.string), null),
2617
- isDeleted: types20.optional(types20.boolean, false)
2719
+ import { types as types21, getEnv as getEnv10, applySnapshot as applySnapshot9 } from "mobx-state-tree";
2720
+ var CustomFieldModel = types21.model("CustomField", {
2721
+ id: types21.optional(types21.maybeNull(types21.number), null),
2722
+ customFieldId: types21.optional(types21.maybeNull(types21.string), null),
2723
+ calendarId: types21.optional(types21.maybeNull(types21.string), null),
2724
+ label: types21.optional(types21.maybeNull(types21.string), null),
2725
+ type: types21.optional(types21.string, ""),
2726
+ isRequired: types21.optional(types21.boolean, false),
2727
+ createdOn: types21.optional(types21.maybeNull(types21.string), null),
2728
+ modifiedOn: types21.optional(types21.maybeNull(types21.string), null),
2729
+ isDeleted: types21.optional(types21.boolean, false)
2618
2730
  }).actions((self) => {
2619
2731
  const { reqGet, reqPost } = createRequestHelpers(self, getEnv10);
2620
2732
  return {
@@ -2944,10 +3056,10 @@ var AuthModel = {
2944
3056
  var Auth_default = AuthModel;
2945
3057
 
2946
3058
  // src/models/appointment/index.js
2947
- import { types as types21, getEnv as getEnv11 } from "mobx-state-tree";
2948
- var RootStore = types21.model("RootStore", {
2949
- calendars: types21.optional(types21.map(Calendar_default), {}),
2950
- events: types21.optional(types21.map(Event_default), {})
3059
+ import { types as types22, getEnv as getEnv11 } from "mobx-state-tree";
3060
+ var RootStore = types22.model("RootStore", {
3061
+ calendars: types22.optional(types22.map(Calendar_default), {}),
3062
+ events: types22.optional(types22.map(Event_default), {})
2951
3063
  }).actions((self) => ({
2952
3064
  addCalendar(snapshot) {
2953
3065
  const cal = Calendar_default.create(snapshot);
@@ -2986,6 +3098,8 @@ export {
2986
3098
  EmailProvider,
2987
3099
  Event_default as EventModel,
2988
3100
  EventSource,
3101
+ EventStatus,
3102
+ ExternalEvent_default as ExternalEventModel,
2989
3103
  Flow_default as FlowModel,
2990
3104
  Lead_default as LeadModel,
2991
3105
  LocationType,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blazeo.com/calendar-client",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "Blazeo Calendar / Appointment API client with MobX State Tree models",
5
5
  "exports": {
6
6
  ".": {