@blazeo.com/calendar-client 1.0.50 → 1.0.52

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
@@ -225,6 +225,13 @@ export type PhoneNumberPurchaseResult = {
225
225
  Success?: boolean;
226
226
  };
227
227
 
228
+ export type PhoneNumberReleaseData = {
229
+ company_key?: string;
230
+ phone_number?: string;
231
+ released_from_twilio?: boolean;
232
+ cleared_local_state?: boolean;
233
+ };
234
+
228
235
  export const CompanyModel: {
229
236
  get(companyKey: string): Promise<unknown>;
230
237
  getAll(): Promise<unknown[] | null>;
@@ -234,6 +241,11 @@ export const CompanyModel: {
234
241
  data?: PhoneNumberPurchaseResult;
235
242
  message?: string;
236
243
  }>;
244
+ releasePhoneNumber(companyKey: string, phoneNumber?: string): Promise<{
245
+ status: string;
246
+ data?: PhoneNumberReleaseData;
247
+ message?: string;
248
+ }>;
237
249
  create(snapshot: object, options?: { env?: object }): unknown;
238
250
  };
239
251
  export const AssetModel: {
@@ -338,26 +350,30 @@ export const LeadModel: {
338
350
  data?: { userId?: string; columns?: string[]; isDefault?: boolean };
339
351
  message?: string;
340
352
  }>;
341
- /** Requires companyKey and at least one of email or phone. */
353
+ /** Requires firstName/name, leadType, companyKey and at least one of email or phone. */
342
354
  createLead(payload: {
343
355
  companyKey: string;
344
356
  email?: string;
345
357
  phone?: string;
346
358
  name?: string;
359
+ firstName?: string;
360
+ first_name?: string;
347
361
  source?: string;
348
- leadType?: 'sales' | 'service' | 'others' | number | null;
362
+ leadType: 'sales' | 'service' | 'others' | number;
349
363
  referrerLink?: string;
350
364
  description?: string;
351
365
  }): Promise<{ status: string; data?: unknown; message?: string } | null>;
352
- /** Requires leadId; when email or phone is included, at least one must be non-empty. */
366
+ /** Requires leadId, firstName/name and leadType; when email or phone is included, at least one must be non-empty. */
353
367
  updateLead(payload: {
354
368
  leadId: string;
355
369
  email?: string;
356
370
  companyKey?: string;
357
371
  name?: string;
372
+ firstName?: string;
373
+ first_name?: string;
358
374
  phone?: string;
359
375
  source?: string;
360
- leadType?: 'sales' | 'service' | 'others' | number | null;
376
+ leadType: 'sales' | 'service' | 'others' | number;
361
377
  referrerLink?: string;
362
378
  description?: string;
363
379
  }): Promise<unknown>;
package/dist/index.js CHANGED
@@ -2037,6 +2037,12 @@ CompanyModel.purchasePhoneNumber = async (companyKey, companyId) => {
2037
2037
  const { reqGet } = createRequestHelpersFromEnv(getConfig());
2038
2038
  return reqGet("/Company/PhoneNumber/Purchase", { company_key: companyKey, company_id: companyId });
2039
2039
  };
2040
+ CompanyModel.releasePhoneNumber = async (companyKey, phoneNumber) => {
2041
+ const { reqGet } = createRequestHelpersFromEnv(getConfig());
2042
+ const query = { company_key: companyKey };
2043
+ if (phoneNumber) query.phone_number = phoneNumber;
2044
+ return reqGet("/Company/PhoneNumber/Release", query);
2045
+ };
2040
2046
  var Company_default = CompanyModel;
2041
2047
 
2042
2048
  // src/models/appointment/Asset.js
@@ -2578,9 +2584,24 @@ function pickLeadCreateContact(payload) {
2578
2584
  const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
2579
2585
  return { email, phone, companyKey };
2580
2586
  }
2587
+ function pickLeadRequiredFields(payload) {
2588
+ const p = payload ?? {};
2589
+ const firstName = String(
2590
+ p.firstName ?? p.first_name ?? p.name ?? p.Name ?? ""
2591
+ ).trim();
2592
+ const leadType = p.leadType ?? p.lead_type ?? p.LeadType ?? null;
2593
+ return { firstName, leadType };
2594
+ }
2595
+ function hasLeadTypeValue(leadType) {
2596
+ if (leadType == null) return false;
2597
+ return !(typeof leadType === "string" && leadType.trim() === "");
2598
+ }
2581
2599
  function validateLeadCreatePayload(payload) {
2582
2600
  const { email, phone, companyKey } = pickLeadCreateContact(payload);
2601
+ const { firstName, leadType } = pickLeadRequiredFields(payload);
2583
2602
  if (!companyKey) return { ok: false, message: "companyKey is required" };
2603
+ if (!firstName) return { ok: false, message: "First name is mandatory" };
2604
+ if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
2584
2605
  if (!email && !phone) return { ok: false, message: "email or phone is required" };
2585
2606
  return { ok: true };
2586
2607
  }
@@ -2588,6 +2609,9 @@ function validateLeadUpdatePayload(payload) {
2588
2609
  const p = payload ?? {};
2589
2610
  const leadId = String(p.leadId ?? p.lead_id ?? p.LeadId ?? "").trim();
2590
2611
  if (!leadId) return { ok: false, message: "leadId required" };
2612
+ const { firstName, leadType } = pickLeadRequiredFields(payload);
2613
+ if (!firstName) return { ok: false, message: "First name is mandatory" };
2614
+ if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
2591
2615
  const hasEmailKey = "email" in p || "Email" in p;
2592
2616
  const hasPhoneKey = "phone" in p || "Phone" in p;
2593
2617
  if (hasEmailKey || hasPhoneKey) {
@@ -2685,12 +2709,14 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
2685
2709
  async getColumnSelection(userId) {
2686
2710
  return LeadModel.getColumnSelection(userId);
2687
2711
  },
2688
- /** POST /lead/create – create this lead (requires companyKey and email or phone) */
2712
+ /** POST /lead/create – create this lead (requires firstName, leadType, companyKey and email/phone) */
2689
2713
  async createLead() {
2690
2714
  const validation = validateLeadCreatePayload({
2691
2715
  email: self.email,
2692
2716
  phone: self.phone,
2693
- companyKey: self.companyKey
2717
+ companyKey: self.companyKey,
2718
+ firstName: self.name,
2719
+ leadType: self.leadType
2694
2720
  });
2695
2721
  if (!validation.ok) return { status: "failure", message: validation.message };
2696
2722
  const payload = {
@@ -2709,7 +2735,7 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
2709
2735
  }
2710
2736
  return res;
2711
2737
  },
2712
- /** POST /lead/update – update this lead (requires email or phone) */
2738
+ /** POST /lead/update – update this lead (requires firstName and leadType) */
2713
2739
  async updateLead() {
2714
2740
  if (!self.leadId || self.leadId === "new") {
2715
2741
  return { status: "failure", message: "leadId required" };
@@ -2717,7 +2743,9 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
2717
2743
  const validation = validateLeadUpdatePayload({
2718
2744
  leadId: self.leadId,
2719
2745
  email: self.email,
2720
- phone: self.phone
2746
+ phone: self.phone,
2747
+ firstName: self.name,
2748
+ leadType: self.leadType
2721
2749
  });
2722
2750
  if (!validation.ok) return { status: "failure", message: validation.message };
2723
2751
  const payload = {
package/dist/index.mjs CHANGED
@@ -1962,6 +1962,12 @@ CompanyModel.purchasePhoneNumber = async (companyKey, companyId) => {
1962
1962
  const { reqGet } = createRequestHelpersFromEnv(getConfig());
1963
1963
  return reqGet("/Company/PhoneNumber/Purchase", { company_key: companyKey, company_id: companyId });
1964
1964
  };
1965
+ CompanyModel.releasePhoneNumber = async (companyKey, phoneNumber) => {
1966
+ const { reqGet } = createRequestHelpersFromEnv(getConfig());
1967
+ const query = { company_key: companyKey };
1968
+ if (phoneNumber) query.phone_number = phoneNumber;
1969
+ return reqGet("/Company/PhoneNumber/Release", query);
1970
+ };
1965
1971
  var Company_default = CompanyModel;
1966
1972
 
1967
1973
  // src/models/appointment/Asset.js
@@ -2503,9 +2509,24 @@ function pickLeadCreateContact(payload) {
2503
2509
  const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
2504
2510
  return { email, phone, companyKey };
2505
2511
  }
2512
+ function pickLeadRequiredFields(payload) {
2513
+ const p = payload ?? {};
2514
+ const firstName = String(
2515
+ p.firstName ?? p.first_name ?? p.name ?? p.Name ?? ""
2516
+ ).trim();
2517
+ const leadType = p.leadType ?? p.lead_type ?? p.LeadType ?? null;
2518
+ return { firstName, leadType };
2519
+ }
2520
+ function hasLeadTypeValue(leadType) {
2521
+ if (leadType == null) return false;
2522
+ return !(typeof leadType === "string" && leadType.trim() === "");
2523
+ }
2506
2524
  function validateLeadCreatePayload(payload) {
2507
2525
  const { email, phone, companyKey } = pickLeadCreateContact(payload);
2526
+ const { firstName, leadType } = pickLeadRequiredFields(payload);
2508
2527
  if (!companyKey) return { ok: false, message: "companyKey is required" };
2528
+ if (!firstName) return { ok: false, message: "First name is mandatory" };
2529
+ if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
2509
2530
  if (!email && !phone) return { ok: false, message: "email or phone is required" };
2510
2531
  return { ok: true };
2511
2532
  }
@@ -2513,6 +2534,9 @@ function validateLeadUpdatePayload(payload) {
2513
2534
  const p = payload ?? {};
2514
2535
  const leadId = String(p.leadId ?? p.lead_id ?? p.LeadId ?? "").trim();
2515
2536
  if (!leadId) return { ok: false, message: "leadId required" };
2537
+ const { firstName, leadType } = pickLeadRequiredFields(payload);
2538
+ if (!firstName) return { ok: false, message: "First name is mandatory" };
2539
+ if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
2516
2540
  const hasEmailKey = "email" in p || "Email" in p;
2517
2541
  const hasPhoneKey = "phone" in p || "Phone" in p;
2518
2542
  if (hasEmailKey || hasPhoneKey) {
@@ -2610,12 +2634,14 @@ var LeadModel = types20.model("Lead", {
2610
2634
  async getColumnSelection(userId) {
2611
2635
  return LeadModel.getColumnSelection(userId);
2612
2636
  },
2613
- /** POST /lead/create – create this lead (requires companyKey and email or phone) */
2637
+ /** POST /lead/create – create this lead (requires firstName, leadType, companyKey and email/phone) */
2614
2638
  async createLead() {
2615
2639
  const validation = validateLeadCreatePayload({
2616
2640
  email: self.email,
2617
2641
  phone: self.phone,
2618
- companyKey: self.companyKey
2642
+ companyKey: self.companyKey,
2643
+ firstName: self.name,
2644
+ leadType: self.leadType
2619
2645
  });
2620
2646
  if (!validation.ok) return { status: "failure", message: validation.message };
2621
2647
  const payload = {
@@ -2634,7 +2660,7 @@ var LeadModel = types20.model("Lead", {
2634
2660
  }
2635
2661
  return res;
2636
2662
  },
2637
- /** POST /lead/update – update this lead (requires email or phone) */
2663
+ /** POST /lead/update – update this lead (requires firstName and leadType) */
2638
2664
  async updateLead() {
2639
2665
  if (!self.leadId || self.leadId === "new") {
2640
2666
  return { status: "failure", message: "leadId required" };
@@ -2642,7 +2668,9 @@ var LeadModel = types20.model("Lead", {
2642
2668
  const validation = validateLeadUpdatePayload({
2643
2669
  leadId: self.leadId,
2644
2670
  email: self.email,
2645
- phone: self.phone
2671
+ phone: self.phone,
2672
+ firstName: self.name,
2673
+ leadType: self.leadType
2646
2674
  });
2647
2675
  if (!validation.ok) return { status: "failure", message: validation.message };
2648
2676
  const payload = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blazeo.com/calendar-client",
3
- "version": "1.0.50",
3
+ "version": "1.0.52",
4
4
  "description": "Blazeo Calendar / Appointment API client with MobX State Tree models",
5
5
  "exports": {
6
6
  ".": {