@spytecgps/nova-orm 1.4.287 → 1.4.289

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.
@@ -0,0 +1,58 @@
1
+ declare const expansionOfferArray: readonly ["free_subscription", "free_loaner", "control"];
2
+ export type ExpansionOffer = (typeof expansionOfferArray)[number];
3
+ declare const statusArray: readonly ["assigned", "pending", "contacted", "payment_collected", "shipped", "subscription_created", "activated", "returned", "canceled", "expired"];
4
+ export type BillingCampaignExpansionStatus = (typeof statusArray)[number];
5
+ /**
6
+ * The experiment record for the Multi-Device Retention Test — one row per client, written the first
7
+ * time the offer is evaluated for them, `control` included so intent-to-treat analysis has a
8
+ * denominator.
9
+ *
10
+ * `UNIQUE(clientId)` is doing real work here. It is simultaneously:
11
+ * - the immutability guarantee the spec asks for (assignment cannot change once written),
12
+ * - "one offer per account" from the legal copy,
13
+ * - and the race guard, since concurrent first-exposures collide on the key rather than on a
14
+ * read-then-write in application code. A duplicate-key error means somebody else won; re-read.
15
+ *
16
+ * Bucketing happens in LaunchDarkly, not here. The FE reports whichever variation LD resolved and
17
+ * this row records it first-write-wins, so a later flag reconfiguration cannot move an enrolled
18
+ * client between arms.
19
+ *
20
+ * `expansionOffer` is the internal vocabulary. Notion fixes the analytics contract as
21
+ * `trial_variant ∈ {a, b, control}` and ChartMogul segments on it, so `free_subscription` → `a` and
22
+ * `free_loaner` → `b` at exactly two boundaries: Stripe subscription metadata, and the
23
+ * `trial_variant` property on analytics events. Nothing else should speak in letters.
24
+ *
25
+ * Three satellite tables hang off this one as the client progresses — address and order at submit,
26
+ * device at activation. A missing row *means* that stage has not happened.
27
+ */
28
+ export declare class BillingCampaignExpansion {
29
+ id: number;
30
+ /** FK to `billingCampaign.id` for the `device_expansion` row. */
31
+ offerId: number;
32
+ clientId: number;
33
+ userId: string | null;
34
+ email: string | null;
35
+ expansionOffer: ExpansionOffer;
36
+ assignedAt: Date | null;
37
+ status: BillingCampaignExpansionStatus;
38
+ /**
39
+ * The customer's *existing* tracker — the one that made them eligible. Known at exposure.
40
+ *
41
+ * Not to be confused with the expansion tracker's IMEI, which nobody knows until CS activates the
42
+ * device and which lives on `billingCampaignExpansionDevice.imei`.
43
+ */
44
+ qualifyingImei: string | null;
45
+ qualifyingSubscriptionId: string | null;
46
+ qualifyingModelFamily: string | null;
47
+ qualifyingPlanId: string | null;
48
+ /** Banner rendered on the dashboard. */
49
+ offerShownAt: Date | null;
50
+ offerClickedAt: Date | null;
51
+ /** ✕ on the banner. Server-side so it survives a device change and feeds the funnel analysis. */
52
+ offerDismissedAt: Date | null;
53
+ /** Enrolment — the request lands in the CS queue at this point. */
54
+ offerSubmittedAt: Date | null;
55
+ createdAt: Date | null;
56
+ updatedAt: Date | null;
57
+ }
58
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),a=require("typeorm"),i=require("../utils/uuidTransformer.js");exports.BillingCampaignExpansion=class BillingCampaignExpansion{id;offerId;clientId;userId;email;expansionOffer;assignedAt;status;qualifyingImei;qualifyingSubscriptionId;qualifyingModelFamily;qualifyingPlanId;offerShownAt;offerClickedAt;offerDismissedAt;offerSubmittedAt;createdAt;updatedAt},e.__decorate([a.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansion.prototype,"id",void 0),e.__decorate([a.Column("int",{name:"offerId"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansion.prototype,"offerId",void 0),e.__decorate([a.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansion.prototype,"clientId",void 0),e.__decorate([a.Column("binary",{name:"userId",length:16,nullable:!0,transformer:i.UUIDTransformer}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"userId",void 0),e.__decorate([a.Column("varchar",{name:"email",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"email",void 0),e.__decorate([a.Column("enum",{enum:["free_subscription","free_loaner","control"],name:"expansionOffer"}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"expansionOffer",void 0),e.__decorate([a.Column("datetime",{name:"assignedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"assignedAt",void 0),e.__decorate([a.Column("enum",{enum:["assigned","pending","contacted","payment_collected","shipped","subscription_created","activated","returned","canceled","expired"],name:"status",default:"assigned"}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"status",void 0),e.__decorate([a.Column("varchar",{name:"qualifyingImei",nullable:!0,length:64}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"qualifyingImei",void 0),e.__decorate([a.Column("varchar",{name:"qualifyingSubscriptionId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"qualifyingSubscriptionId",void 0),e.__decorate([a.Column("varchar",{name:"qualifyingModelFamily",nullable:!0,length:50}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"qualifyingModelFamily",void 0),e.__decorate([a.Column("varchar",{name:"qualifyingPlanId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansion.prototype,"qualifyingPlanId",void 0),e.__decorate([a.Column("datetime",{name:"offerShownAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"offerShownAt",void 0),e.__decorate([a.Column("datetime",{name:"offerClickedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"offerClickedAt",void 0),e.__decorate([a.Column("datetime",{name:"offerDismissedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"offerDismissedAt",void 0),e.__decorate([a.Column("datetime",{name:"offerSubmittedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"offerSubmittedAt",void 0),e.__decorate([a.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"createdAt",void 0),e.__decorate([a.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansion.prototype,"updatedAt",void 0),exports.BillingCampaignExpansion=e.__decorate([a.Index("ixuBillingCampaignExpansionClientId",["clientId"],{unique:!0}),a.Index("ixBillingCampaignExpansionStatus",["status"],{}),a.Index("ixBillingCampaignExpansionOffer",["expansionOffer"],{}),a.Index("ixBillingCampaignExpansionQualifyingImei",["qualifyingImei"],{}),a.Index("ixBillingCampaignExpansionCreatedAt",["createdAt"],{}),a.Entity("billingCampaignExpansion",{schema:"nova"})],exports.BillingCampaignExpansion);
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Where an expansion device ships.
3
+ *
4
+ * Its own table rather than columns on the order because the address is captured once and then
5
+ * handed to several places — the Shopify draft order, the CS queue, support later — and because
6
+ * keeping it addressable means a correction is a new row instead of a destructive update, which
7
+ * matters when the previous value is what actually went on a shipping label.
8
+ *
9
+ * The customer's account address is prefilled on the review screen; `isDifferentFromAccount`
10
+ * records whether they overrode it, which is worth knowing on its own (a high override rate says
11
+ * account addresses are stale).
12
+ */
13
+ export declare class BillingCampaignExpansionAddress {
14
+ id: number;
15
+ clientId: number;
16
+ isDifferentFromAccount: boolean;
17
+ name: string | null;
18
+ street1: string | null;
19
+ street2: string | null;
20
+ city: string | null;
21
+ /** Two-letter code where we have one, full name otherwise — whatever the Address Element returns. */
22
+ region: string | null;
23
+ postalCode: string | null;
24
+ countryCode: string | null;
25
+ phone: string | null;
26
+ createdAt: Date | null;
27
+ }
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),n=require("typeorm"),a=require("../utils/boolToNumberTransformer.js");exports.BillingCampaignExpansionAddress=class BillingCampaignExpansionAddress{id;clientId;isDifferentFromAccount;name;street1;street2;city;region;postalCode;countryCode;phone;createdAt},e.__decorate([n.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionAddress.prototype,"id",void 0),e.__decorate([n.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionAddress.prototype,"clientId",void 0),e.__decorate([n.Column("tinyint",{name:"isDifferentFromAccount",width:1,default:()=>"'0'",transformer:new a.BoolToNumberTransformer}),e.__metadata("design:type",Boolean)],exports.BillingCampaignExpansionAddress.prototype,"isDifferentFromAccount",void 0),e.__decorate([n.Column("varchar",{name:"name",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"name",void 0),e.__decorate([n.Column("varchar",{name:"street1",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"street1",void 0),e.__decorate([n.Column("varchar",{name:"street2",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"street2",void 0),e.__decorate([n.Column("varchar",{name:"city",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"city",void 0),e.__decorate([n.Column("varchar",{name:"region",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"region",void 0),e.__decorate([n.Column("varchar",{name:"postalCode",nullable:!0,length:32}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"postalCode",void 0),e.__decorate([n.Column("varchar",{name:"countryCode",nullable:!0,length:2}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"countryCode",void 0),e.__decorate([n.Column("varchar",{name:"phone",nullable:!0,length:64}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionAddress.prototype,"phone",void 0),e.__decorate([n.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionAddress.prototype,"createdAt",void 0),exports.BillingCampaignExpansionAddress=e.__decorate([n.Index("ixBillingCampaignExpansionAddressClientId",["clientId"],{}),n.Entity("billingCampaignExpansionAddress",{schema:"nova"})],exports.BillingCampaignExpansionAddress);
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The provisioned expansion tracker and its trial clock. One row per expansion, written when CS
3
+ * activates the device. Every scheduled sweep reads only this table.
4
+ *
5
+ * Trial lengths differ by arm, and `free_loaner`'s is the non-obvious one:
6
+ * - `free_subscription` — `trial_end = activation + 6 months`.
7
+ * - `free_loaner` — `trial_end = shipped + 75 days`, not 60. The offer is advertised as 60 days with
8
+ * a 15-day return grace, and Notion US-04 is explicit that no charge applies until day 75, which
9
+ * is also what the confirmation checkbox authorises. Setting the trial to the full 75 makes a
10
+ * return a cancel-*during*-trial instead of a bill-then-refund, and means the subscription starts
11
+ * on time without anyone having to act.
12
+ *
13
+ * So for a loaner `graceEndsAt === trialEndAt` by construction. Both are kept: the sweeps read
14
+ * `graceEndsAt`, Stripe owns `trialEndAt`, and a divergence between them is a bug worth catching.
15
+ *
16
+ * At day 75 two things happen with different actors — Stripe converts the subscription by itself,
17
+ * while the one-time hardware fee is an explicit call somebody has to make from the CS queue
18
+ * (`billingCampaignExpansionOrder.deviceFeeChargedAt`). Only the second one can be forgotten.
19
+ */
20
+ export declare class BillingCampaignExpansionDevice {
21
+ id: number;
22
+ /** FK to `billingCampaignExpansion.id`. */
23
+ expansionId: number;
24
+ /** The expansion tracker itself. Unknown until CS activates — see `qualifyingImei` for the other one. */
25
+ imei: string | null;
26
+ subscriptionId: string | null;
27
+ subscriptionCreatedAt: Date | null;
28
+ trialStartAt: Date | null;
29
+ trialEndAt: Date | null;
30
+ /** Trial flipped to active and the subscription started billing. */
31
+ convertedAt: Date | null;
32
+ canceledAt: Date | null;
33
+ activatedAt: Date | null;
34
+ /**
35
+ * `free_subscription` only — delivery + 30 days. The device has to report by then or the offer
36
+ * expires and the trial subscription is cancelled.
37
+ */
38
+ activationDeadlineAt: Date | null;
39
+ firstPingAt: Date | null;
40
+ lastPingCheckedAt: Date | null;
41
+ pingDetected: boolean;
42
+ /** `free_loaner` — shipped + 60 days. The advertised trial end; nothing bills here. */
43
+ returnDueAt: Date | null;
44
+ /** `free_loaner` — shipped + 75 days. Equals `trialEndAt`; see the class comment. */
45
+ graceEndsAt: Date | null;
46
+ /** Always a CS stamp — no system of ours observes a physical return. */
47
+ returnedAt: Date | null;
48
+ /** Set when day 75 passes with no return stamped and no fee charged. Surfaced in the CS queue. */
49
+ returnNeedsManualVerification: boolean;
50
+ /** `free_loaner` day 50 — keep/return reminder. */
51
+ reminderD50SentAt: Date | null;
52
+ /** Informational heads-up before billing starts. No opt-out prompt on either arm. */
53
+ preBillingFyiSentAt: Date | null;
54
+ csReminderSentAt: Date | null;
55
+ csReminderCount: number;
56
+ createdAt: Date | null;
57
+ updatedAt: Date | null;
58
+ }
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),i=require("../utils/boolToNumberTransformer.js");exports.BillingCampaignExpansionDevice=class BillingCampaignExpansionDevice{id;expansionId;imei;subscriptionId;subscriptionCreatedAt;trialStartAt;trialEndAt;convertedAt;canceledAt;activatedAt;activationDeadlineAt;firstPingAt;lastPingCheckedAt;pingDetected;returnDueAt;graceEndsAt;returnedAt;returnNeedsManualVerification;reminderD50SentAt;preBillingFyiSentAt;csReminderSentAt;csReminderCount;createdAt;updatedAt},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionDevice.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"expansionId"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionDevice.prototype,"expansionId",void 0),e.__decorate([t.Column("varchar",{name:"imei",nullable:!0,length:64}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionDevice.prototype,"imei",void 0),e.__decorate([t.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionDevice.prototype,"subscriptionId",void 0),e.__decorate([t.Column("datetime",{name:"subscriptionCreatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"subscriptionCreatedAt",void 0),e.__decorate([t.Column("datetime",{name:"trialStartAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"trialStartAt",void 0),e.__decorate([t.Column("datetime",{name:"trialEndAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"trialEndAt",void 0),e.__decorate([t.Column("datetime",{name:"convertedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"convertedAt",void 0),e.__decorate([t.Column("datetime",{name:"canceledAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"canceledAt",void 0),e.__decorate([t.Column("datetime",{name:"activatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"activatedAt",void 0),e.__decorate([t.Column("datetime",{name:"activationDeadlineAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"activationDeadlineAt",void 0),e.__decorate([t.Column("datetime",{name:"firstPingAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"firstPingAt",void 0),e.__decorate([t.Column("datetime",{name:"lastPingCheckedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"lastPingCheckedAt",void 0),e.__decorate([t.Column("tinyint",{name:"pingDetected",width:1,default:()=>"'0'",transformer:new i.BoolToNumberTransformer}),e.__metadata("design:type",Boolean)],exports.BillingCampaignExpansionDevice.prototype,"pingDetected",void 0),e.__decorate([t.Column("datetime",{name:"returnDueAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"returnDueAt",void 0),e.__decorate([t.Column("datetime",{name:"graceEndsAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"graceEndsAt",void 0),e.__decorate([t.Column("datetime",{name:"returnedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"returnedAt",void 0),e.__decorate([t.Column("tinyint",{name:"returnNeedsManualVerification",width:1,default:()=>"'0'",transformer:new i.BoolToNumberTransformer}),e.__metadata("design:type",Boolean)],exports.BillingCampaignExpansionDevice.prototype,"returnNeedsManualVerification",void 0),e.__decorate([t.Column("datetime",{name:"reminderD50SentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"reminderD50SentAt",void 0),e.__decorate([t.Column("datetime",{name:"preBillingFyiSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"preBillingFyiSentAt",void 0),e.__decorate([t.Column("datetime",{name:"csReminderSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"csReminderSentAt",void 0),e.__decorate([t.Column("int",{name:"csReminderCount",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionDevice.prototype,"csReminderCount",void 0),e.__decorate([t.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"createdAt",void 0),e.__decorate([t.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionDevice.prototype,"updatedAt",void 0),exports.BillingCampaignExpansionDevice=e.__decorate([t.Index("ixuBillingCampaignExpansionDeviceExpansionId",["expansionId"],{unique:!0}),t.Index("ixBillingCampaignExpansionDeviceImei",["imei"],{}),t.Index("ixBillingCampaignExpansionDeviceSubscriptionId",["subscriptionId"],{}),t.Index("ixBillingCampaignExpansionDeviceActivationDeadline",["pingDetected","activationDeadlineAt"],{}),t.Index("ixBillingCampaignExpansionDeviceReturnDueAt",["returnDueAt"],{}),t.Index("ixBillingCampaignExpansionDeviceGraceEndsAt",["graceEndsAt"],{}),t.Entity("billingCampaignExpansionDevice",{schema:"nova"})],exports.BillingCampaignExpansionDevice);
@@ -0,0 +1,71 @@
1
+ /**
2
+ * What CS has to ship, and what happened to it. One row per expansion, written at submit.
3
+ *
4
+ * The Shopify draft order is the interlock that keeps an unpaid device from shipping. A draft is
5
+ * not fulfillable — only a completed order is — so for `free_subscription` (customer pays $19.99)
6
+ * the sequence is:
7
+ *
8
+ * submit ──► draft order, left open ──► charge succeeds ──► we complete it ──► shippable order
9
+ *
10
+ * CS cannot ship an unpaid device even by mistake, because until the charge lands there is nothing
11
+ * to fulfil. Two consequences worth knowing:
12
+ * - the charge has to go through our collect-payment endpoint, not the Stripe dashboard; a dashboard
13
+ * charge leaves the draft open and the order permanently unshippable,
14
+ * - a declined card fails *silently* — the row just sits in `pending` — hence the reminder columns.
15
+ *
16
+ * `free_loaner` ships free, so its draft is completed immediately at submit; there is nothing to wait
17
+ * for. That asymmetry is useful: `draftOrderCompletedAt IS NULL AND deviceFeeChargedAt IS NULL`
18
+ * identifies exactly the orders stuck awaiting an up-front charge, with no need to join the parent
19
+ * row for the arm.
20
+ *
21
+ * `shopifyOrderId` comes back from `draftOrderComplete` (the mutation selects `order { id name }`)
22
+ * and is what the `orders/fulfilled` webhook joins on — a key we wrote ourselves, rather than
23
+ * trusting custom attributes to survive the draft → order transition. The `expansionId` custom
24
+ * attribute rides along anyway as a fallback and to make the order legible in the Shopify admin.
25
+ */
26
+ export declare class BillingCampaignExpansionOrder {
27
+ id: number;
28
+ /** FK to `billingCampaignExpansion.id`. */
29
+ expansionId: number;
30
+ /** FK to `billingCampaignExpansionAddress.id`. */
31
+ addressId: number | null;
32
+ selectedModelFamily: string | null;
33
+ selectedDeviceTypeId: number | null;
34
+ /** One-time hardware price. 1999 for `free_subscription`, 0 for `free_loaner` until day 75. */
35
+ devicePriceCents: number | null;
36
+ planId: string | null;
37
+ /**
38
+ * The post-trial monthly rate, snapshotted at submit. Resolved server-side from
39
+ * `historicalBillingPlan` — never taken from the client — so a later price change cannot
40
+ * retroactively alter what the customer was shown and agreed to.
41
+ */
42
+ monthlyPriceCents: number | null;
43
+ shopifyDraftOrderId: string | null;
44
+ draftOrderCompletedAt: Date | null;
45
+ /** Set when the draft completes. What the fulfilment webhook matches on. */
46
+ shopifyOrderId: string | null;
47
+ /** Stamped by the `orders/fulfilled` webhook, or by CS for fulfilment outside Shopify. */
48
+ shippedAt: Date | null;
49
+ deliveredAt: Date | null;
50
+ trackingNumber: string | null;
51
+ carrier: string | null;
52
+ /**
53
+ * The one-time $19.99 hardware charge. **Both arms pay it** — the same money for the same thing,
54
+ * taken at different points, so it is one set of columns and never two:
55
+ * - `free_subscription` — up front, and the order cannot be fulfilled until it lands (above).
56
+ * - `free_loaner` — at day 75, only if the device is kept.
57
+ *
58
+ * Never both, and never twice. A row with `deviceFeeChargedAt` set has paid for its hardware
59
+ * whichever arm it is in, which is also what makes "unpaid" a single condition to query.
60
+ */
61
+ deviceFeeInvoiceId: string | null;
62
+ deviceFeePaymentIntentId: string | null;
63
+ deviceFeeChargedAt: Date | null;
64
+ /** So CS can see *why* a charge declined rather than only that it did not land. */
65
+ deviceFeeFailureReason: string | null;
66
+ deviceFeeReminderSentAt: Date | null;
67
+ deviceFeeReminderCount: number;
68
+ csNotes: string | null;
69
+ createdAt: Date | null;
70
+ updatedAt: Date | null;
71
+ }
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),a=require("typeorm");exports.BillingCampaignExpansionOrder=class BillingCampaignExpansionOrder{id;expansionId;addressId;selectedModelFamily;selectedDeviceTypeId;devicePriceCents;planId;monthlyPriceCents;shopifyDraftOrderId;draftOrderCompletedAt;shopifyOrderId;shippedAt;deliveredAt;trackingNumber;carrier;deviceFeeInvoiceId;deviceFeePaymentIntentId;deviceFeeChargedAt;deviceFeeFailureReason;deviceFeeReminderSentAt;deviceFeeReminderCount;csNotes;createdAt;updatedAt},e.__decorate([a.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"id",void 0),e.__decorate([a.Column("int",{name:"expansionId"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"expansionId",void 0),e.__decorate([a.Column("int",{name:"addressId",nullable:!0}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"addressId",void 0),e.__decorate([a.Column("varchar",{name:"selectedModelFamily",nullable:!0,length:50}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"selectedModelFamily",void 0),e.__decorate([a.Column("smallint",{name:"selectedDeviceTypeId",nullable:!0}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"selectedDeviceTypeId",void 0),e.__decorate([a.Column("int",{name:"devicePriceCents",nullable:!0}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"devicePriceCents",void 0),e.__decorate([a.Column("varchar",{name:"planId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"planId",void 0),e.__decorate([a.Column("int",{name:"monthlyPriceCents",nullable:!0}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"monthlyPriceCents",void 0),e.__decorate([a.Column("varchar",{name:"shopifyDraftOrderId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"shopifyDraftOrderId",void 0),e.__decorate([a.Column("datetime",{name:"draftOrderCompletedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"draftOrderCompletedAt",void 0),e.__decorate([a.Column("varchar",{name:"shopifyOrderId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"shopifyOrderId",void 0),e.__decorate([a.Column("datetime",{name:"shippedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"shippedAt",void 0),e.__decorate([a.Column("datetime",{name:"deliveredAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"deliveredAt",void 0),e.__decorate([a.Column("varchar",{name:"trackingNumber",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"trackingNumber",void 0),e.__decorate([a.Column("varchar",{name:"carrier",nullable:!0,length:128}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"carrier",void 0),e.__decorate([a.Column("varchar",{name:"deviceFeeInvoiceId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeeInvoiceId",void 0),e.__decorate([a.Column("varchar",{name:"deviceFeePaymentIntentId",nullable:!0,length:255}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeePaymentIntentId",void 0),e.__decorate([a.Column("datetime",{name:"deviceFeeChargedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeeChargedAt",void 0),e.__decorate([a.Column("varchar",{name:"deviceFeeFailureReason",nullable:!0,length:512}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeeFailureReason",void 0),e.__decorate([a.Column("datetime",{name:"deviceFeeReminderSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeeReminderSentAt",void 0),e.__decorate([a.Column("int",{name:"deviceFeeReminderCount",default:()=>"'0'"}),e.__metadata("design:type",Number)],exports.BillingCampaignExpansionOrder.prototype,"deviceFeeReminderCount",void 0),e.__decorate([a.Column("text",{name:"csNotes",nullable:!0}),e.__metadata("design:type",String)],exports.BillingCampaignExpansionOrder.prototype,"csNotes",void 0),e.__decorate([a.Column("datetime",{name:"createdAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"createdAt",void 0),e.__decorate([a.Column("datetime",{name:"updatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.BillingCampaignExpansionOrder.prototype,"updatedAt",void 0),exports.BillingCampaignExpansionOrder=e.__decorate([a.Index("ixuBillingCampaignExpansionOrderExpansionId",["expansionId"],{unique:!0}),a.Index("ixBillingCampaignExpansionOrderDraftOrderId",["shopifyDraftOrderId"],{}),a.Index("ixBillingCampaignExpansionOrderShopifyOrderId",["shopifyOrderId"],{}),a.Index("ixBillingCampaignExpansionOrderShippedAt",["shippedAt"],{}),a.Index("ixBillingCampaignExpansionOrderAwaitingPayment",["deviceFeeChargedAt","createdAt"],{}),a.Entity("billingCampaignExpansionOrder",{schema:"nova"})],exports.BillingCampaignExpansionOrder);
@@ -25,6 +25,10 @@ import { AvalaraQueue } from './avalaraQueue';
25
25
  import { BeaconBleMesh } from './beaconBleMesh';
26
26
  import { Billing } from './billing';
27
27
  import { BillingCampaign } from './billingCampaign';
28
+ import { BillingCampaignExpansion } from './billingCampaignExpansion';
29
+ import { BillingCampaignExpansionAddress } from './billingCampaignExpansionAddress';
30
+ import { BillingCampaignExpansionDevice } from './billingCampaignExpansionDevice';
31
+ import { BillingCampaignExpansionOrder } from './billingCampaignExpansionOrder';
28
32
  import { BillingCampaignFreeOffer } from './billingCampaignFreeOffer';
29
33
  import { BillingCampaignFreeTrial } from './billingCampaignFreeTrial';
30
34
  import { BillingCampaignPrepaid } from './billingCampaignPrepaid';
@@ -134,6 +138,8 @@ import { IssueType } from './issueType';
134
138
  import { JarvisWebGroupAccess } from './jarvisWebGroupAccess';
135
139
  import { Job } from './job';
136
140
  import { JobAttachment } from './jobAttachment';
141
+ import { JobCustomerLink } from './jobCustomerLink';
142
+ import { JobCustomerPageSetting } from './jobCustomerPageSetting';
137
143
  import { LatestUserAppInfo } from './latestUserAppInfo';
138
144
  import { LiveLink } from './liveLink';
139
145
  import { LiveLinkMedia } from './liveLinkMedia';
@@ -230,4 +236,4 @@ export * from './aiMessage';
230
236
  export * from './anomaly';
231
237
  export * from './customerAttribute';
232
238
  export * from './sensorConfig';
233
- export { AcumaticaAmazonProduct, AcumaticaImeiIccidData, AcumaticaMarketplaceProduct, AcumaticaOrderShipmentDetails, AcumaticaShipment, AcumaticaShipmentAmazon, AempToken, AiConversation, AiMessage, Alert, AlertType, Anomaly, AppFeatureType, AsinPromotion, AssetCategory, AssetProfile, AssetProfileCategory, AssetProfileCustomField, AssetProfileCustomStatus, AssetProfileMedia, AssetProfileNote, AssetProfileType, AvalaraExemptCert, AvalaraQueue, BeaconBleMesh, Billing, BillingCampaign, BillingCampaignFreeOffer, BillingCampaignFreeTrial, BillingCampaignPrepaid, BillingCustomerAmazon, BillingCustomerBraintree, BillingCustomerStripe, BillingDeviceHistory, BillingDeviceTypePlan, BillingDunning, BillingHubspotPaymentLog, BillingInvoice, BillingKlarnaCustomer, BillingKlarnaOrder, BillingPlanFeatures, BillingPlans, BillingStatusHistoryBraintree, BillingSubscriptionAmazon, BillingSubscriptionBraintree, BillingSubscriptionShopify, BillingSubscriptionStripe, Blacklist, BlacklistType, BLEMesh, BLEMeshConfiguration, Boundary, CellTower, ChurnNotification, Client, ClientAlertConfiguration, ClientAlertRecipient, ClientApiToken, ClientApiTokenShareHistory, ClientAppFeature, ClientConfiguration, ClientDeviceIcon, ClientDeviceSetting, ClientIngestorConfiguration, ClientIssuesConfiguration, ClientStatusHistory, ClientType, Country, CustomReport, CustomReportColumn, CustomReportColumnCategory, CustomReportDataSource, CustomReportSelectedColumn, CustomSecurityRole, DataExport, DataSourceType, Deactivation, DeactivationReason, DemoAccountDeviceData, DemoAccountSiteLocation, DemoAccountTemplate, DemoAccountTemplateAssetProfile, DemoAccountTemplateBleMesh, DemoAccountTemplateDevice, DemoAccountTripTemplate, DemoAccountTripTemplatePosition, DemoDeviceData, DemoFormField, DemoLead, Device, DeviceBehavior, DeviceBleMesh, DeviceBleMeshUpdateTask, DeviceCameraConfiguration, DeviceCameraMedia, DeviceCameraMediaEventType, DeviceCameraMediaStreamingData, DeviceCameraMediaStreamingSession, DeviceCameraMediaSyncStatus, DeviceCameraRequestedPictureData, DeviceCameraRequestedVideoData, DeviceChangesHistory, DeviceCustomConfiguration, DeviceEventsTriggerConfiguration, DeviceHistory, DeviceModelListener, DevicePairing, DevicePromotion, DevicePropertyMapping, DeviceReplacement, DeviceStatus, DeviceTask, DeviceType, DeviceTypeFeature, DeviceTypeFirmware, DeviceTypePromotion, EmailDomain, EntityTag, EntityType, EphemeralBoundary, Feature, FirmwareAutoUpgradeBlacklist, FirmwareUpgradeTask, HistoricalBillingPlan, IccidStatus, ImeiIccidCarrier, ImeiIccidHistory, ImeiIccidImport, Industry, IngestorProvider, Issue, IssueSuppressionRule, IssueType, JarvisWebGroupAccess, Job, JobAttachment, LatestUserAppInfo, LiveLink, LiveLinkMedia, M2Sync, Magento2Gps, Magento2Plan, MarketplacePromotion, MobileNetwork, NotificationRecipient, OrderShipmentInternational, Organization, PlaceCategory, PlaceType, Plan, Position, Promotion, PromotionHistory, Referral, ReferralCredit, Referrer, Region, ReportScheduleConfiguration, RetailAlert, RetailAlertExternalRecipient, RetailAlertInternalRecipient, RetailAlertType, RetailBleTag, RetailClientAlertConfiguration, RetailDepartmentType, RetailGateway, RetailIncident, RetailItem, RetailItemEvent, RetailProduct, RetailStore, RetailTrainingSet, RetailZone, SavedView, SavedViewShare, SecurityRole, SensorConfig, ServiceProvider, ServiceProviderProduct, ServiceProviderProductNetwork, ServiceProviderProductType, Sim, SimConnectivityStatus, SimMonthlyUsage, SnapToRoadCache, StripeAddonMapping, StripeHardwareMapping, StripePriceMapping, SupportConversation, SupportConversationMessage, SupportInteractionTopic, SupportSyncState, SupportTicket, SupportTicketComment, SupportTopic, Tag, Task, TaskSchedule, TicketManager, Trip, TripCompletionStatus, TripPosition, TripStatus, User, UserActivation, UserActivationDevice, UserActivationEvent, UserActivationMetric, UserAlertComplain, UserAlertConfiguration, UserAlertNotificationsConfig, UserAppFeedback, UserAppIncident, UserAuthorizedBoundary, UserAuthorizedBoundarySecurityView, UserAuthorizedBoundarySecurityViewV2, UserAuthorizedDevice, UserAuthorizedDeviceSecurityView, UserAuthorizedDeviceSecurityViewV2, UserCancellationDueDevice, UserCarrierDeactivateDevice, UserCarrierReactivateDevice, UserConfiguration, UserDataDeletionRequest, UserDeviceBehaviorTask, UserFreeOfferDevice, UserInvitation, UserRegistrationAttempt, UserSecurityRole, WebsocketConnection, };
239
+ export { AcumaticaAmazonProduct, AcumaticaImeiIccidData, AcumaticaMarketplaceProduct, AcumaticaOrderShipmentDetails, AcumaticaShipment, AcumaticaShipmentAmazon, AempToken, AiConversation, AiMessage, Alert, AlertType, Anomaly, AppFeatureType, AsinPromotion, AssetCategory, AssetProfile, AssetProfileCategory, AssetProfileCustomField, AssetProfileCustomStatus, AssetProfileMedia, AssetProfileNote, AssetProfileType, AvalaraExemptCert, AvalaraQueue, BeaconBleMesh, Billing, BillingCampaign, BillingCampaignExpansion, BillingCampaignExpansionAddress, BillingCampaignExpansionDevice, BillingCampaignExpansionOrder, BillingCampaignFreeOffer, BillingCampaignFreeTrial, BillingCampaignPrepaid, BillingCustomerAmazon, BillingCustomerBraintree, BillingCustomerStripe, BillingDeviceHistory, BillingDeviceTypePlan, BillingDunning, BillingHubspotPaymentLog, BillingInvoice, BillingKlarnaCustomer, BillingKlarnaOrder, BillingPlanFeatures, BillingPlans, BillingStatusHistoryBraintree, BillingSubscriptionAmazon, BillingSubscriptionBraintree, BillingSubscriptionShopify, BillingSubscriptionStripe, Blacklist, BlacklistType, BLEMesh, BLEMeshConfiguration, Boundary, CellTower, ChurnNotification, Client, ClientAlertConfiguration, ClientAlertRecipient, ClientApiToken, ClientApiTokenShareHistory, ClientAppFeature, ClientConfiguration, ClientDeviceIcon, ClientDeviceSetting, ClientIngestorConfiguration, ClientIssuesConfiguration, ClientStatusHistory, ClientType, Country, CustomReport, CustomReportColumn, CustomReportColumnCategory, CustomReportDataSource, CustomReportSelectedColumn, CustomSecurityRole, DataExport, DataSourceType, Deactivation, DeactivationReason, DemoAccountDeviceData, DemoAccountSiteLocation, DemoAccountTemplate, DemoAccountTemplateAssetProfile, DemoAccountTemplateBleMesh, DemoAccountTemplateDevice, DemoAccountTripTemplate, DemoAccountTripTemplatePosition, DemoDeviceData, DemoFormField, DemoLead, Device, DeviceBehavior, DeviceBleMesh, DeviceBleMeshUpdateTask, DeviceCameraConfiguration, DeviceCameraMedia, DeviceCameraMediaEventType, DeviceCameraMediaStreamingData, DeviceCameraMediaStreamingSession, DeviceCameraMediaSyncStatus, DeviceCameraRequestedPictureData, DeviceCameraRequestedVideoData, DeviceChangesHistory, DeviceCustomConfiguration, DeviceEventsTriggerConfiguration, DeviceHistory, DeviceModelListener, DevicePairing, DevicePromotion, DevicePropertyMapping, DeviceReplacement, DeviceStatus, DeviceTask, DeviceType, DeviceTypeFeature, DeviceTypeFirmware, DeviceTypePromotion, EmailDomain, EntityTag, EntityType, EphemeralBoundary, Feature, FirmwareAutoUpgradeBlacklist, FirmwareUpgradeTask, HistoricalBillingPlan, IccidStatus, ImeiIccidCarrier, ImeiIccidHistory, ImeiIccidImport, Industry, IngestorProvider, Issue, IssueSuppressionRule, IssueType, JarvisWebGroupAccess, Job, JobAttachment, JobCustomerLink, JobCustomerPageSetting, LatestUserAppInfo, LiveLink, LiveLinkMedia, M2Sync, Magento2Gps, Magento2Plan, MarketplacePromotion, MobileNetwork, NotificationRecipient, OrderShipmentInternational, Organization, PlaceCategory, PlaceType, Plan, Position, Promotion, PromotionHistory, Referral, ReferralCredit, Referrer, Region, ReportScheduleConfiguration, RetailAlert, RetailAlertExternalRecipient, RetailAlertInternalRecipient, RetailAlertType, RetailBleTag, RetailClientAlertConfiguration, RetailDepartmentType, RetailGateway, RetailIncident, RetailItem, RetailItemEvent, RetailProduct, RetailStore, RetailTrainingSet, RetailZone, SavedView, SavedViewShare, SecurityRole, SensorConfig, ServiceProvider, ServiceProviderProduct, ServiceProviderProductNetwork, ServiceProviderProductType, Sim, SimConnectivityStatus, SimMonthlyUsage, SnapToRoadCache, StripeAddonMapping, StripeHardwareMapping, StripePriceMapping, SupportConversation, SupportConversationMessage, SupportInteractionTopic, SupportSyncState, SupportTicket, SupportTicketComment, SupportTopic, Tag, Task, TaskSchedule, TicketManager, Trip, TripCompletionStatus, TripPosition, TripStatus, User, UserActivation, UserActivationDevice, UserActivationEvent, UserActivationMetric, UserAlertComplain, UserAlertConfiguration, UserAlertNotificationsConfig, UserAppFeedback, UserAppIncident, UserAuthorizedBoundary, UserAuthorizedBoundarySecurityView, UserAuthorizedBoundarySecurityViewV2, UserAuthorizedDevice, UserAuthorizedDeviceSecurityView, UserAuthorizedDeviceSecurityViewV2, UserCancellationDueDevice, UserCarrierDeactivateDevice, UserCarrierReactivateDevice, UserConfiguration, UserDataDeletionRequest, UserDeviceBehaviorTask, UserFreeOfferDevice, UserInvitation, UserRegistrationAttempt, UserSecurityRole, WebsocketConnection, };
@@ -1 +1 @@
1
- "use strict";var e=require("./acumaticaAmazonProduct.js"),r=require("./acumaticaImeiIccidData.js"),t=require("./acumaticaMarketplaceProduct.js"),n=require("./acumaticaOrderShipmentDetails.js"),i=require("./acumaticaShipment.js"),o=require("./acumaticaShipmentAmazon.js"),u=require("./aempToken.js"),a=require("./aiConversation.js"),c=require("./aiMessage.js"),s=require("./alert.js"),p=require("./alertType.js"),l=require("./anomaly.js"),f=require("./appFeatureType.js"),b=require("./asinPromotion.js"),m=require("./assetCategory.js"),j=require("./assetProfile.js"),d=require("./assetProfileCategory.js"),g=require("./assetProfileCustomField.js"),y=require("./assetProfileMedia.js"),P=require("./assetProfileNote.js"),O=require("./assetProfileStatusCustomLabel.js"),x=require("./assetProfileType.js"),q=require("./avalaraExemptCert.js"),v=require("./avalaraQueue.js"),C=require("./beaconBleMesh.js"),A=require("./billing.js"),S=require("./billingCampaign.js"),D=require("./billingCampaignFreeOffer.js"),T=require("./billingCampaignFreeTrial.js"),B=require("./billingCampaignPrepaid.js"),R=require("./billingCustomerAmazon.js"),h=require("./billingCustomerBraintree.js"),M=require("./billingCustomerStripe.js"),I=require("./billingDeviceHistory.js"),k=require("./billingDeviceTypePlan.js"),U=require("./billingDunning.js"),F=require("./billingHubspotPaymentLog.js"),w=require("./billingInvoice.js"),E=require("./billingKlarnaCustomer.js"),H=require("./billingKlarnaOrder.js"),z=require("./billingPlanFeatures.js"),L=require("./billingPlans.js"),V=require("./billingStatusHistoryBraintree.js"),N=require("./billingSubscriptionAmazon.js"),G=require("./billingSubscriptionBraintree.js"),J=require("./billingSubscriptionShopify.js"),K=require("./billingSubscriptionStripe.js"),W=require("./blacklist.js"),Q=require("./blacklistType.js"),Z=require("./bleMesh.js"),X=require("./bleMeshConfiguration.js"),Y=require("./boundary.js"),$=require("./cellTower.js"),_=require("./churnNotification.js"),ee=require("./client.js"),re=require("./clientAlertConfiguration.js"),te=require("./clientAlertRecipient.js"),ne=require("./clientApiToken.js"),ie=require("./clientApiTokenShareHistory.js"),oe=require("./clientAppFeature.js"),ue=require("./clientConfiguration.js"),ae=require("./clientDeviceIcon.js"),ce=require("./clientDeviceSetting.js"),se=require("./clientIngestorConfiguration.js"),pe=require("./clientIssuesConfiguration.js"),le=require("./clientStatusHistory.js"),fe=require("./clientType.js"),be=require("./country.js"),me=require("./customReport.js"),je=require("./customReportColumn.js"),de=require("./customReportColumnCategory.js"),ge=require("./customReportDataSource.js"),ye=require("./customReportSelectedColumn.js"),Pe=require("./customSecurityRole.js"),Oe=require("./dataExport.js"),xe=require("./dataSourceType.js"),qe=require("./deactivation.js"),ve=require("./deactivationReason.js"),Ce=require("./demoAccountDeviceData.js"),Ae=require("./demoAccountSiteLocation.js"),Se=require("./demoAccountTemplate.js"),De=require("./demoAccountTemplateAssetProfile.js"),Te=require("./demoAccountTemplateBleMesh.js"),Be=require("./demoAccountTemplateDevice.js"),Re=require("./demoAccountTripTemplate.js"),he=require("./demoAccountTripTemplatePosition.js"),Me=require("./demoDeviceData.js"),Ie=require("./demoFormField.js"),ke=require("./demoLead.js"),Ue=require("./device.js"),Fe=require("./deviceBehavior.js"),we=require("./deviceBleMesh.js"),Ee=require("./deviceBleMeshUpdateTask.js"),He=require("./deviceCameraConfiguration.js"),ze=require("./deviceCameraMedia.js"),Le=require("./deviceCameraMediaEventType.js"),Ve=require("./deviceCameraMediaStreamingData.js"),Ne=require("./deviceCameraMediaStreamingSession.js"),Ge=require("./deviceCameraMediaSyncStatus.js"),Je=require("./deviceCameraRequestedPictureData.js"),Ke=require("./deviceCameraRequestedVideoData.js"),We=require("./deviceChangesHistory.js"),Qe=require("./deviceCustomConfiguration.js"),Ze=require("./deviceEventsTriggerConfiguration.js"),Xe=require("./deviceHistory.js"),Ye=require("./deviceModelListener.js"),$e=require("./devicePairing.js"),_e=require("./devicePromotion.js"),er=require("./devicePropertyMapping.js"),rr=require("./deviceReplacement.js"),tr=require("./deviceStatus.js"),nr=require("./deviceTask.js"),ir=require("./deviceType.js"),or=require("./deviceTypeFeature.js"),ur=require("./deviceTypeFirmware.js"),ar=require("./deviceTypePromotion.js"),cr=require("./emailDomain.js"),sr=require("./entityTag.js"),pr=require("./entityType.js"),lr=require("./ephemeralBoundary.js"),fr=require("./feature.js"),br=require("./firmwareAutoUpgradeBlacklist.js"),mr=require("./firmwareUpgradeTask.js"),jr=require("./historicalBillingPlan.js"),dr=require("./iccidStatus.js"),gr=require("./imeiIccidCarrier.js"),yr=require("./imeiIccidHistory.js"),Pr=require("./imeiIccidImport.js"),Or=require("./industry.js"),xr=require("./ingestorProvider.js"),qr=require("./issue.js"),vr=require("./issueSuppressionRule.js"),Cr=require("./issueType.js"),Ar=require("./jarvisWebGroupAccess.js"),Sr=require("./job.js"),Dr=require("./jobAttachment.js"),Tr=require("./latestUserAppInfo.js"),Br=require("./liveLink.js"),Rr=require("./liveLinkMedia.js"),hr=require("./m2Sync.js"),Mr=require("./magento2Gps.js"),Ir=require("./magento2Plan.js"),kr=require("./marketplacePromotion.js"),Ur=require("./mobileNetwork.js"),Fr=require("./notificationRecipient.js"),wr=require("./orderShipmentInternational.js"),Er=require("./organization.js"),Hr=require("./placeCategory.js"),zr=require("./placeType.js"),Lr=require("./plan.js"),Vr=require("./position.js"),Nr=require("./promotion.js"),Gr=require("./promotionHistory.js"),Jr=require("./referral.js"),Kr=require("./referralCredit.js"),Wr=require("./referrer.js"),Qr=require("./region.js"),Zr=require("./reportScheduleConfiguration.js"),Xr=require("./retailAlert.js"),Yr=require("./retailAlertExternalRecipient.js"),$r=require("./retailAlertInternalRecipient.js"),_r=require("./retailAlertType.js"),et=require("./retailBleTag.js"),rt=require("./retailClientAlertConfiguration.js"),tt=require("./retailDepartmentType.js"),nt=require("./retailGateway.js"),it=require("./retailIncident.js"),ot=require("./retailItem.js"),ut=require("./retailItemEvent.js"),at=require("./retailProduct.js"),ct=require("./retailStore.js"),st=require("./retailTrainingSet.js"),pt=require("./retailZone.js"),lt=require("./savedView.js"),ft=require("./savedViewShare.js"),bt=require("./securityRole.js"),mt=require("./sensorConfig.js"),jt=require("./serviceProvider.js"),dt=require("./serviceProviderProduct.js"),gt=require("./serviceProviderProductNetwork.js"),yt=require("./serviceProviderProductType.js"),Pt=require("./sim.js"),Ot=require("./simConnectivityStatus.js"),xt=require("./simMonthlyUsage.js"),qt=require("./snapToRoadCache.js"),vt=require("./stripeAddonMapping.js"),Ct=require("./stripeHardwareMapping.js"),At=require("./stripePriceMapping.js"),St=require("./supportConversation.js"),Dt=require("./supportConversationMessage.js"),Tt=require("./supportInteractionTopic.js"),Bt=require("./supportSyncState.js"),Rt=require("./supportTicket.js"),ht=require("./supportTicketComment.js"),Mt=require("./supportTopic.js"),It=require("./tag.js"),kt=require("./task.js"),Ut=require("./taskSchedule.js"),Ft=require("./ticketManager.js"),wt=require("./trip.js"),Et=require("./tripCompletionStatus.js"),Ht=require("./tripPosition.js"),zt=require("./tripStatus.js"),Lt=require("./user.js"),Vt=require("./userActivation.js"),Nt=require("./userActivationDevice.js"),Gt=require("./userActivationEvent.js"),Jt=require("./userActivationMetric.js"),Kt=require("./userAlertComplain.js"),Wt=require("./userAlertConfiguration.js"),Qt=require("./userAlertNotificationsConfig.js"),Zt=require("./userAppFeedback.js"),Xt=require("./userAppIncident.js"),Yt=require("./userAuthorizedBoundary.js"),$t=require("./userAuthorizedBoundarySecurityView.js"),_t=require("./userAuthorizedDevice.js"),en=require("./userAuthorizedDeviceSecurityView.js"),rn=require("./userCancellationDueDevice.js"),tn=require("./userCarrierDeactivateDevice.js"),nn=require("./userCarrierReactivateDevice.js"),on=require("./userConfiguration.js"),un=require("./userDataDeletionRequest.js"),an=require("./userDeviceBehaviorTask.js"),cn=require("./userFreeOfferDevice.js"),sn=require("./userInvitation.js"),pn=require("./userRegistrationAttempt.js"),ln=require("./userSecurityRole.js"),fn=require("./websocketConnection.js"),bn=require("./customerAttribute.js");Object.defineProperty(exports,"AcumaticaAmazonProduct",{enumerable:!0,get:function(){return e.AcumaticaAmazonProduct}}),Object.defineProperty(exports,"AcumaticaImeiIccidData",{enumerable:!0,get:function(){return r.AcumaticaImeiIccidData}}),Object.defineProperty(exports,"AcumaticaMarketplaceProduct",{enumerable:!0,get:function(){return t.AcumaticaMarketplaceProduct}}),Object.defineProperty(exports,"AcumaticaOrderShipmentDetails",{enumerable:!0,get:function(){return n.AcumaticaOrderShipmentDetails}}),Object.defineProperty(exports,"AcumaticaShipment",{enumerable:!0,get:function(){return i.AcumaticaShipment}}),Object.defineProperty(exports,"AcumaticaShipmentAmazon",{enumerable:!0,get:function(){return o.AcumaticaShipmentAmazon}}),Object.defineProperty(exports,"AempToken",{enumerable:!0,get:function(){return u.AempToken}}),Object.defineProperty(exports,"AiConversation",{enumerable:!0,get:function(){return a.AiConversation}}),Object.defineProperty(exports,"AiMessage",{enumerable:!0,get:function(){return c.AiMessage}}),Object.defineProperty(exports,"Alert",{enumerable:!0,get:function(){return s.Alert}}),Object.defineProperty(exports,"AlertType",{enumerable:!0,get:function(){return p.AlertType}}),Object.defineProperty(exports,"Anomaly",{enumerable:!0,get:function(){return l.Anomaly}}),Object.defineProperty(exports,"AppFeatureType",{enumerable:!0,get:function(){return f.AppFeatureType}}),Object.defineProperty(exports,"AsinPromotion",{enumerable:!0,get:function(){return b.AsinPromotion}}),Object.defineProperty(exports,"AssetCategory",{enumerable:!0,get:function(){return m.AssetCategory}}),Object.defineProperty(exports,"AssetProfile",{enumerable:!0,get:function(){return j.AssetProfile}}),Object.defineProperty(exports,"AssetProfileCategory",{enumerable:!0,get:function(){return d.AssetProfileCategory}}),Object.defineProperty(exports,"AssetProfileCustomField",{enumerable:!0,get:function(){return g.AssetProfileCustomField}}),Object.defineProperty(exports,"AssetProfileMedia",{enumerable:!0,get:function(){return y.AssetProfileMedia}}),Object.defineProperty(exports,"AssetProfileNote",{enumerable:!0,get:function(){return P.AssetProfileNote}}),Object.defineProperty(exports,"AssetProfileCustomStatus",{enumerable:!0,get:function(){return O.AssetProfileCustomStatus}}),Object.defineProperty(exports,"AssetProfileType",{enumerable:!0,get:function(){return x.AssetProfileType}}),Object.defineProperty(exports,"AvalaraExemptCert",{enumerable:!0,get:function(){return q.AvalaraExemptCert}}),Object.defineProperty(exports,"AvalaraQueue",{enumerable:!0,get:function(){return v.AvalaraQueue}}),Object.defineProperty(exports,"BeaconBleMesh",{enumerable:!0,get:function(){return C.BeaconBleMesh}}),Object.defineProperty(exports,"Billing",{enumerable:!0,get:function(){return A.Billing}}),Object.defineProperty(exports,"BillingCampaign",{enumerable:!0,get:function(){return S.BillingCampaign}}),Object.defineProperty(exports,"BillingCampaignFreeOffer",{enumerable:!0,get:function(){return D.BillingCampaignFreeOffer}}),Object.defineProperty(exports,"BillingCampaignFreeTrial",{enumerable:!0,get:function(){return T.BillingCampaignFreeTrial}}),Object.defineProperty(exports,"BillingCampaignPrepaid",{enumerable:!0,get:function(){return B.BillingCampaignPrepaid}}),Object.defineProperty(exports,"BillingCustomerAmazon",{enumerable:!0,get:function(){return R.BillingCustomerAmazon}}),Object.defineProperty(exports,"BillingCustomerBraintree",{enumerable:!0,get:function(){return h.BillingCustomerBraintree}}),Object.defineProperty(exports,"BillingCustomerStripe",{enumerable:!0,get:function(){return M.BillingCustomerStripe}}),Object.defineProperty(exports,"BillingDeviceHistory",{enumerable:!0,get:function(){return I.BillingDeviceHistory}}),Object.defineProperty(exports,"BillingDeviceTypePlan",{enumerable:!0,get:function(){return k.BillingDeviceTypePlan}}),Object.defineProperty(exports,"BillingDunning",{enumerable:!0,get:function(){return U.BillingDunning}}),Object.defineProperty(exports,"BillingHubspotPaymentLog",{enumerable:!0,get:function(){return F.BillingHubspotPaymentLog}}),Object.defineProperty(exports,"BillingInvoice",{enumerable:!0,get:function(){return w.BillingInvoice}}),Object.defineProperty(exports,"BillingKlarnaCustomer",{enumerable:!0,get:function(){return E.BillingKlarnaCustomer}}),Object.defineProperty(exports,"BillingKlarnaOrder",{enumerable:!0,get:function(){return H.BillingKlarnaOrder}}),Object.defineProperty(exports,"BillingPlanFeatures",{enumerable:!0,get:function(){return z.BillingPlanFeatures}}),Object.defineProperty(exports,"BillingPlans",{enumerable:!0,get:function(){return L.BillingPlans}}),Object.defineProperty(exports,"BillingStatusHistoryBraintree",{enumerable:!0,get:function(){return V.BillingStatusHistoryBraintree}}),Object.defineProperty(exports,"BillingSubscriptionAmazon",{enumerable:!0,get:function(){return N.BillingSubscriptionAmazon}}),Object.defineProperty(exports,"BillingSubscriptionBraintree",{enumerable:!0,get:function(){return G.BillingSubscriptionBraintree}}),Object.defineProperty(exports,"BillingSubscriptionShopify",{enumerable:!0,get:function(){return J.BillingSubscriptionShopify}}),Object.defineProperty(exports,"BillingSubscriptionStripe",{enumerable:!0,get:function(){return K.BillingSubscriptionStripe}}),Object.defineProperty(exports,"Blacklist",{enumerable:!0,get:function(){return W.Blacklist}}),Object.defineProperty(exports,"BlacklistType",{enumerable:!0,get:function(){return Q.BlacklistType}}),Object.defineProperty(exports,"BLEMesh",{enumerable:!0,get:function(){return Z.BLEMesh}}),Object.defineProperty(exports,"BLEMeshConfiguration",{enumerable:!0,get:function(){return X.BLEMeshConfiguration}}),Object.defineProperty(exports,"Boundary",{enumerable:!0,get:function(){return Y.Boundary}}),Object.defineProperty(exports,"CellTower",{enumerable:!0,get:function(){return $.CellTower}}),Object.defineProperty(exports,"ChurnNotification",{enumerable:!0,get:function(){return _.ChurnNotification}}),Object.defineProperty(exports,"Client",{enumerable:!0,get:function(){return ee.Client}}),Object.defineProperty(exports,"ClientAlertConfiguration",{enumerable:!0,get:function(){return re.ClientAlertConfiguration}}),Object.defineProperty(exports,"ClientAlertRecipient",{enumerable:!0,get:function(){return te.ClientAlertRecipient}}),Object.defineProperty(exports,"ClientApiToken",{enumerable:!0,get:function(){return ne.ClientApiToken}}),Object.defineProperty(exports,"ClientApiTokenShareHistory",{enumerable:!0,get:function(){return ie.ClientApiTokenShareHistory}}),Object.defineProperty(exports,"ClientAppFeature",{enumerable:!0,get:function(){return oe.ClientAppFeature}}),Object.defineProperty(exports,"ClientConfiguration",{enumerable:!0,get:function(){return ue.ClientConfiguration}}),Object.defineProperty(exports,"ClientDeviceIcon",{enumerable:!0,get:function(){return ae.ClientDeviceIcon}}),Object.defineProperty(exports,"ClientDeviceSetting",{enumerable:!0,get:function(){return ce.ClientDeviceSetting}}),Object.defineProperty(exports,"ClientIngestorConfiguration",{enumerable:!0,get:function(){return se.ClientIngestorConfiguration}}),Object.defineProperty(exports,"ClientIssuesConfiguration",{enumerable:!0,get:function(){return pe.ClientIssuesConfiguration}}),Object.defineProperty(exports,"ClientStatusHistory",{enumerable:!0,get:function(){return le.ClientStatusHistory}}),Object.defineProperty(exports,"ClientType",{enumerable:!0,get:function(){return fe.ClientType}}),Object.defineProperty(exports,"Country",{enumerable:!0,get:function(){return be.Country}}),Object.defineProperty(exports,"CustomReport",{enumerable:!0,get:function(){return me.CustomReport}}),Object.defineProperty(exports,"CustomReportColumn",{enumerable:!0,get:function(){return je.CustomReportColumn}}),Object.defineProperty(exports,"CustomReportColumnCategory",{enumerable:!0,get:function(){return de.CustomReportColumnCategory}}),Object.defineProperty(exports,"CustomReportDataSource",{enumerable:!0,get:function(){return ge.CustomReportDataSource}}),Object.defineProperty(exports,"CustomReportSelectedColumn",{enumerable:!0,get:function(){return ye.CustomReportSelectedColumn}}),Object.defineProperty(exports,"CustomSecurityRole",{enumerable:!0,get:function(){return Pe.CustomSecurityRole}}),Object.defineProperty(exports,"DataExport",{enumerable:!0,get:function(){return Oe.DataExport}}),Object.defineProperty(exports,"DataSourceType",{enumerable:!0,get:function(){return xe.DataSourceType}}),Object.defineProperty(exports,"Deactivation",{enumerable:!0,get:function(){return qe.Deactivation}}),Object.defineProperty(exports,"DeactivationReason",{enumerable:!0,get:function(){return ve.DeactivationReason}}),Object.defineProperty(exports,"DemoAccountDeviceData",{enumerable:!0,get:function(){return Ce.DemoAccountDeviceData}}),Object.defineProperty(exports,"DemoAccountSiteLocation",{enumerable:!0,get:function(){return Ae.DemoAccountSiteLocation}}),Object.defineProperty(exports,"DemoAccountTemplate",{enumerable:!0,get:function(){return Se.DemoAccountTemplate}}),Object.defineProperty(exports,"DemoAccountTemplateAssetProfile",{enumerable:!0,get:function(){return De.DemoAccountTemplateAssetProfile}}),Object.defineProperty(exports,"DemoAccountTemplateBleMesh",{enumerable:!0,get:function(){return Te.DemoAccountTemplateBleMesh}}),Object.defineProperty(exports,"DemoAccountTemplateDevice",{enumerable:!0,get:function(){return Be.DemoAccountTemplateDevice}}),Object.defineProperty(exports,"DemoAccountTripTemplate",{enumerable:!0,get:function(){return Re.DemoAccountTripTemplate}}),Object.defineProperty(exports,"DemoAccountTripTemplatePosition",{enumerable:!0,get:function(){return he.DemoAccountTripTemplatePosition}}),Object.defineProperty(exports,"DemoDeviceData",{enumerable:!0,get:function(){return Me.DemoDeviceData}}),Object.defineProperty(exports,"DemoFormField",{enumerable:!0,get:function(){return Ie.DemoFormField}}),Object.defineProperty(exports,"DemoLead",{enumerable:!0,get:function(){return ke.DemoLead}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return Ue.Device}}),Object.defineProperty(exports,"DeviceBehavior",{enumerable:!0,get:function(){return Fe.DeviceBehavior}}),Object.defineProperty(exports,"DeviceBleMesh",{enumerable:!0,get:function(){return we.DeviceBleMesh}}),Object.defineProperty(exports,"DeviceBleMeshUpdateTask",{enumerable:!0,get:function(){return Ee.DeviceBleMeshUpdateTask}}),Object.defineProperty(exports,"DeviceCameraConfiguration",{enumerable:!0,get:function(){return He.DeviceCameraConfiguration}}),Object.defineProperty(exports,"DeviceCameraMedia",{enumerable:!0,get:function(){return ze.DeviceCameraMedia}}),Object.defineProperty(exports,"DeviceCameraMediaEventType",{enumerable:!0,get:function(){return Le.DeviceCameraMediaEventType}}),Object.defineProperty(exports,"DeviceCameraMediaStreamingData",{enumerable:!0,get:function(){return Ve.DeviceCameraMediaStreamingData}}),Object.defineProperty(exports,"DeviceCameraMediaStreamingSession",{enumerable:!0,get:function(){return Ne.DeviceCameraMediaStreamingSession}}),Object.defineProperty(exports,"DeviceCameraMediaSyncStatus",{enumerable:!0,get:function(){return Ge.DeviceCameraMediaSyncStatus}}),Object.defineProperty(exports,"DeviceCameraRequestedPictureData",{enumerable:!0,get:function(){return Je.DeviceCameraRequestedPictureData}}),Object.defineProperty(exports,"DeviceCameraRequestedVideoData",{enumerable:!0,get:function(){return Ke.DeviceCameraRequestedVideoData}}),Object.defineProperty(exports,"DeviceChangesHistory",{enumerable:!0,get:function(){return We.DeviceChangesHistory}}),Object.defineProperty(exports,"DeviceCustomConfiguration",{enumerable:!0,get:function(){return Qe.DeviceCustomConfiguration}}),Object.defineProperty(exports,"DeviceEventsTriggerConfiguration",{enumerable:!0,get:function(){return Ze.DeviceEventsTriggerConfiguration}}),Object.defineProperty(exports,"DeviceHistory",{enumerable:!0,get:function(){return Xe.DeviceHistory}}),Object.defineProperty(exports,"DeviceModelListener",{enumerable:!0,get:function(){return Ye.DeviceModelListener}}),Object.defineProperty(exports,"DevicePairing",{enumerable:!0,get:function(){return $e.DevicePairing}}),Object.defineProperty(exports,"DevicePromotion",{enumerable:!0,get:function(){return _e.DevicePromotion}}),Object.defineProperty(exports,"DevicePropertyMapping",{enumerable:!0,get:function(){return er.DevicePropertyMapping}}),Object.defineProperty(exports,"DeviceReplacement",{enumerable:!0,get:function(){return rr.DeviceReplacement}}),Object.defineProperty(exports,"DeviceStatus",{enumerable:!0,get:function(){return tr.DeviceStatus}}),Object.defineProperty(exports,"DeviceTask",{enumerable:!0,get:function(){return nr.DeviceTask}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function(){return ir.DeviceType}}),Object.defineProperty(exports,"DeviceTypeFeature",{enumerable:!0,get:function(){return or.DeviceTypeFeature}}),Object.defineProperty(exports,"DeviceTypeFirmware",{enumerable:!0,get:function(){return ur.DeviceTypeFirmware}}),Object.defineProperty(exports,"DeviceTypePromotion",{enumerable:!0,get:function(){return ar.DeviceTypePromotion}}),Object.defineProperty(exports,"EmailDomain",{enumerable:!0,get:function(){return cr.EmailDomain}}),Object.defineProperty(exports,"EntityTag",{enumerable:!0,get:function(){return sr.EntityTag}}),Object.defineProperty(exports,"EntityType",{enumerable:!0,get:function(){return pr.EntityType}}),Object.defineProperty(exports,"EphemeralBoundary",{enumerable:!0,get:function(){return lr.EphemeralBoundary}}),Object.defineProperty(exports,"Feature",{enumerable:!0,get:function(){return fr.Feature}}),Object.defineProperty(exports,"FirmwareAutoUpgradeBlacklist",{enumerable:!0,get:function(){return br.FirmwareAutoUpgradeBlacklist}}),Object.defineProperty(exports,"FirmwareUpgradeTask",{enumerable:!0,get:function(){return mr.FirmwareUpgradeTask}}),Object.defineProperty(exports,"HistoricalBillingPlan",{enumerable:!0,get:function(){return jr.HistoricalBillingPlan}}),Object.defineProperty(exports,"IccidStatus",{enumerable:!0,get:function(){return dr.IccidStatus}}),Object.defineProperty(exports,"ImeiIccidCarrier",{enumerable:!0,get:function(){return gr.ImeiIccidCarrier}}),Object.defineProperty(exports,"ImeiIccidHistory",{enumerable:!0,get:function(){return yr.ImeiIccidHistory}}),Object.defineProperty(exports,"ImeiIccidImport",{enumerable:!0,get:function(){return Pr.ImeiIccidImport}}),Object.defineProperty(exports,"Industry",{enumerable:!0,get:function(){return Or.Industry}}),Object.defineProperty(exports,"IngestorProvider",{enumerable:!0,get:function(){return xr.IngestorProvider}}),Object.defineProperty(exports,"Issue",{enumerable:!0,get:function(){return qr.Issue}}),Object.defineProperty(exports,"IssueSuppressionRule",{enumerable:!0,get:function(){return vr.IssueSuppressionRule}}),Object.defineProperty(exports,"IssueType",{enumerable:!0,get:function(){return Cr.IssueType}}),Object.defineProperty(exports,"JarvisWebGroupAccess",{enumerable:!0,get:function(){return Ar.JarvisWebGroupAccess}}),Object.defineProperty(exports,"Job",{enumerable:!0,get:function(){return Sr.Job}}),Object.defineProperty(exports,"JobAttachment",{enumerable:!0,get:function(){return Dr.JobAttachment}}),Object.defineProperty(exports,"LatestUserAppInfo",{enumerable:!0,get:function(){return Tr.LatestUserAppInfo}}),Object.defineProperty(exports,"LiveLink",{enumerable:!0,get:function(){return Br.LiveLink}}),Object.defineProperty(exports,"LiveLinkMedia",{enumerable:!0,get:function(){return Rr.LiveLinkMedia}}),Object.defineProperty(exports,"M2Sync",{enumerable:!0,get:function(){return hr.M2Sync}}),Object.defineProperty(exports,"Magento2Gps",{enumerable:!0,get:function(){return Mr.Magento2Gps}}),Object.defineProperty(exports,"Magento2Plan",{enumerable:!0,get:function(){return Ir.Magento2Plan}}),Object.defineProperty(exports,"MarketplacePromotion",{enumerable:!0,get:function(){return kr.MarketplacePromotion}}),Object.defineProperty(exports,"MobileNetwork",{enumerable:!0,get:function(){return Ur.MobileNetwork}}),Object.defineProperty(exports,"NotificationRecipient",{enumerable:!0,get:function(){return Fr.NotificationRecipient}}),Object.defineProperty(exports,"OrderShipmentInternational",{enumerable:!0,get:function(){return wr.OrderShipmentInternational}}),Object.defineProperty(exports,"Organization",{enumerable:!0,get:function(){return Er.Organization}}),Object.defineProperty(exports,"PlaceCategory",{enumerable:!0,get:function(){return Hr.PlaceCategory}}),Object.defineProperty(exports,"PlaceType",{enumerable:!0,get:function(){return zr.PlaceType}}),Object.defineProperty(exports,"Plan",{enumerable:!0,get:function(){return Lr.Plan}}),Object.defineProperty(exports,"Position",{enumerable:!0,get:function(){return Vr.Position}}),Object.defineProperty(exports,"Promotion",{enumerable:!0,get:function(){return Nr.Promotion}}),Object.defineProperty(exports,"PromotionHistory",{enumerable:!0,get:function(){return Gr.PromotionHistory}}),Object.defineProperty(exports,"Referral",{enumerable:!0,get:function(){return Jr.Referral}}),Object.defineProperty(exports,"ReferralCredit",{enumerable:!0,get:function(){return Kr.ReferralCredit}}),Object.defineProperty(exports,"Referrer",{enumerable:!0,get:function(){return Wr.Referrer}}),Object.defineProperty(exports,"Region",{enumerable:!0,get:function(){return Qr.Region}}),Object.defineProperty(exports,"ReportScheduleConfiguration",{enumerable:!0,get:function(){return Zr.ReportScheduleConfiguration}}),Object.defineProperty(exports,"RetailAlert",{enumerable:!0,get:function(){return Xr.RetailAlert}}),Object.defineProperty(exports,"RetailAlertExternalRecipient",{enumerable:!0,get:function(){return Yr.RetailAlertExternalRecipient}}),Object.defineProperty(exports,"RetailAlertInternalRecipient",{enumerable:!0,get:function(){return $r.RetailAlertInternalRecipient}}),Object.defineProperty(exports,"RetailAlertType",{enumerable:!0,get:function(){return _r.RetailAlertType}}),Object.defineProperty(exports,"RetailBleTag",{enumerable:!0,get:function(){return et.RetailBleTag}}),Object.defineProperty(exports,"RetailClientAlertConfiguration",{enumerable:!0,get:function(){return rt.RetailClientAlertConfiguration}}),Object.defineProperty(exports,"RetailDepartmentType",{enumerable:!0,get:function(){return tt.RetailDepartmentType}}),Object.defineProperty(exports,"RetailGateway",{enumerable:!0,get:function(){return nt.RetailGateway}}),Object.defineProperty(exports,"RetailIncident",{enumerable:!0,get:function(){return it.RetailIncident}}),Object.defineProperty(exports,"RetailItem",{enumerable:!0,get:function(){return ot.RetailItem}}),Object.defineProperty(exports,"RetailItemEvent",{enumerable:!0,get:function(){return ut.RetailItemEvent}}),Object.defineProperty(exports,"RetailProduct",{enumerable:!0,get:function(){return at.RetailProduct}}),Object.defineProperty(exports,"RetailStore",{enumerable:!0,get:function(){return ct.RetailStore}}),Object.defineProperty(exports,"RetailTrainingSet",{enumerable:!0,get:function(){return st.RetailTrainingSet}}),Object.defineProperty(exports,"RetailZone",{enumerable:!0,get:function(){return pt.RetailZone}}),Object.defineProperty(exports,"SavedView",{enumerable:!0,get:function(){return lt.SavedView}}),Object.defineProperty(exports,"SavedViewShare",{enumerable:!0,get:function(){return ft.SavedViewShare}}),Object.defineProperty(exports,"SecurityRole",{enumerable:!0,get:function(){return bt.SecurityRole}}),Object.defineProperty(exports,"SensorConfig",{enumerable:!0,get:function(){return mt.SensorConfig}}),Object.defineProperty(exports,"ServiceProvider",{enumerable:!0,get:function(){return jt.ServiceProvider}}),Object.defineProperty(exports,"ServiceProviderProduct",{enumerable:!0,get:function(){return dt.ServiceProviderProduct}}),Object.defineProperty(exports,"ServiceProviderProductNetwork",{enumerable:!0,get:function(){return gt.ServiceProviderProductNetwork}}),Object.defineProperty(exports,"ServiceProviderProductType",{enumerable:!0,get:function(){return yt.ServiceProviderProductType}}),Object.defineProperty(exports,"Sim",{enumerable:!0,get:function(){return Pt.Sim}}),Object.defineProperty(exports,"SimConnectivityStatus",{enumerable:!0,get:function(){return Ot.SimConnectivityStatus}}),Object.defineProperty(exports,"SimMonthlyUsage",{enumerable:!0,get:function(){return xt.SimMonthlyUsage}}),Object.defineProperty(exports,"SnapToRoadCache",{enumerable:!0,get:function(){return qt.SnapToRoadCache}}),Object.defineProperty(exports,"StripeAddonMapping",{enumerable:!0,get:function(){return vt.StripeAddonMapping}}),Object.defineProperty(exports,"StripeHardwareMapping",{enumerable:!0,get:function(){return Ct.StripeHardwareMapping}}),Object.defineProperty(exports,"StripePriceMapping",{enumerable:!0,get:function(){return At.StripePriceMapping}}),Object.defineProperty(exports,"SupportConversation",{enumerable:!0,get:function(){return St.SupportConversation}}),Object.defineProperty(exports,"SupportConversationMessage",{enumerable:!0,get:function(){return Dt.SupportConversationMessage}}),Object.defineProperty(exports,"SupportInteractionTopic",{enumerable:!0,get:function(){return Tt.SupportInteractionTopic}}),Object.defineProperty(exports,"SupportSyncState",{enumerable:!0,get:function(){return Bt.SupportSyncState}}),Object.defineProperty(exports,"SupportTicket",{enumerable:!0,get:function(){return Rt.SupportTicket}}),Object.defineProperty(exports,"SupportTicketComment",{enumerable:!0,get:function(){return ht.SupportTicketComment}}),Object.defineProperty(exports,"SupportTopic",{enumerable:!0,get:function(){return Mt.SupportTopic}}),Object.defineProperty(exports,"Tag",{enumerable:!0,get:function(){return It.Tag}}),Object.defineProperty(exports,"Task",{enumerable:!0,get:function(){return kt.Task}}),Object.defineProperty(exports,"TaskSchedule",{enumerable:!0,get:function(){return Ut.TaskSchedule}}),Object.defineProperty(exports,"TicketManager",{enumerable:!0,get:function(){return Ft.TicketManager}}),Object.defineProperty(exports,"Trip",{enumerable:!0,get:function(){return wt.Trip}}),Object.defineProperty(exports,"TripCompletionStatus",{enumerable:!0,get:function(){return Et.TripCompletionStatus}}),Object.defineProperty(exports,"TripPosition",{enumerable:!0,get:function(){return Ht.TripPosition}}),Object.defineProperty(exports,"TripStatus",{enumerable:!0,get:function(){return zt.TripStatus}}),Object.defineProperty(exports,"User",{enumerable:!0,get:function(){return Lt.User}}),Object.defineProperty(exports,"UserActivation",{enumerable:!0,get:function(){return Vt.UserActivation}}),Object.defineProperty(exports,"UserActivationDevice",{enumerable:!0,get:function(){return Nt.UserActivationDevice}}),Object.defineProperty(exports,"UserActivationEvent",{enumerable:!0,get:function(){return Gt.UserActivationEvent}}),Object.defineProperty(exports,"UserActivationMetric",{enumerable:!0,get:function(){return Jt.UserActivationMetric}}),Object.defineProperty(exports,"UserAlertComplain",{enumerable:!0,get:function(){return Kt.UserAlertComplain}}),Object.defineProperty(exports,"UserAlertConfiguration",{enumerable:!0,get:function(){return Wt.UserAlertConfiguration}}),Object.defineProperty(exports,"UserAlertNotificationsConfig",{enumerable:!0,get:function(){return Qt.UserAlertNotificationsConfig}}),Object.defineProperty(exports,"UserAppFeedback",{enumerable:!0,get:function(){return Zt.UserAppFeedback}}),Object.defineProperty(exports,"UserAppIncident",{enumerable:!0,get:function(){return Xt.UserAppIncident}}),Object.defineProperty(exports,"UserAuthorizedBoundary",{enumerable:!0,get:function(){return Yt.UserAuthorizedBoundary}}),Object.defineProperty(exports,"UserAuthorizedBoundarySecurityView",{enumerable:!0,get:function(){return $t.UserAuthorizedBoundarySecurityView}}),Object.defineProperty(exports,"UserAuthorizedBoundarySecurityViewV2",{enumerable:!0,get:function(){return $t.UserAuthorizedBoundarySecurityView}}),Object.defineProperty(exports,"UserAuthorizedDevice",{enumerable:!0,get:function(){return _t.UserAuthorizedDevice}}),Object.defineProperty(exports,"UserAuthorizedDeviceSecurityView",{enumerable:!0,get:function(){return en.UserAuthorizedDeviceSecurityView}}),Object.defineProperty(exports,"UserAuthorizedDeviceSecurityViewV2",{enumerable:!0,get:function(){return en.UserAuthorizedDeviceSecurityView}}),Object.defineProperty(exports,"UserCancellationDueDevice",{enumerable:!0,get:function(){return rn.UserCancellationDueDevice}}),Object.defineProperty(exports,"UserCarrierDeactivateDevice",{enumerable:!0,get:function(){return tn.UserCarrierDeactivateDevice}}),Object.defineProperty(exports,"UserCarrierReactivateDevice",{enumerable:!0,get:function(){return nn.UserCarrierReactivateDevice}}),Object.defineProperty(exports,"UserConfiguration",{enumerable:!0,get:function(){return on.UserConfiguration}}),Object.defineProperty(exports,"UserDataDeletionRequest",{enumerable:!0,get:function(){return un.UserDataDeletionRequest}}),Object.defineProperty(exports,"UserDeviceBehaviorTask",{enumerable:!0,get:function(){return an.UserDeviceBehaviorTask}}),Object.defineProperty(exports,"UserFreeOfferDevice",{enumerable:!0,get:function(){return cn.UserFreeOfferDevice}}),Object.defineProperty(exports,"UserInvitation",{enumerable:!0,get:function(){return sn.UserInvitation}}),Object.defineProperty(exports,"UserRegistrationAttempt",{enumerable:!0,get:function(){return pn.UserRegistrationAttempt}}),Object.defineProperty(exports,"UserSecurityRole",{enumerable:!0,get:function(){return ln.UserSecurityRole}}),Object.defineProperty(exports,"WebsocketConnection",{enumerable:!0,get:function(){return fn.WebsocketConnection}}),Object.defineProperty(exports,"CustomerAttribute",{enumerable:!0,get:function(){return bn.CustomerAttribute}});
1
+ "use strict";var e=require("./acumaticaAmazonProduct.js"),r=require("./acumaticaImeiIccidData.js"),t=require("./acumaticaMarketplaceProduct.js"),n=require("./acumaticaOrderShipmentDetails.js"),i=require("./acumaticaShipment.js"),o=require("./acumaticaShipmentAmazon.js"),u=require("./aempToken.js"),a=require("./aiConversation.js"),c=require("./aiMessage.js"),s=require("./alert.js"),p=require("./alertType.js"),l=require("./anomaly.js"),f=require("./appFeatureType.js"),m=require("./asinPromotion.js"),b=require("./assetCategory.js"),g=require("./assetProfile.js"),j=require("./assetProfileCategory.js"),d=require("./assetProfileCustomField.js"),y=require("./assetProfileMedia.js"),P=require("./assetProfileNote.js"),x=require("./assetProfileStatusCustomLabel.js"),O=require("./assetProfileType.js"),q=require("./avalaraExemptCert.js"),v=require("./avalaraQueue.js"),C=require("./beaconBleMesh.js"),A=require("./billing.js"),S=require("./billingCampaign.js"),D=require("./billingCampaignExpansion.js"),T=require("./billingCampaignExpansionAddress.js"),B=require("./billingCampaignExpansionDevice.js"),R=require("./billingCampaignExpansionOrder.js"),h=require("./billingCampaignFreeOffer.js"),M=require("./billingCampaignFreeTrial.js"),I=require("./billingCampaignPrepaid.js"),k=require("./billingCustomerAmazon.js"),U=require("./billingCustomerBraintree.js"),E=require("./billingCustomerStripe.js"),F=require("./billingDeviceHistory.js"),w=require("./billingDeviceTypePlan.js"),H=require("./billingDunning.js"),L=require("./billingHubspotPaymentLog.js"),z=require("./billingInvoice.js"),V=require("./billingKlarnaCustomer.js"),N=require("./billingKlarnaOrder.js"),J=require("./billingPlanFeatures.js"),G=require("./billingPlans.js"),K=require("./billingStatusHistoryBraintree.js"),W=require("./billingSubscriptionAmazon.js"),Q=require("./billingSubscriptionBraintree.js"),Z=require("./billingSubscriptionShopify.js"),X=require("./billingSubscriptionStripe.js"),Y=require("./blacklist.js"),$=require("./blacklistType.js"),_=require("./bleMesh.js"),ee=require("./bleMeshConfiguration.js"),re=require("./boundary.js"),te=require("./cellTower.js"),ne=require("./churnNotification.js"),ie=require("./client.js"),oe=require("./clientAlertConfiguration.js"),ue=require("./clientAlertRecipient.js"),ae=require("./clientApiToken.js"),ce=require("./clientApiTokenShareHistory.js"),se=require("./clientAppFeature.js"),pe=require("./clientConfiguration.js"),le=require("./clientDeviceIcon.js"),fe=require("./clientDeviceSetting.js"),me=require("./clientIngestorConfiguration.js"),be=require("./clientIssuesConfiguration.js"),ge=require("./clientStatusHistory.js"),je=require("./clientType.js"),de=require("./country.js"),ye=require("./customReport.js"),Pe=require("./customReportColumn.js"),xe=require("./customReportColumnCategory.js"),Oe=require("./customReportDataSource.js"),qe=require("./customReportSelectedColumn.js"),ve=require("./customSecurityRole.js"),Ce=require("./dataExport.js"),Ae=require("./dataSourceType.js"),Se=require("./deactivation.js"),De=require("./deactivationReason.js"),Te=require("./demoAccountDeviceData.js"),Be=require("./demoAccountSiteLocation.js"),Re=require("./demoAccountTemplate.js"),he=require("./demoAccountTemplateAssetProfile.js"),Me=require("./demoAccountTemplateBleMesh.js"),Ie=require("./demoAccountTemplateDevice.js"),ke=require("./demoAccountTripTemplate.js"),Ue=require("./demoAccountTripTemplatePosition.js"),Ee=require("./demoDeviceData.js"),Fe=require("./demoFormField.js"),we=require("./demoLead.js"),He=require("./device.js"),Le=require("./deviceBehavior.js"),ze=require("./deviceBleMesh.js"),Ve=require("./deviceBleMeshUpdateTask.js"),Ne=require("./deviceCameraConfiguration.js"),Je=require("./deviceCameraMedia.js"),Ge=require("./deviceCameraMediaEventType.js"),Ke=require("./deviceCameraMediaStreamingData.js"),We=require("./deviceCameraMediaStreamingSession.js"),Qe=require("./deviceCameraMediaSyncStatus.js"),Ze=require("./deviceCameraRequestedPictureData.js"),Xe=require("./deviceCameraRequestedVideoData.js"),Ye=require("./deviceChangesHistory.js"),$e=require("./deviceCustomConfiguration.js"),_e=require("./deviceEventsTriggerConfiguration.js"),er=require("./deviceHistory.js"),rr=require("./deviceModelListener.js"),tr=require("./devicePairing.js"),nr=require("./devicePromotion.js"),ir=require("./devicePropertyMapping.js"),or=require("./deviceReplacement.js"),ur=require("./deviceStatus.js"),ar=require("./deviceTask.js"),cr=require("./deviceType.js"),sr=require("./deviceTypeFeature.js"),pr=require("./deviceTypeFirmware.js"),lr=require("./deviceTypePromotion.js"),fr=require("./emailDomain.js"),mr=require("./entityTag.js"),br=require("./entityType.js"),gr=require("./ephemeralBoundary.js"),jr=require("./feature.js"),dr=require("./firmwareAutoUpgradeBlacklist.js"),yr=require("./firmwareUpgradeTask.js"),Pr=require("./historicalBillingPlan.js"),xr=require("./iccidStatus.js"),Or=require("./imeiIccidCarrier.js"),qr=require("./imeiIccidHistory.js"),vr=require("./imeiIccidImport.js"),Cr=require("./industry.js"),Ar=require("./ingestorProvider.js"),Sr=require("./issue.js"),Dr=require("./issueSuppressionRule.js"),Tr=require("./issueType.js"),Br=require("./jarvisWebGroupAccess.js"),Rr=require("./job.js"),hr=require("./jobAttachment.js"),Mr=require("./jobCustomerLink.js"),Ir=require("./jobCustomerPageSetting.js"),kr=require("./latestUserAppInfo.js"),Ur=require("./liveLink.js"),Er=require("./liveLinkMedia.js"),Fr=require("./m2Sync.js"),wr=require("./magento2Gps.js"),Hr=require("./magento2Plan.js"),Lr=require("./marketplacePromotion.js"),zr=require("./mobileNetwork.js"),Vr=require("./notificationRecipient.js"),Nr=require("./orderShipmentInternational.js"),Jr=require("./organization.js"),Gr=require("./placeCategory.js"),Kr=require("./placeType.js"),Wr=require("./plan.js"),Qr=require("./position.js"),Zr=require("./promotion.js"),Xr=require("./promotionHistory.js"),Yr=require("./referral.js"),$r=require("./referralCredit.js"),_r=require("./referrer.js"),et=require("./region.js"),rt=require("./reportScheduleConfiguration.js"),tt=require("./retailAlert.js"),nt=require("./retailAlertExternalRecipient.js"),it=require("./retailAlertInternalRecipient.js"),ot=require("./retailAlertType.js"),ut=require("./retailBleTag.js"),at=require("./retailClientAlertConfiguration.js"),ct=require("./retailDepartmentType.js"),st=require("./retailGateway.js"),pt=require("./retailIncident.js"),lt=require("./retailItem.js"),ft=require("./retailItemEvent.js"),mt=require("./retailProduct.js"),bt=require("./retailStore.js"),gt=require("./retailTrainingSet.js"),jt=require("./retailZone.js"),dt=require("./savedView.js"),yt=require("./savedViewShare.js"),Pt=require("./securityRole.js"),xt=require("./sensorConfig.js"),Ot=require("./serviceProvider.js"),qt=require("./serviceProviderProduct.js"),vt=require("./serviceProviderProductNetwork.js"),Ct=require("./serviceProviderProductType.js"),At=require("./sim.js"),St=require("./simConnectivityStatus.js"),Dt=require("./simMonthlyUsage.js"),Tt=require("./snapToRoadCache.js"),Bt=require("./stripeAddonMapping.js"),Rt=require("./stripeHardwareMapping.js"),ht=require("./stripePriceMapping.js"),Mt=require("./supportConversation.js"),It=require("./supportConversationMessage.js"),kt=require("./supportInteractionTopic.js"),Ut=require("./supportSyncState.js"),Et=require("./supportTicket.js"),Ft=require("./supportTicketComment.js"),wt=require("./supportTopic.js"),Ht=require("./tag.js"),Lt=require("./task.js"),zt=require("./taskSchedule.js"),Vt=require("./ticketManager.js"),Nt=require("./trip.js"),Jt=require("./tripCompletionStatus.js"),Gt=require("./tripPosition.js"),Kt=require("./tripStatus.js"),Wt=require("./user.js"),Qt=require("./userActivation.js"),Zt=require("./userActivationDevice.js"),Xt=require("./userActivationEvent.js"),Yt=require("./userActivationMetric.js"),$t=require("./userAlertComplain.js"),_t=require("./userAlertConfiguration.js"),en=require("./userAlertNotificationsConfig.js"),rn=require("./userAppFeedback.js"),tn=require("./userAppIncident.js"),nn=require("./userAuthorizedBoundary.js"),on=require("./userAuthorizedBoundarySecurityView.js"),un=require("./userAuthorizedDevice.js"),an=require("./userAuthorizedDeviceSecurityView.js"),cn=require("./userCancellationDueDevice.js"),sn=require("./userCarrierDeactivateDevice.js"),pn=require("./userCarrierReactivateDevice.js"),ln=require("./userConfiguration.js"),fn=require("./userDataDeletionRequest.js"),mn=require("./userDeviceBehaviorTask.js"),bn=require("./userFreeOfferDevice.js"),gn=require("./userInvitation.js"),jn=require("./userRegistrationAttempt.js"),dn=require("./userSecurityRole.js"),yn=require("./websocketConnection.js"),Pn=require("./customerAttribute.js");Object.defineProperty(exports,"AcumaticaAmazonProduct",{enumerable:!0,get:function(){return e.AcumaticaAmazonProduct}}),Object.defineProperty(exports,"AcumaticaImeiIccidData",{enumerable:!0,get:function(){return r.AcumaticaImeiIccidData}}),Object.defineProperty(exports,"AcumaticaMarketplaceProduct",{enumerable:!0,get:function(){return t.AcumaticaMarketplaceProduct}}),Object.defineProperty(exports,"AcumaticaOrderShipmentDetails",{enumerable:!0,get:function(){return n.AcumaticaOrderShipmentDetails}}),Object.defineProperty(exports,"AcumaticaShipment",{enumerable:!0,get:function(){return i.AcumaticaShipment}}),Object.defineProperty(exports,"AcumaticaShipmentAmazon",{enumerable:!0,get:function(){return o.AcumaticaShipmentAmazon}}),Object.defineProperty(exports,"AempToken",{enumerable:!0,get:function(){return u.AempToken}}),Object.defineProperty(exports,"AiConversation",{enumerable:!0,get:function(){return a.AiConversation}}),Object.defineProperty(exports,"AiMessage",{enumerable:!0,get:function(){return c.AiMessage}}),Object.defineProperty(exports,"Alert",{enumerable:!0,get:function(){return s.Alert}}),Object.defineProperty(exports,"AlertType",{enumerable:!0,get:function(){return p.AlertType}}),Object.defineProperty(exports,"Anomaly",{enumerable:!0,get:function(){return l.Anomaly}}),Object.defineProperty(exports,"AppFeatureType",{enumerable:!0,get:function(){return f.AppFeatureType}}),Object.defineProperty(exports,"AsinPromotion",{enumerable:!0,get:function(){return m.AsinPromotion}}),Object.defineProperty(exports,"AssetCategory",{enumerable:!0,get:function(){return b.AssetCategory}}),Object.defineProperty(exports,"AssetProfile",{enumerable:!0,get:function(){return g.AssetProfile}}),Object.defineProperty(exports,"AssetProfileCategory",{enumerable:!0,get:function(){return j.AssetProfileCategory}}),Object.defineProperty(exports,"AssetProfileCustomField",{enumerable:!0,get:function(){return d.AssetProfileCustomField}}),Object.defineProperty(exports,"AssetProfileMedia",{enumerable:!0,get:function(){return y.AssetProfileMedia}}),Object.defineProperty(exports,"AssetProfileNote",{enumerable:!0,get:function(){return P.AssetProfileNote}}),Object.defineProperty(exports,"AssetProfileCustomStatus",{enumerable:!0,get:function(){return x.AssetProfileCustomStatus}}),Object.defineProperty(exports,"AssetProfileType",{enumerable:!0,get:function(){return O.AssetProfileType}}),Object.defineProperty(exports,"AvalaraExemptCert",{enumerable:!0,get:function(){return q.AvalaraExemptCert}}),Object.defineProperty(exports,"AvalaraQueue",{enumerable:!0,get:function(){return v.AvalaraQueue}}),Object.defineProperty(exports,"BeaconBleMesh",{enumerable:!0,get:function(){return C.BeaconBleMesh}}),Object.defineProperty(exports,"Billing",{enumerable:!0,get:function(){return A.Billing}}),Object.defineProperty(exports,"BillingCampaign",{enumerable:!0,get:function(){return S.BillingCampaign}}),Object.defineProperty(exports,"BillingCampaignExpansion",{enumerable:!0,get:function(){return D.BillingCampaignExpansion}}),Object.defineProperty(exports,"BillingCampaignExpansionAddress",{enumerable:!0,get:function(){return T.BillingCampaignExpansionAddress}}),Object.defineProperty(exports,"BillingCampaignExpansionDevice",{enumerable:!0,get:function(){return B.BillingCampaignExpansionDevice}}),Object.defineProperty(exports,"BillingCampaignExpansionOrder",{enumerable:!0,get:function(){return R.BillingCampaignExpansionOrder}}),Object.defineProperty(exports,"BillingCampaignFreeOffer",{enumerable:!0,get:function(){return h.BillingCampaignFreeOffer}}),Object.defineProperty(exports,"BillingCampaignFreeTrial",{enumerable:!0,get:function(){return M.BillingCampaignFreeTrial}}),Object.defineProperty(exports,"BillingCampaignPrepaid",{enumerable:!0,get:function(){return I.BillingCampaignPrepaid}}),Object.defineProperty(exports,"BillingCustomerAmazon",{enumerable:!0,get:function(){return k.BillingCustomerAmazon}}),Object.defineProperty(exports,"BillingCustomerBraintree",{enumerable:!0,get:function(){return U.BillingCustomerBraintree}}),Object.defineProperty(exports,"BillingCustomerStripe",{enumerable:!0,get:function(){return E.BillingCustomerStripe}}),Object.defineProperty(exports,"BillingDeviceHistory",{enumerable:!0,get:function(){return F.BillingDeviceHistory}}),Object.defineProperty(exports,"BillingDeviceTypePlan",{enumerable:!0,get:function(){return w.BillingDeviceTypePlan}}),Object.defineProperty(exports,"BillingDunning",{enumerable:!0,get:function(){return H.BillingDunning}}),Object.defineProperty(exports,"BillingHubspotPaymentLog",{enumerable:!0,get:function(){return L.BillingHubspotPaymentLog}}),Object.defineProperty(exports,"BillingInvoice",{enumerable:!0,get:function(){return z.BillingInvoice}}),Object.defineProperty(exports,"BillingKlarnaCustomer",{enumerable:!0,get:function(){return V.BillingKlarnaCustomer}}),Object.defineProperty(exports,"BillingKlarnaOrder",{enumerable:!0,get:function(){return N.BillingKlarnaOrder}}),Object.defineProperty(exports,"BillingPlanFeatures",{enumerable:!0,get:function(){return J.BillingPlanFeatures}}),Object.defineProperty(exports,"BillingPlans",{enumerable:!0,get:function(){return G.BillingPlans}}),Object.defineProperty(exports,"BillingStatusHistoryBraintree",{enumerable:!0,get:function(){return K.BillingStatusHistoryBraintree}}),Object.defineProperty(exports,"BillingSubscriptionAmazon",{enumerable:!0,get:function(){return W.BillingSubscriptionAmazon}}),Object.defineProperty(exports,"BillingSubscriptionBraintree",{enumerable:!0,get:function(){return Q.BillingSubscriptionBraintree}}),Object.defineProperty(exports,"BillingSubscriptionShopify",{enumerable:!0,get:function(){return Z.BillingSubscriptionShopify}}),Object.defineProperty(exports,"BillingSubscriptionStripe",{enumerable:!0,get:function(){return X.BillingSubscriptionStripe}}),Object.defineProperty(exports,"Blacklist",{enumerable:!0,get:function(){return Y.Blacklist}}),Object.defineProperty(exports,"BlacklistType",{enumerable:!0,get:function(){return $.BlacklistType}}),Object.defineProperty(exports,"BLEMesh",{enumerable:!0,get:function(){return _.BLEMesh}}),Object.defineProperty(exports,"BLEMeshConfiguration",{enumerable:!0,get:function(){return ee.BLEMeshConfiguration}}),Object.defineProperty(exports,"Boundary",{enumerable:!0,get:function(){return re.Boundary}}),Object.defineProperty(exports,"CellTower",{enumerable:!0,get:function(){return te.CellTower}}),Object.defineProperty(exports,"ChurnNotification",{enumerable:!0,get:function(){return ne.ChurnNotification}}),Object.defineProperty(exports,"Client",{enumerable:!0,get:function(){return ie.Client}}),Object.defineProperty(exports,"ClientAlertConfiguration",{enumerable:!0,get:function(){return oe.ClientAlertConfiguration}}),Object.defineProperty(exports,"ClientAlertRecipient",{enumerable:!0,get:function(){return ue.ClientAlertRecipient}}),Object.defineProperty(exports,"ClientApiToken",{enumerable:!0,get:function(){return ae.ClientApiToken}}),Object.defineProperty(exports,"ClientApiTokenShareHistory",{enumerable:!0,get:function(){return ce.ClientApiTokenShareHistory}}),Object.defineProperty(exports,"ClientAppFeature",{enumerable:!0,get:function(){return se.ClientAppFeature}}),Object.defineProperty(exports,"ClientConfiguration",{enumerable:!0,get:function(){return pe.ClientConfiguration}}),Object.defineProperty(exports,"ClientDeviceIcon",{enumerable:!0,get:function(){return le.ClientDeviceIcon}}),Object.defineProperty(exports,"ClientDeviceSetting",{enumerable:!0,get:function(){return fe.ClientDeviceSetting}}),Object.defineProperty(exports,"ClientIngestorConfiguration",{enumerable:!0,get:function(){return me.ClientIngestorConfiguration}}),Object.defineProperty(exports,"ClientIssuesConfiguration",{enumerable:!0,get:function(){return be.ClientIssuesConfiguration}}),Object.defineProperty(exports,"ClientStatusHistory",{enumerable:!0,get:function(){return ge.ClientStatusHistory}}),Object.defineProperty(exports,"ClientType",{enumerable:!0,get:function(){return je.ClientType}}),Object.defineProperty(exports,"Country",{enumerable:!0,get:function(){return de.Country}}),Object.defineProperty(exports,"CustomReport",{enumerable:!0,get:function(){return ye.CustomReport}}),Object.defineProperty(exports,"CustomReportColumn",{enumerable:!0,get:function(){return Pe.CustomReportColumn}}),Object.defineProperty(exports,"CustomReportColumnCategory",{enumerable:!0,get:function(){return xe.CustomReportColumnCategory}}),Object.defineProperty(exports,"CustomReportDataSource",{enumerable:!0,get:function(){return Oe.CustomReportDataSource}}),Object.defineProperty(exports,"CustomReportSelectedColumn",{enumerable:!0,get:function(){return qe.CustomReportSelectedColumn}}),Object.defineProperty(exports,"CustomSecurityRole",{enumerable:!0,get:function(){return ve.CustomSecurityRole}}),Object.defineProperty(exports,"DataExport",{enumerable:!0,get:function(){return Ce.DataExport}}),Object.defineProperty(exports,"DataSourceType",{enumerable:!0,get:function(){return Ae.DataSourceType}}),Object.defineProperty(exports,"Deactivation",{enumerable:!0,get:function(){return Se.Deactivation}}),Object.defineProperty(exports,"DeactivationReason",{enumerable:!0,get:function(){return De.DeactivationReason}}),Object.defineProperty(exports,"DemoAccountDeviceData",{enumerable:!0,get:function(){return Te.DemoAccountDeviceData}}),Object.defineProperty(exports,"DemoAccountSiteLocation",{enumerable:!0,get:function(){return Be.DemoAccountSiteLocation}}),Object.defineProperty(exports,"DemoAccountTemplate",{enumerable:!0,get:function(){return Re.DemoAccountTemplate}}),Object.defineProperty(exports,"DemoAccountTemplateAssetProfile",{enumerable:!0,get:function(){return he.DemoAccountTemplateAssetProfile}}),Object.defineProperty(exports,"DemoAccountTemplateBleMesh",{enumerable:!0,get:function(){return Me.DemoAccountTemplateBleMesh}}),Object.defineProperty(exports,"DemoAccountTemplateDevice",{enumerable:!0,get:function(){return Ie.DemoAccountTemplateDevice}}),Object.defineProperty(exports,"DemoAccountTripTemplate",{enumerable:!0,get:function(){return ke.DemoAccountTripTemplate}}),Object.defineProperty(exports,"DemoAccountTripTemplatePosition",{enumerable:!0,get:function(){return Ue.DemoAccountTripTemplatePosition}}),Object.defineProperty(exports,"DemoDeviceData",{enumerable:!0,get:function(){return Ee.DemoDeviceData}}),Object.defineProperty(exports,"DemoFormField",{enumerable:!0,get:function(){return Fe.DemoFormField}}),Object.defineProperty(exports,"DemoLead",{enumerable:!0,get:function(){return we.DemoLead}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return He.Device}}),Object.defineProperty(exports,"DeviceBehavior",{enumerable:!0,get:function(){return Le.DeviceBehavior}}),Object.defineProperty(exports,"DeviceBleMesh",{enumerable:!0,get:function(){return ze.DeviceBleMesh}}),Object.defineProperty(exports,"DeviceBleMeshUpdateTask",{enumerable:!0,get:function(){return Ve.DeviceBleMeshUpdateTask}}),Object.defineProperty(exports,"DeviceCameraConfiguration",{enumerable:!0,get:function(){return Ne.DeviceCameraConfiguration}}),Object.defineProperty(exports,"DeviceCameraMedia",{enumerable:!0,get:function(){return Je.DeviceCameraMedia}}),Object.defineProperty(exports,"DeviceCameraMediaEventType",{enumerable:!0,get:function(){return Ge.DeviceCameraMediaEventType}}),Object.defineProperty(exports,"DeviceCameraMediaStreamingData",{enumerable:!0,get:function(){return Ke.DeviceCameraMediaStreamingData}}),Object.defineProperty(exports,"DeviceCameraMediaStreamingSession",{enumerable:!0,get:function(){return We.DeviceCameraMediaStreamingSession}}),Object.defineProperty(exports,"DeviceCameraMediaSyncStatus",{enumerable:!0,get:function(){return Qe.DeviceCameraMediaSyncStatus}}),Object.defineProperty(exports,"DeviceCameraRequestedPictureData",{enumerable:!0,get:function(){return Ze.DeviceCameraRequestedPictureData}}),Object.defineProperty(exports,"DeviceCameraRequestedVideoData",{enumerable:!0,get:function(){return Xe.DeviceCameraRequestedVideoData}}),Object.defineProperty(exports,"DeviceChangesHistory",{enumerable:!0,get:function(){return Ye.DeviceChangesHistory}}),Object.defineProperty(exports,"DeviceCustomConfiguration",{enumerable:!0,get:function(){return $e.DeviceCustomConfiguration}}),Object.defineProperty(exports,"DeviceEventsTriggerConfiguration",{enumerable:!0,get:function(){return _e.DeviceEventsTriggerConfiguration}}),Object.defineProperty(exports,"DeviceHistory",{enumerable:!0,get:function(){return er.DeviceHistory}}),Object.defineProperty(exports,"DeviceModelListener",{enumerable:!0,get:function(){return rr.DeviceModelListener}}),Object.defineProperty(exports,"DevicePairing",{enumerable:!0,get:function(){return tr.DevicePairing}}),Object.defineProperty(exports,"DevicePromotion",{enumerable:!0,get:function(){return nr.DevicePromotion}}),Object.defineProperty(exports,"DevicePropertyMapping",{enumerable:!0,get:function(){return ir.DevicePropertyMapping}}),Object.defineProperty(exports,"DeviceReplacement",{enumerable:!0,get:function(){return or.DeviceReplacement}}),Object.defineProperty(exports,"DeviceStatus",{enumerable:!0,get:function(){return ur.DeviceStatus}}),Object.defineProperty(exports,"DeviceTask",{enumerable:!0,get:function(){return ar.DeviceTask}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function(){return cr.DeviceType}}),Object.defineProperty(exports,"DeviceTypeFeature",{enumerable:!0,get:function(){return sr.DeviceTypeFeature}}),Object.defineProperty(exports,"DeviceTypeFirmware",{enumerable:!0,get:function(){return pr.DeviceTypeFirmware}}),Object.defineProperty(exports,"DeviceTypePromotion",{enumerable:!0,get:function(){return lr.DeviceTypePromotion}}),Object.defineProperty(exports,"EmailDomain",{enumerable:!0,get:function(){return fr.EmailDomain}}),Object.defineProperty(exports,"EntityTag",{enumerable:!0,get:function(){return mr.EntityTag}}),Object.defineProperty(exports,"EntityType",{enumerable:!0,get:function(){return br.EntityType}}),Object.defineProperty(exports,"EphemeralBoundary",{enumerable:!0,get:function(){return gr.EphemeralBoundary}}),Object.defineProperty(exports,"Feature",{enumerable:!0,get:function(){return jr.Feature}}),Object.defineProperty(exports,"FirmwareAutoUpgradeBlacklist",{enumerable:!0,get:function(){return dr.FirmwareAutoUpgradeBlacklist}}),Object.defineProperty(exports,"FirmwareUpgradeTask",{enumerable:!0,get:function(){return yr.FirmwareUpgradeTask}}),Object.defineProperty(exports,"HistoricalBillingPlan",{enumerable:!0,get:function(){return Pr.HistoricalBillingPlan}}),Object.defineProperty(exports,"IccidStatus",{enumerable:!0,get:function(){return xr.IccidStatus}}),Object.defineProperty(exports,"ImeiIccidCarrier",{enumerable:!0,get:function(){return Or.ImeiIccidCarrier}}),Object.defineProperty(exports,"ImeiIccidHistory",{enumerable:!0,get:function(){return qr.ImeiIccidHistory}}),Object.defineProperty(exports,"ImeiIccidImport",{enumerable:!0,get:function(){return vr.ImeiIccidImport}}),Object.defineProperty(exports,"Industry",{enumerable:!0,get:function(){return Cr.Industry}}),Object.defineProperty(exports,"IngestorProvider",{enumerable:!0,get:function(){return Ar.IngestorProvider}}),Object.defineProperty(exports,"Issue",{enumerable:!0,get:function(){return Sr.Issue}}),Object.defineProperty(exports,"IssueSuppressionRule",{enumerable:!0,get:function(){return Dr.IssueSuppressionRule}}),Object.defineProperty(exports,"IssueType",{enumerable:!0,get:function(){return Tr.IssueType}}),Object.defineProperty(exports,"JarvisWebGroupAccess",{enumerable:!0,get:function(){return Br.JarvisWebGroupAccess}}),Object.defineProperty(exports,"Job",{enumerable:!0,get:function(){return Rr.Job}}),Object.defineProperty(exports,"JobAttachment",{enumerable:!0,get:function(){return hr.JobAttachment}}),Object.defineProperty(exports,"JobCustomerLink",{enumerable:!0,get:function(){return Mr.JobCustomerLink}}),Object.defineProperty(exports,"JobCustomerPageSetting",{enumerable:!0,get:function(){return Ir.JobCustomerPageSetting}}),Object.defineProperty(exports,"LatestUserAppInfo",{enumerable:!0,get:function(){return kr.LatestUserAppInfo}}),Object.defineProperty(exports,"LiveLink",{enumerable:!0,get:function(){return Ur.LiveLink}}),Object.defineProperty(exports,"LiveLinkMedia",{enumerable:!0,get:function(){return Er.LiveLinkMedia}}),Object.defineProperty(exports,"M2Sync",{enumerable:!0,get:function(){return Fr.M2Sync}}),Object.defineProperty(exports,"Magento2Gps",{enumerable:!0,get:function(){return wr.Magento2Gps}}),Object.defineProperty(exports,"Magento2Plan",{enumerable:!0,get:function(){return Hr.Magento2Plan}}),Object.defineProperty(exports,"MarketplacePromotion",{enumerable:!0,get:function(){return Lr.MarketplacePromotion}}),Object.defineProperty(exports,"MobileNetwork",{enumerable:!0,get:function(){return zr.MobileNetwork}}),Object.defineProperty(exports,"NotificationRecipient",{enumerable:!0,get:function(){return Vr.NotificationRecipient}}),Object.defineProperty(exports,"OrderShipmentInternational",{enumerable:!0,get:function(){return Nr.OrderShipmentInternational}}),Object.defineProperty(exports,"Organization",{enumerable:!0,get:function(){return Jr.Organization}}),Object.defineProperty(exports,"PlaceCategory",{enumerable:!0,get:function(){return Gr.PlaceCategory}}),Object.defineProperty(exports,"PlaceType",{enumerable:!0,get:function(){return Kr.PlaceType}}),Object.defineProperty(exports,"Plan",{enumerable:!0,get:function(){return Wr.Plan}}),Object.defineProperty(exports,"Position",{enumerable:!0,get:function(){return Qr.Position}}),Object.defineProperty(exports,"Promotion",{enumerable:!0,get:function(){return Zr.Promotion}}),Object.defineProperty(exports,"PromotionHistory",{enumerable:!0,get:function(){return Xr.PromotionHistory}}),Object.defineProperty(exports,"Referral",{enumerable:!0,get:function(){return Yr.Referral}}),Object.defineProperty(exports,"ReferralCredit",{enumerable:!0,get:function(){return $r.ReferralCredit}}),Object.defineProperty(exports,"Referrer",{enumerable:!0,get:function(){return _r.Referrer}}),Object.defineProperty(exports,"Region",{enumerable:!0,get:function(){return et.Region}}),Object.defineProperty(exports,"ReportScheduleConfiguration",{enumerable:!0,get:function(){return rt.ReportScheduleConfiguration}}),Object.defineProperty(exports,"RetailAlert",{enumerable:!0,get:function(){return tt.RetailAlert}}),Object.defineProperty(exports,"RetailAlertExternalRecipient",{enumerable:!0,get:function(){return nt.RetailAlertExternalRecipient}}),Object.defineProperty(exports,"RetailAlertInternalRecipient",{enumerable:!0,get:function(){return it.RetailAlertInternalRecipient}}),Object.defineProperty(exports,"RetailAlertType",{enumerable:!0,get:function(){return ot.RetailAlertType}}),Object.defineProperty(exports,"RetailBleTag",{enumerable:!0,get:function(){return ut.RetailBleTag}}),Object.defineProperty(exports,"RetailClientAlertConfiguration",{enumerable:!0,get:function(){return at.RetailClientAlertConfiguration}}),Object.defineProperty(exports,"RetailDepartmentType",{enumerable:!0,get:function(){return ct.RetailDepartmentType}}),Object.defineProperty(exports,"RetailGateway",{enumerable:!0,get:function(){return st.RetailGateway}}),Object.defineProperty(exports,"RetailIncident",{enumerable:!0,get:function(){return pt.RetailIncident}}),Object.defineProperty(exports,"RetailItem",{enumerable:!0,get:function(){return lt.RetailItem}}),Object.defineProperty(exports,"RetailItemEvent",{enumerable:!0,get:function(){return ft.RetailItemEvent}}),Object.defineProperty(exports,"RetailProduct",{enumerable:!0,get:function(){return mt.RetailProduct}}),Object.defineProperty(exports,"RetailStore",{enumerable:!0,get:function(){return bt.RetailStore}}),Object.defineProperty(exports,"RetailTrainingSet",{enumerable:!0,get:function(){return gt.RetailTrainingSet}}),Object.defineProperty(exports,"RetailZone",{enumerable:!0,get:function(){return jt.RetailZone}}),Object.defineProperty(exports,"SavedView",{enumerable:!0,get:function(){return dt.SavedView}}),Object.defineProperty(exports,"SavedViewShare",{enumerable:!0,get:function(){return yt.SavedViewShare}}),Object.defineProperty(exports,"SecurityRole",{enumerable:!0,get:function(){return Pt.SecurityRole}}),Object.defineProperty(exports,"SensorConfig",{enumerable:!0,get:function(){return xt.SensorConfig}}),Object.defineProperty(exports,"ServiceProvider",{enumerable:!0,get:function(){return Ot.ServiceProvider}}),Object.defineProperty(exports,"ServiceProviderProduct",{enumerable:!0,get:function(){return qt.ServiceProviderProduct}}),Object.defineProperty(exports,"ServiceProviderProductNetwork",{enumerable:!0,get:function(){return vt.ServiceProviderProductNetwork}}),Object.defineProperty(exports,"ServiceProviderProductType",{enumerable:!0,get:function(){return Ct.ServiceProviderProductType}}),Object.defineProperty(exports,"Sim",{enumerable:!0,get:function(){return At.Sim}}),Object.defineProperty(exports,"SimConnectivityStatus",{enumerable:!0,get:function(){return St.SimConnectivityStatus}}),Object.defineProperty(exports,"SimMonthlyUsage",{enumerable:!0,get:function(){return Dt.SimMonthlyUsage}}),Object.defineProperty(exports,"SnapToRoadCache",{enumerable:!0,get:function(){return Tt.SnapToRoadCache}}),Object.defineProperty(exports,"StripeAddonMapping",{enumerable:!0,get:function(){return Bt.StripeAddonMapping}}),Object.defineProperty(exports,"StripeHardwareMapping",{enumerable:!0,get:function(){return Rt.StripeHardwareMapping}}),Object.defineProperty(exports,"StripePriceMapping",{enumerable:!0,get:function(){return ht.StripePriceMapping}}),Object.defineProperty(exports,"SupportConversation",{enumerable:!0,get:function(){return Mt.SupportConversation}}),Object.defineProperty(exports,"SupportConversationMessage",{enumerable:!0,get:function(){return It.SupportConversationMessage}}),Object.defineProperty(exports,"SupportInteractionTopic",{enumerable:!0,get:function(){return kt.SupportInteractionTopic}}),Object.defineProperty(exports,"SupportSyncState",{enumerable:!0,get:function(){return Ut.SupportSyncState}}),Object.defineProperty(exports,"SupportTicket",{enumerable:!0,get:function(){return Et.SupportTicket}}),Object.defineProperty(exports,"SupportTicketComment",{enumerable:!0,get:function(){return Ft.SupportTicketComment}}),Object.defineProperty(exports,"SupportTopic",{enumerable:!0,get:function(){return wt.SupportTopic}}),Object.defineProperty(exports,"Tag",{enumerable:!0,get:function(){return Ht.Tag}}),Object.defineProperty(exports,"Task",{enumerable:!0,get:function(){return Lt.Task}}),Object.defineProperty(exports,"TaskSchedule",{enumerable:!0,get:function(){return zt.TaskSchedule}}),Object.defineProperty(exports,"TicketManager",{enumerable:!0,get:function(){return Vt.TicketManager}}),Object.defineProperty(exports,"Trip",{enumerable:!0,get:function(){return Nt.Trip}}),Object.defineProperty(exports,"TripCompletionStatus",{enumerable:!0,get:function(){return Jt.TripCompletionStatus}}),Object.defineProperty(exports,"TripPosition",{enumerable:!0,get:function(){return Gt.TripPosition}}),Object.defineProperty(exports,"TripStatus",{enumerable:!0,get:function(){return Kt.TripStatus}}),Object.defineProperty(exports,"User",{enumerable:!0,get:function(){return Wt.User}}),Object.defineProperty(exports,"UserActivation",{enumerable:!0,get:function(){return Qt.UserActivation}}),Object.defineProperty(exports,"UserActivationDevice",{enumerable:!0,get:function(){return Zt.UserActivationDevice}}),Object.defineProperty(exports,"UserActivationEvent",{enumerable:!0,get:function(){return Xt.UserActivationEvent}}),Object.defineProperty(exports,"UserActivationMetric",{enumerable:!0,get:function(){return Yt.UserActivationMetric}}),Object.defineProperty(exports,"UserAlertComplain",{enumerable:!0,get:function(){return $t.UserAlertComplain}}),Object.defineProperty(exports,"UserAlertConfiguration",{enumerable:!0,get:function(){return _t.UserAlertConfiguration}}),Object.defineProperty(exports,"UserAlertNotificationsConfig",{enumerable:!0,get:function(){return en.UserAlertNotificationsConfig}}),Object.defineProperty(exports,"UserAppFeedback",{enumerable:!0,get:function(){return rn.UserAppFeedback}}),Object.defineProperty(exports,"UserAppIncident",{enumerable:!0,get:function(){return tn.UserAppIncident}}),Object.defineProperty(exports,"UserAuthorizedBoundary",{enumerable:!0,get:function(){return nn.UserAuthorizedBoundary}}),Object.defineProperty(exports,"UserAuthorizedBoundarySecurityView",{enumerable:!0,get:function(){return on.UserAuthorizedBoundarySecurityView}}),Object.defineProperty(exports,"UserAuthorizedBoundarySecurityViewV2",{enumerable:!0,get:function(){return on.UserAuthorizedBoundarySecurityView}}),Object.defineProperty(exports,"UserAuthorizedDevice",{enumerable:!0,get:function(){return un.UserAuthorizedDevice}}),Object.defineProperty(exports,"UserAuthorizedDeviceSecurityView",{enumerable:!0,get:function(){return an.UserAuthorizedDeviceSecurityView}}),Object.defineProperty(exports,"UserAuthorizedDeviceSecurityViewV2",{enumerable:!0,get:function(){return an.UserAuthorizedDeviceSecurityView}}),Object.defineProperty(exports,"UserCancellationDueDevice",{enumerable:!0,get:function(){return cn.UserCancellationDueDevice}}),Object.defineProperty(exports,"UserCarrierDeactivateDevice",{enumerable:!0,get:function(){return sn.UserCarrierDeactivateDevice}}),Object.defineProperty(exports,"UserCarrierReactivateDevice",{enumerable:!0,get:function(){return pn.UserCarrierReactivateDevice}}),Object.defineProperty(exports,"UserConfiguration",{enumerable:!0,get:function(){return ln.UserConfiguration}}),Object.defineProperty(exports,"UserDataDeletionRequest",{enumerable:!0,get:function(){return fn.UserDataDeletionRequest}}),Object.defineProperty(exports,"UserDeviceBehaviorTask",{enumerable:!0,get:function(){return mn.UserDeviceBehaviorTask}}),Object.defineProperty(exports,"UserFreeOfferDevice",{enumerable:!0,get:function(){return bn.UserFreeOfferDevice}}),Object.defineProperty(exports,"UserInvitation",{enumerable:!0,get:function(){return gn.UserInvitation}}),Object.defineProperty(exports,"UserRegistrationAttempt",{enumerable:!0,get:function(){return jn.UserRegistrationAttempt}}),Object.defineProperty(exports,"UserSecurityRole",{enumerable:!0,get:function(){return dn.UserSecurityRole}}),Object.defineProperty(exports,"WebsocketConnection",{enumerable:!0,get:function(){return yn.WebsocketConnection}}),Object.defineProperty(exports,"CustomerAttribute",{enumerable:!0,get:function(){return Pn.CustomerAttribute}});
@@ -50,7 +50,7 @@ export interface JobTimelineEvent {
50
50
  id: string;
51
51
  title: string;
52
52
  time: string;
53
- kind?: 'now' | 'alert' | 'info';
53
+ kind?: 'now' | 'alert' | 'info' | 'customer_note';
54
54
  }
55
55
  /**
56
56
  * Const value namespace for {@link JobLifecycle}. Use these instead of inline
@@ -109,6 +109,8 @@ export declare class Job {
109
109
  imei: string;
110
110
  name: string;
111
111
  reference: string | null;
112
+ /** Customer's mobile number (E.164) — the editable "current" number; each customer link snapshots its own. */
113
+ customerPhone: string | null;
112
114
  lifecycle: JobLifecycle;
113
115
  healthSignals: JobHealthSignal[] | null;
114
116
  proofState: JobProofState;
@@ -138,6 +140,8 @@ export declare class Job {
138
140
  etaDriveSeconds: number | null;
139
141
  etaDistanceMeters: number | null;
140
142
  originalEtaDriveSeconds: number | null;
143
+ /** Per-job override of the account-level customer-page ETA window buffer. */
144
+ etaWindowBufferMinutes: number | null;
141
145
  rules: JobRule[] | null;
142
146
  timeline: JobTimelineEvent[] | null;
143
147
  recipients: JobRecipients | null;
@@ -1 +1 @@
1
- "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),a=require("../utils/uuidTransformer.js");const o={Upcoming:"Upcoming",AwaitingUpdate:"AwaitingUpdate",AtOrigin:"AtOrigin",InProgress:"InProgress",Arriving:"Arriving",Arrived:"Arrived",Complete:"Complete",Cancelled:"Cancelled"},r=new Set([o.Upcoming,o.AwaitingUpdate,o.AtOrigin,o.InProgress,o.Arriving,o.Arrived]);exports.Job=class Job{id;clientId;imei;name;reference;lifecycle;healthSignals;proofState;outcome;startLat;startLng;startLabel;startDetail;startRadiusM;endLat;endLng;endLabel;endDetail;endRadiusM;scheduledStart;targetArrival;startedAt;firstObservedAt;arrivedAt;completedAt;cancelledAt;pingsInEndZone;lastPositionAt;lastEvaluatedAt;etaArrivalAt;etaUpdatedAt;etaDriveSeconds;etaDistanceMeters;originalEtaDriveSeconds;rules;timeline;recipients;liveLinkToken;showAttachmentsOnLiveLink;priorMovingFrequency;priorStoppedFrequency;createdBy;createdAt;modifiedBy;modifiedAt;deletedAt;deletedBy},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Job.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.Job.prototype,"clientId",void 0),e.__decorate([t.Column("varchar",{name:"imei",length:15}),e.__metadata("design:type",String)],exports.Job.prototype,"imei",void 0),e.__decorate([t.Column("varchar",{name:"name",length:255}),e.__metadata("design:type",String)],exports.Job.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"reference",length:255,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"reference",void 0),e.__decorate([t.Column("varchar",{name:"lifecycle",length:20,default:"Upcoming"}),e.__metadata("design:type",String)],exports.Job.prototype,"lifecycle",void 0),e.__decorate([t.Column("json",{name:"healthSignals",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"healthSignals",void 0),e.__decorate([t.Column("varchar",{name:"proofState",length:20,default:"NotArrived"}),e.__metadata("design:type",String)],exports.Job.prototype,"proofState",void 0),e.__decorate([t.Column("varchar",{name:"outcome",length:10,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"outcome",void 0),e.__decorate([t.Column("double",{name:"startLat",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"startLat",void 0),e.__decorate([t.Column("double",{name:"startLng",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"startLng",void 0),e.__decorate([t.Column("varchar",{name:"startLabel",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"startLabel",void 0),e.__decorate([t.Column("varchar",{name:"startDetail",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"startDetail",void 0),e.__decorate([t.Column("int",{name:"startRadiusM",default:150}),e.__metadata("design:type",Number)],exports.Job.prototype,"startRadiusM",void 0),e.__decorate([t.Column("double",{name:"endLat",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"endLat",void 0),e.__decorate([t.Column("double",{name:"endLng",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"endLng",void 0),e.__decorate([t.Column("varchar",{name:"endLabel",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"endLabel",void 0),e.__decorate([t.Column("varchar",{name:"endDetail",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"endDetail",void 0),e.__decorate([t.Column("int",{name:"endRadiusM",default:150}),e.__metadata("design:type",Number)],exports.Job.prototype,"endRadiusM",void 0),e.__decorate([t.Column("datetime",{name:"scheduledStart",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"scheduledStart",void 0),e.__decorate([t.Column("datetime",{name:"targetArrival",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"targetArrival",void 0),e.__decorate([t.Column("datetime",{name:"startedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"startedAt",void 0),e.__decorate([t.Column("datetime",{name:"firstObservedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"firstObservedAt",void 0),e.__decorate([t.Column("datetime",{name:"arrivedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"arrivedAt",void 0),e.__decorate([t.Column("datetime",{name:"completedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"completedAt",void 0),e.__decorate([t.Column("datetime",{name:"cancelledAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"cancelledAt",void 0),e.__decorate([t.Column("int",{name:"pingsInEndZone",default:0}),e.__metadata("design:type",Number)],exports.Job.prototype,"pingsInEndZone",void 0),e.__decorate([t.Column("datetime",{name:"lastPositionAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"lastPositionAt",void 0),e.__decorate([t.Column("datetime",{name:"lastEvaluatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"lastEvaluatedAt",void 0),e.__decorate([t.Column("datetime",{name:"etaArrivalAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"etaArrivalAt",void 0),e.__decorate([t.Column("datetime",{name:"etaUpdatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"etaUpdatedAt",void 0),e.__decorate([t.Column("int",{name:"etaDriveSeconds",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"etaDriveSeconds",void 0),e.__decorate([t.Column("int",{name:"etaDistanceMeters",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"etaDistanceMeters",void 0),e.__decorate([t.Column("int",{name:"originalEtaDriveSeconds",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"originalEtaDriveSeconds",void 0),e.__decorate([t.Column("json",{name:"rules",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"rules",void 0),e.__decorate([t.Column("json",{name:"timeline",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"timeline",void 0),e.__decorate([t.Column("json",{name:"recipients",nullable:!0}),e.__metadata("design:type",Object)],exports.Job.prototype,"recipients",void 0),e.__decorate([t.Column("binary",{name:"liveLinkToken",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"liveLinkToken",void 0),e.__decorate([t.Column("tinyint",{name:"showAttachmentsOnLiveLink",default:0,width:1}),e.__metadata("design:type",Boolean)],exports.Job.prototype,"showAttachmentsOnLiveLink",void 0),e.__decorate([t.Column("int",{name:"priorMovingFrequency",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"priorMovingFrequency",void 0),e.__decorate([t.Column("int",{name:"priorStoppedFrequency",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"priorStoppedFrequency",void 0),e.__decorate([t.Column("binary",{name:"createdBy",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"createdBy",void 0),e.__decorate([t.CreateDateColumn({name:"createdAt"}),e.__metadata("design:type",Date)],exports.Job.prototype,"createdAt",void 0),e.__decorate([t.Column("binary",{name:"modifiedBy",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"modifiedBy",void 0),e.__decorate([t.UpdateDateColumn({name:"modifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"modifiedAt",void 0),e.__decorate([t.DeleteDateColumn({name:"deletedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"deletedAt",void 0),e.__decorate([t.Column("binary",{name:"deletedBy",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"deletedBy",void 0),exports.Job=e.__decorate([t.Index("ixJobClientIdLifecycle",["clientId","lifecycle"],{}),t.Index("ixJobImeiLifecycle",["imei","lifecycle"],{}),t.Index("ixJobClientIdCreatedBy",["clientId","createdBy"],{}),t.Index("uxJobLiveLinkToken",["liveLinkToken"],{unique:!0}),t.Entity("job",{schema:"nova"})],exports.Job),exports.ACTIVE_JOB_LIFECYCLES=r,exports.JobHealthSignalValue={OnTrack:"OnTrack",Delayed:"Delayed",DelayedStart:"DelayedStart",NotReporting:"NotReporting",RuleViolation:"RuleViolation",LowBattery:"LowBattery"},exports.JobLifecycleValue=o,exports.JobOutcomeValue={OnTime:"on_time",Late:"late",Early:"early"},exports.JobProofStateValue={NotArrived:"NotArrived",FirstObserved:"FirstObserved",ArrivalConfirmed:"ArrivalConfirmed",Unknown:"Unknown"},exports.JobRuleKindValue={Stop:"stop",Zone:"zone",Eta:"eta",Window:"window",Speed:"speed",Deviation:"deviation"};
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),a=require("../utils/uuidTransformer.js");const o={Upcoming:"Upcoming",AwaitingUpdate:"AwaitingUpdate",AtOrigin:"AtOrigin",InProgress:"InProgress",Arriving:"Arriving",Arrived:"Arrived",Complete:"Complete",Cancelled:"Cancelled"},r=new Set([o.Upcoming,o.AwaitingUpdate,o.AtOrigin,o.InProgress,o.Arriving,o.Arrived]);exports.Job=class Job{id;clientId;imei;name;reference;customerPhone;lifecycle;healthSignals;proofState;outcome;startLat;startLng;startLabel;startDetail;startRadiusM;endLat;endLng;endLabel;endDetail;endRadiusM;scheduledStart;targetArrival;startedAt;firstObservedAt;arrivedAt;completedAt;cancelledAt;pingsInEndZone;lastPositionAt;lastEvaluatedAt;etaArrivalAt;etaUpdatedAt;etaDriveSeconds;etaDistanceMeters;originalEtaDriveSeconds;etaWindowBufferMinutes;rules;timeline;recipients;liveLinkToken;showAttachmentsOnLiveLink;priorMovingFrequency;priorStoppedFrequency;createdBy;createdAt;modifiedBy;modifiedAt;deletedAt;deletedBy},e.__decorate([t.PrimaryGeneratedColumn({type:"int",name:"id"}),e.__metadata("design:type",Number)],exports.Job.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.Job.prototype,"clientId",void 0),e.__decorate([t.Column("varchar",{name:"imei",length:15}),e.__metadata("design:type",String)],exports.Job.prototype,"imei",void 0),e.__decorate([t.Column("varchar",{name:"name",length:255}),e.__metadata("design:type",String)],exports.Job.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"reference",length:255,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"reference",void 0),e.__decorate([t.Column("varchar",{name:"customerPhone",length:20,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"customerPhone",void 0),e.__decorate([t.Column("varchar",{name:"lifecycle",length:20,default:"Upcoming"}),e.__metadata("design:type",String)],exports.Job.prototype,"lifecycle",void 0),e.__decorate([t.Column("json",{name:"healthSignals",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"healthSignals",void 0),e.__decorate([t.Column("varchar",{name:"proofState",length:20,default:"NotArrived"}),e.__metadata("design:type",String)],exports.Job.prototype,"proofState",void 0),e.__decorate([t.Column("varchar",{name:"outcome",length:10,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"outcome",void 0),e.__decorate([t.Column("double",{name:"startLat",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"startLat",void 0),e.__decorate([t.Column("double",{name:"startLng",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"startLng",void 0),e.__decorate([t.Column("varchar",{name:"startLabel",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"startLabel",void 0),e.__decorate([t.Column("varchar",{name:"startDetail",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"startDetail",void 0),e.__decorate([t.Column("int",{name:"startRadiusM",default:150}),e.__metadata("design:type",Number)],exports.Job.prototype,"startRadiusM",void 0),e.__decorate([t.Column("double",{name:"endLat",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"endLat",void 0),e.__decorate([t.Column("double",{name:"endLng",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"endLng",void 0),e.__decorate([t.Column("varchar",{name:"endLabel",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"endLabel",void 0),e.__decorate([t.Column("varchar",{name:"endDetail",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.Job.prototype,"endDetail",void 0),e.__decorate([t.Column("int",{name:"endRadiusM",default:150}),e.__metadata("design:type",Number)],exports.Job.prototype,"endRadiusM",void 0),e.__decorate([t.Column("datetime",{name:"scheduledStart",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"scheduledStart",void 0),e.__decorate([t.Column("datetime",{name:"targetArrival",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"targetArrival",void 0),e.__decorate([t.Column("datetime",{name:"startedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"startedAt",void 0),e.__decorate([t.Column("datetime",{name:"firstObservedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"firstObservedAt",void 0),e.__decorate([t.Column("datetime",{name:"arrivedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"arrivedAt",void 0),e.__decorate([t.Column("datetime",{name:"completedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"completedAt",void 0),e.__decorate([t.Column("datetime",{name:"cancelledAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"cancelledAt",void 0),e.__decorate([t.Column("int",{name:"pingsInEndZone",default:0}),e.__metadata("design:type",Number)],exports.Job.prototype,"pingsInEndZone",void 0),e.__decorate([t.Column("datetime",{name:"lastPositionAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"lastPositionAt",void 0),e.__decorate([t.Column("datetime",{name:"lastEvaluatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"lastEvaluatedAt",void 0),e.__decorate([t.Column("datetime",{name:"etaArrivalAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"etaArrivalAt",void 0),e.__decorate([t.Column("datetime",{name:"etaUpdatedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"etaUpdatedAt",void 0),e.__decorate([t.Column("int",{name:"etaDriveSeconds",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"etaDriveSeconds",void 0),e.__decorate([t.Column("int",{name:"etaDistanceMeters",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"etaDistanceMeters",void 0),e.__decorate([t.Column("int",{name:"originalEtaDriveSeconds",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"originalEtaDriveSeconds",void 0),e.__decorate([t.Column("int",{name:"etaWindowBufferMinutes",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"etaWindowBufferMinutes",void 0),e.__decorate([t.Column("json",{name:"rules",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"rules",void 0),e.__decorate([t.Column("json",{name:"timeline",nullable:!0}),e.__metadata("design:type",Array)],exports.Job.prototype,"timeline",void 0),e.__decorate([t.Column("json",{name:"recipients",nullable:!0}),e.__metadata("design:type",Object)],exports.Job.prototype,"recipients",void 0),e.__decorate([t.Column("binary",{name:"liveLinkToken",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"liveLinkToken",void 0),e.__decorate([t.Column("tinyint",{name:"showAttachmentsOnLiveLink",default:0,width:1}),e.__metadata("design:type",Boolean)],exports.Job.prototype,"showAttachmentsOnLiveLink",void 0),e.__decorate([t.Column("int",{name:"priorMovingFrequency",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"priorMovingFrequency",void 0),e.__decorate([t.Column("int",{name:"priorStoppedFrequency",nullable:!0}),e.__metadata("design:type",Number)],exports.Job.prototype,"priorStoppedFrequency",void 0),e.__decorate([t.Column("binary",{name:"createdBy",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"createdBy",void 0),e.__decorate([t.CreateDateColumn({name:"createdAt"}),e.__metadata("design:type",Date)],exports.Job.prototype,"createdAt",void 0),e.__decorate([t.Column("binary",{name:"modifiedBy",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"modifiedBy",void 0),e.__decorate([t.UpdateDateColumn({name:"modifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"modifiedAt",void 0),e.__decorate([t.DeleteDateColumn({name:"deletedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.Job.prototype,"deletedAt",void 0),e.__decorate([t.Column("binary",{name:"deletedBy",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.Job.prototype,"deletedBy",void 0),exports.Job=e.__decorate([t.Index("ixJobClientIdLifecycle",["clientId","lifecycle"],{}),t.Index("ixJobImeiLifecycle",["imei","lifecycle"],{}),t.Index("ixJobClientIdCreatedBy",["clientId","createdBy"],{}),t.Index("uxJobLiveLinkToken",["liveLinkToken"],{unique:!0}),t.Entity("job",{schema:"nova"})],exports.Job),exports.ACTIVE_JOB_LIFECYCLES=r,exports.JobHealthSignalValue={OnTrack:"OnTrack",Delayed:"Delayed",DelayedStart:"DelayedStart",NotReporting:"NotReporting",RuleViolation:"RuleViolation",LowBattery:"LowBattery"},exports.JobLifecycleValue=o,exports.JobOutcomeValue={OnTime:"on_time",Late:"late",Early:"early"},exports.JobProofStateValue={NotArrived:"NotArrived",FirstObserved:"FirstObserved",ArrivalConfirmed:"ArrivalConfirmed",Unknown:"Unknown"},exports.JobRuleKindValue={Stop:"stop",Zone:"zone",Eta:"eta",Window:"window",Speed:"speed",Deviation:"deviation"};
@@ -0,0 +1,42 @@
1
+ export type JobCustomerLinkStatus = 'active' | 'revoked' | 'superseded';
2
+ /** Const value namespace for {@link JobCustomerLinkStatus}. */
3
+ export declare const JobCustomerLinkStatusValue: {
4
+ readonly Active: "active";
5
+ readonly Revoked: "revoked";
6
+ readonly Superseded: "superseded";
7
+ };
8
+ export type JobCustomerLinkDeliveryStatus = 'queued' | 'sent' | 'delivered' | 'failed' | 'undelivered';
9
+ /** Const value namespace for {@link JobCustomerLinkDeliveryStatus}. */
10
+ export declare const JobCustomerLinkDeliveryStatusValue: {
11
+ readonly Queued: "queued";
12
+ readonly Sent: "sent";
13
+ readonly Delivered: "delivered";
14
+ readonly Failed: "failed";
15
+ readonly Undelivered: "undelivered";
16
+ };
17
+ export declare class JobCustomerLink {
18
+ /** The row id doubles as the public bearer token. */
19
+ id: string;
20
+ clientId: number;
21
+ jobId: number;
22
+ status: JobCustomerLinkStatus;
23
+ /** Immutable snapshot of the number the link was sent to (E.164). */
24
+ phoneNumber: string;
25
+ sentAt: Date | null;
26
+ lastSentAt: Date | null;
27
+ sendCount: number;
28
+ deliveryStatus: JobCustomerLinkDeliveryStatus | null;
29
+ deliveryStatusAt: Date | null;
30
+ openedAt: Date | null;
31
+ lastOpenedAt: Date | null;
32
+ openCount: number;
33
+ revokedAt: Date | null;
34
+ revokedBy: string | null;
35
+ /** Once-per-link cadence latches for the approach / arrived SMS. */
36
+ approachSmsSentAt: Date | null;
37
+ arrivedSmsSentAt: Date | null;
38
+ createdBy: string;
39
+ createdAt: Date;
40
+ modifiedAt: Date | null;
41
+ generateDefaults(): void;
42
+ }
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("uuid"),a=require("../utils/uuidTransformer.js");exports.JobCustomerLink=class JobCustomerLink{id;clientId;jobId;status;phoneNumber;sentAt;lastSentAt;sendCount;deliveryStatus;deliveryStatusAt;openedAt;lastOpenedAt;openCount;revokedAt;revokedBy;approachSmsSentAt;arrivedSmsSentAt;createdBy;createdAt;modifiedAt;generateDefaults(){this.id||(this.id=o.v4())}},e.__decorate([t.Column("binary",{primary:!0,name:"id",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.JobCustomerLink.prototype,"clientId",void 0),e.__decorate([t.Column("int",{name:"jobId"}),e.__metadata("design:type",Number)],exports.JobCustomerLink.prototype,"jobId",void 0),e.__decorate([t.Column("varchar",{name:"status",length:12,default:()=>"'active'"}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"status",void 0),e.__decorate([t.Column("varchar",{name:"phoneNumber",length:20}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"phoneNumber",void 0),e.__decorate([t.Column("datetime",{name:"sentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"sentAt",void 0),e.__decorate([t.Column("datetime",{name:"lastSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"lastSentAt",void 0),e.__decorate([t.Column("int",{name:"sendCount",default:0}),e.__metadata("design:type",Number)],exports.JobCustomerLink.prototype,"sendCount",void 0),e.__decorate([t.Column("varchar",{name:"deliveryStatus",length:12,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"deliveryStatus",void 0),e.__decorate([t.Column("datetime",{name:"deliveryStatusAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"deliveryStatusAt",void 0),e.__decorate([t.Column("datetime",{name:"openedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"openedAt",void 0),e.__decorate([t.Column("datetime",{name:"lastOpenedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"lastOpenedAt",void 0),e.__decorate([t.Column("int",{name:"openCount",default:0}),e.__metadata("design:type",Number)],exports.JobCustomerLink.prototype,"openCount",void 0),e.__decorate([t.Column("datetime",{name:"revokedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"revokedAt",void 0),e.__decorate([t.Column("binary",{name:"revokedBy",length:16,nullable:!0,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"revokedBy",void 0),e.__decorate([t.Column("datetime",{name:"approachSmsSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"approachSmsSentAt",void 0),e.__decorate([t.Column("datetime",{name:"arrivedSmsSentAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"arrivedSmsSentAt",void 0),e.__decorate([t.Column("binary",{name:"createdBy",length:16,transformer:a.UUIDTransformer}),e.__metadata("design:type",String)],exports.JobCustomerLink.prototype,"createdBy",void 0),e.__decorate([t.CreateDateColumn({name:"createdAt"}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"createdAt",void 0),e.__decorate([t.UpdateDateColumn({name:"modifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerLink.prototype,"modifiedAt",void 0),e.__decorate([t.BeforeInsert(),e.__metadata("design:type",Function),e.__metadata("design:paramtypes",[]),e.__metadata("design:returntype",void 0)],exports.JobCustomerLink.prototype,"generateDefaults",null),exports.JobCustomerLink=e.__decorate([t.Index("ixJobCustomerLinkClientId",["clientId"],{}),t.Index("ixJobCustomerLinkJobIdStatus",["jobId","status"],{}),t.Index("ixJobCustomerLinkPhoneNumberStatus",["phoneNumber","status"],{}),t.Entity("jobCustomerLink",{schema:"nova"})],exports.JobCustomerLink),exports.JobCustomerLinkDeliveryStatusValue={Queued:"queued",Sent:"sent",Delivered:"delivered",Failed:"failed",Undelivered:"undelivered"},exports.JobCustomerLinkStatusValue={Active:"active",Revoked:"revoked",Superseded:"superseded"};
@@ -0,0 +1,43 @@
1
+ export interface CustomerPageSendDefaults {
2
+ etaWindowPercent?: number;
3
+ etaWindowMinMinutes?: number;
4
+ bufferMinutes?: number;
5
+ numberConfirmEnabled?: boolean;
6
+ longStopNudgeEnabled?: boolean;
7
+ longStopNudgeMinutes?: number;
8
+ }
9
+ export interface CustomerPageDefaultJobRules {
10
+ runningLate?: {
11
+ enabled: boolean;
12
+ minutes?: number;
13
+ };
14
+ runningLong?: {
15
+ enabled: boolean;
16
+ hours?: number;
17
+ };
18
+ idling?: {
19
+ enabled: boolean;
20
+ minutes?: number;
21
+ };
22
+ notReporting?: {
23
+ enabled: boolean;
24
+ };
25
+ jobFinished?: {
26
+ enabled: boolean;
27
+ };
28
+ }
29
+ export declare class JobCustomerPageSetting {
30
+ clientId: number;
31
+ displayName: string | null;
32
+ businessPhone: string | null;
33
+ logoFileName: string | null;
34
+ logoS3FilesPath: string | null;
35
+ brandColor: string | null;
36
+ reviewUrl: string | null;
37
+ paymentUrl: string | null;
38
+ sendDefaults: CustomerPageSendDefaults | null;
39
+ defaultJobRules: CustomerPageDefaultJobRules | null;
40
+ createdAt: Date;
41
+ modifiedAt: Date | null;
42
+ modifiedBy: string | null;
43
+ }
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("../utils/uuidTransformer.js");exports.JobCustomerPageSetting=class JobCustomerPageSetting{clientId;displayName;businessPhone;logoFileName;logoS3FilesPath;brandColor;reviewUrl;paymentUrl;sendDefaults;defaultJobRules;createdAt;modifiedAt;modifiedBy},e.__decorate([t.Column("int",{primary:!0,name:"clientId"}),e.__metadata("design:type",Number)],exports.JobCustomerPageSetting.prototype,"clientId",void 0),e.__decorate([t.Column("varchar",{name:"displayName",length:255,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"displayName",void 0),e.__decorate([t.Column("varchar",{name:"businessPhone",length:20,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"businessPhone",void 0),e.__decorate([t.Column("varchar",{name:"logoFileName",length:255,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"logoFileName",void 0),e.__decorate([t.Column("varchar",{name:"logoS3FilesPath",length:255,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"logoS3FilesPath",void 0),e.__decorate([t.Column("char",{name:"brandColor",length:7,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"brandColor",void 0),e.__decorate([t.Column("varchar",{name:"reviewUrl",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"reviewUrl",void 0),e.__decorate([t.Column("varchar",{name:"paymentUrl",length:500,nullable:!0}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"paymentUrl",void 0),e.__decorate([t.Column("json",{name:"sendDefaults",nullable:!0}),e.__metadata("design:type",Object)],exports.JobCustomerPageSetting.prototype,"sendDefaults",void 0),e.__decorate([t.Column("json",{name:"defaultJobRules",nullable:!0}),e.__metadata("design:type",Object)],exports.JobCustomerPageSetting.prototype,"defaultJobRules",void 0),e.__decorate([t.CreateDateColumn({name:"createdAt"}),e.__metadata("design:type",Date)],exports.JobCustomerPageSetting.prototype,"createdAt",void 0),e.__decorate([t.UpdateDateColumn({name:"modifiedAt",nullable:!0}),e.__metadata("design:type",Date)],exports.JobCustomerPageSetting.prototype,"modifiedAt",void 0),e.__decorate([t.Column("binary",{name:"modifiedBy",length:16,nullable:!0,transformer:o.UUIDTransformer}),e.__metadata("design:type",String)],exports.JobCustomerPageSetting.prototype,"modifiedBy",void 0),exports.JobCustomerPageSetting=e.__decorate([t.Entity("jobCustomerPageSetting",{schema:"nova"})],exports.JobCustomerPageSetting);
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ import { Repository } from 'typeorm';
2
2
  import * as Cache from './cache';
3
3
  import * as Entities from './entities';
4
4
  import { ACTIVE_JOB_LIFECYCLES, type JobHealthSignal, JobHealthSignalValue, type JobLifecycle, JobLifecycleValue, type JobOutcome, JobOutcomeValue, type JobProofState, JobProofStateValue, type JobRecipientChannels, type JobRecipients, type JobRule, type JobRuleKind, JobRuleKindValue, type JobTimelineEvent } from './entities/job';
5
+ import { type JobCustomerLinkDeliveryStatus, JobCustomerLinkDeliveryStatusValue, type JobCustomerLinkStatus, JobCustomerLinkStatusValue } from './entities/jobCustomerLink';
6
+ import { type CustomerPageDefaultJobRules, type CustomerPageSendDefaults } from './entities/jobCustomerPageSetting';
5
7
  import { NovaDataSource, NovaDataSourceConfig } from './novaDataSource';
6
8
  import { syncSchemaFromDump, SyncSchemaFromDumpConfig } from './syncSchemaFromDump';
7
9
  import * as Types from './types';
@@ -26,4 +28,4 @@ declare const Utils: {
26
28
  addMonthsToNow: (months: number) => Date;
27
29
  mapRawEntityToEntity: <T>(rawEntity: any, columnsPrefix?: string) => T;
28
30
  };
29
- export { ACTIVE_JOB_LIFECYCLES, Cache, ConsoleLogger, Entities, Enums, JobHealthSignal, JobHealthSignalValue, JobLifecycle, JobLifecycleValue, JobOutcome, JobOutcomeValue, JobProofState, JobProofStateValue, JobRecipientChannels, JobRecipients, JobRule, JobRuleKind, JobRuleKindValue, JobTimelineEvent, NovaDataSource, NovaDataSourceConfig, queryTags, Repository, syncSchemaFromDump, SyncSchemaFromDumpConfig, Types, Utils, };
31
+ export { ACTIVE_JOB_LIFECYCLES, Cache, ConsoleLogger, CustomerPageDefaultJobRules, CustomerPageSendDefaults, Entities, Enums, JobCustomerLinkDeliveryStatus, JobCustomerLinkDeliveryStatusValue, JobCustomerLinkStatus, JobCustomerLinkStatusValue, JobHealthSignal, JobHealthSignalValue, JobLifecycle, JobLifecycleValue, JobOutcome, JobOutcomeValue, JobProofState, JobProofStateValue, JobRecipientChannels, JobRecipients, JobRule, JobRuleKind, JobRuleKindValue, JobTimelineEvent, NovaDataSource, NovaDataSourceConfig, queryTags, Repository, syncSchemaFromDump, SyncSchemaFromDumpConfig, Types, Utils, };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("typeorm"),t=require("./cache/index.js"),r=require("./entities/index.js"),o=require("./entities/job.js"),a=require("./novaDataSource.js"),s=require("./syncSchemaFromDump.js"),i=require("./types/index.js"),u=require("./types/enums.js"),n=require("./utils/consoleLogger.js"),l=require("./utils/dateTool.js"),y=require("./utils/mapRawEntityToEntity.js"),g=require("./utils/paramsValidators.js"),m=require("./utils/parsingTools.js"),p=require("./utils/queryTags.js"),d=require("./utils/randomizer.js"),c=require("./utils/uuidHelpers.js");const b={uuidStringToBinaryBuffer:c.uuidStringToBinaryBuffer,binaryBufferToUuidString:c.binaryBufferToUuidString,getRandomBoolean:d.getRandomBoolean,getRandomImei:d.getRandomImei,getRandomDateInRange:d.getRandomDateInRange,getRandomInteger:d.getRandomInteger,getRandomString:d.getRandomString,tryParseBoolean:m.tryParseBoolean,tryParseDate:m.tryParseDate,tryParseFloat:m.tryParseFloat,allAttributesAreNull:g.allAttributesAreNull,anyAttributeInArrayIsNull:g.anyAttributeInArrayIsNull,anyAttributeIsNull:g.anyAttributeIsNull,now:l.now,addMonthsToNow:l.addMonthsToNow,mapRawEntityToEntity:y.mapRawEntityToEntity};Object.defineProperty(exports,"Repository",{enumerable:!0,get:function(){return e.Repository}}),exports.Cache=t,exports.Entities=r,exports.ACTIVE_JOB_LIFECYCLES=o.ACTIVE_JOB_LIFECYCLES,exports.JobHealthSignalValue=o.JobHealthSignalValue,exports.JobLifecycleValue=o.JobLifecycleValue,exports.JobOutcomeValue=o.JobOutcomeValue,exports.JobProofStateValue=o.JobProofStateValue,exports.JobRuleKindValue=o.JobRuleKindValue,exports.NovaDataSource=a.NovaDataSource,exports.syncSchemaFromDump=s.syncSchemaFromDump,exports.Types=i,exports.Enums=u,exports.ConsoleLogger=n.ConsoleLogger,exports.queryTags=p.queryTags,exports.Utils=b;
1
+ "use strict";var e=require("typeorm"),t=require("./cache/index.js"),r=require("./entities/index.js"),o=require("./entities/job.js"),a=require("./entities/jobCustomerLink.js"),s=require("./novaDataSource.js"),u=require("./syncSchemaFromDump.js"),i=require("./types/index.js"),n=require("./types/enums.js"),l=require("./utils/consoleLogger.js"),y=require("./utils/dateTool.js"),m=require("./utils/mapRawEntityToEntity.js"),p=require("./utils/paramsValidators.js"),g=require("./utils/parsingTools.js"),d=require("./utils/queryTags.js"),b=require("./utils/randomizer.js"),c=require("./utils/uuidHelpers.js");const S={uuidStringToBinaryBuffer:c.uuidStringToBinaryBuffer,binaryBufferToUuidString:c.binaryBufferToUuidString,getRandomBoolean:b.getRandomBoolean,getRandomImei:b.getRandomImei,getRandomDateInRange:b.getRandomDateInRange,getRandomInteger:b.getRandomInteger,getRandomString:b.getRandomString,tryParseBoolean:g.tryParseBoolean,tryParseDate:g.tryParseDate,tryParseFloat:g.tryParseFloat,allAttributesAreNull:p.allAttributesAreNull,anyAttributeInArrayIsNull:p.anyAttributeInArrayIsNull,anyAttributeIsNull:p.anyAttributeIsNull,now:y.now,addMonthsToNow:y.addMonthsToNow,mapRawEntityToEntity:m.mapRawEntityToEntity};Object.defineProperty(exports,"Repository",{enumerable:!0,get:function(){return e.Repository}}),exports.Cache=t,exports.Entities=r,exports.ACTIVE_JOB_LIFECYCLES=o.ACTIVE_JOB_LIFECYCLES,exports.JobHealthSignalValue=o.JobHealthSignalValue,exports.JobLifecycleValue=o.JobLifecycleValue,exports.JobOutcomeValue=o.JobOutcomeValue,exports.JobProofStateValue=o.JobProofStateValue,exports.JobRuleKindValue=o.JobRuleKindValue,exports.JobCustomerLinkDeliveryStatusValue=a.JobCustomerLinkDeliveryStatusValue,exports.JobCustomerLinkStatusValue=a.JobCustomerLinkStatusValue,exports.NovaDataSource=s.NovaDataSource,exports.syncSchemaFromDump=u.syncSchemaFromDump,exports.Types=i,exports.Enums=n,exports.ConsoleLogger=l.ConsoleLogger,exports.queryTags=d.queryTags,exports.Utils=S;
@@ -1 +1 @@
1
- "use strict";var e=require("@opentelemetry/api"),r=require("typeorm"),t=require("./cache/attachIoredisErrorHandler.js"),a=require("./cache/InstrumentedQueryResultCache.js"),s=require("./cache/LruQueryResultCache.js"),i=require("./entities/index.js");require("./entities/job.js");var n=require("./subscribers/index.js"),o=require("./utils/mysqlSpanProcessor.js"),c=require("./utils/queryLogger.js"),u=require("./utils/queryTags.js"),l=require("./utils/spanSubscriber.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(e,t,a){this.logger=t;const s=[];for(const e in i){const r=i[e];s.push(r)}const o=[];for(const e in n){const r=n[e];o.push(r)}const u={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new r.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new c.QueryLogger(this.logger,e.logging),entities:s,subscribers:o,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...e,replication:{master:{...u,...e},slaves:a?[{...u,...a}]:[{...u,...e}],defaultMode:e.replicationMode??"master"}})}async connect(){if(!this.dataSource.isInitialized){const r=e.trace.getTracer("@spytecgps/nova-orm");await r.startActiveSpan("nova-orm.connect",(async r=>{try{await this.dataSource.initialize(),r.setAttribute("db.system","mysql");const e=this.dataSource.options;e.database&&r.setAttribute("db.name",e.database),r.setAttribute("nova_orm.entity_count",this.dataSource.entityMetadatas.length)}catch(t){throw r.recordException(t),r.setStatus({code:e.SpanStatusCode.ERROR}),t}finally{r.end()}}))}if(o.isOtelAutoInstrumented())o.installMysqlSpanRenamer();else if(!this.dataSource.subscribers.some((e=>e._spanSubscriber))){const e=l.createSpanSubscriber(this.logger);e._spanSubscriber=!0,this.dataSource.subscribers.push(e)}this.wrapQueryResultCache()}wrapQueryResultCache(){const e=this.dataSource.queryResultCache;if(!e||e.__novaInstrumented)return;let r="unknown";e instanceof s.LruQueryResultCache?r="lru":"RedisQueryResultCache"===e.constructor?.name&&(r="redis",t.attachIoredisErrorHandler(e,this.logger));const i=new a.InstrumentedQueryResultCache(e,{kind:r,logger:this.logger});i.__novaInstrumented=!0,this.dataSource.queryResultCache=i}flushCacheSummary(){const e=this.dataSource.queryResultCache;e instanceof a.InstrumentedQueryResultCache&&e.flushSummary()}async disconnect(){try{this.dataSource.isInitialized&&await this.dataSource.destroy()}catch(e){this.logger.error({error:e},"Failed to close connection to database")}}getRepository(e){return this.dataSource.getRepository(e)}async query(e,r,t){const a=/^\s*(?:\/\*[\s\S]*?\*\/\s*)*(INSERT|UPDATE|DELETE|REPLACE|TRUNCATE|CREATE|ALTER|DROP|RENAME|GRANT|REVOKE|LOCK|UNLOCK|SET|CALL|START|COMMIT|ROLLBACK)\b/i.test(e);if(t?.usePrimary||a)return this.dataSource.query(e,r,null);const s=this.dataSource.createQueryRunner("slave");try{return await s.query(e,r)}finally{await s.release()}}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(r,t,a){this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return e.trace.getTracer("nova-orm").startActiveSpan(t??"safeQuery2",(async s=>{try{return await r(this,a)}catch(r){throw s.recordException(r),s.setStatus({code:e.SpanStatusCode.ERROR,message:r?.message}),this.logger.error({error:r},t?t+" ":"Error while executing query"),r}finally{s.end(),a&&await a.release()}}))}async safeQuery3(e,r,t,{replicationMode:a,tag:s}={}){return(async()=>{let i;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),i=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const n=this.dataSource.createQueryBuilder(e,r,i);s&&n.comment(u.queryTags({action:s}));return await t(n)}catch(e){throw this.logger.error({error:e},s?s+" ":"Error while executing query"),e}finally{i&&await i.release()}})()}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}};
1
+ "use strict";var e=require("@opentelemetry/api"),r=require("typeorm"),t=require("./cache/attachIoredisErrorHandler.js"),a=require("./cache/InstrumentedQueryResultCache.js"),s=require("./cache/LruQueryResultCache.js"),i=require("./entities/index.js");require("./entities/job.js"),require("./entities/jobCustomerLink.js");var n=require("./subscribers/index.js"),o=require("./utils/mysqlSpanProcessor.js"),c=require("./utils/queryLogger.js"),u=require("./utils/queryTags.js"),l=require("./utils/spanSubscriber.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(e,t,a){this.logger=t;const s=[];for(const e in i){const r=i[e];s.push(r)}const o=[];for(const e in n){const r=n[e];o.push(r)}const u={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new r.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new c.QueryLogger(this.logger,e.logging),entities:s,subscribers:o,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...e,replication:{master:{...u,...e},slaves:a?[{...u,...a}]:[{...u,...e}],defaultMode:e.replicationMode??"master"}})}async connect(){if(!this.dataSource.isInitialized){const r=e.trace.getTracer("@spytecgps/nova-orm");await r.startActiveSpan("nova-orm.connect",(async r=>{try{await this.dataSource.initialize(),r.setAttribute("db.system","mysql");const e=this.dataSource.options;e.database&&r.setAttribute("db.name",e.database),r.setAttribute("nova_orm.entity_count",this.dataSource.entityMetadatas.length)}catch(t){throw r.recordException(t),r.setStatus({code:e.SpanStatusCode.ERROR}),t}finally{r.end()}}))}if(o.isOtelAutoInstrumented())o.installMysqlSpanRenamer();else if(!this.dataSource.subscribers.some((e=>e._spanSubscriber))){const e=l.createSpanSubscriber(this.logger);e._spanSubscriber=!0,this.dataSource.subscribers.push(e)}this.wrapQueryResultCache()}wrapQueryResultCache(){const e=this.dataSource.queryResultCache;if(!e||e.__novaInstrumented)return;let r="unknown";e instanceof s.LruQueryResultCache?r="lru":"RedisQueryResultCache"===e.constructor?.name&&(r="redis",t.attachIoredisErrorHandler(e,this.logger));const i=new a.InstrumentedQueryResultCache(e,{kind:r,logger:this.logger});i.__novaInstrumented=!0,this.dataSource.queryResultCache=i}flushCacheSummary(){const e=this.dataSource.queryResultCache;e instanceof a.InstrumentedQueryResultCache&&e.flushSummary()}async disconnect(){try{this.dataSource.isInitialized&&await this.dataSource.destroy()}catch(e){this.logger.error({error:e},"Failed to close connection to database")}}getRepository(e){return this.dataSource.getRepository(e)}async query(e,r,t){const a=/^\s*(?:\/\*[\s\S]*?\*\/\s*)*(INSERT|UPDATE|DELETE|REPLACE|TRUNCATE|CREATE|ALTER|DROP|RENAME|GRANT|REVOKE|LOCK|UNLOCK|SET|CALL|START|COMMIT|ROLLBACK)\b/i.test(e);if(t?.usePrimary||a)return this.dataSource.query(e,r,null);const s=this.dataSource.createQueryRunner("slave");try{return await s.query(e,r)}finally{await s.release()}}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(r,t,a){this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return e.trace.getTracer("nova-orm").startActiveSpan(t??"safeQuery2",(async s=>{try{return await r(this,a)}catch(r){throw s.recordException(r),s.setStatus({code:e.SpanStatusCode.ERROR,message:r?.message}),this.logger.error({error:r},t?t+" ":"Error while executing query"),r}finally{s.end(),a&&await a.release()}}))}async safeQuery3(e,r,t,{replicationMode:a,tag:s}={}){return(async()=>{let i;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),i=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const n=this.dataSource.createQueryBuilder(e,r,i);s&&n.comment(u.queryTags({action:s}));return await t(n)}catch(e){throw this.logger.error({error:e},s?s+" ":"Error while executing query"),e}finally{i&&await i.release()}})()}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}};
@@ -303,11 +303,36 @@ export declare enum BillingCampaignFreeOfferStatus {
303
303
  canceled_before = "canceled_before",
304
304
  canceled_during = "canceled_during"
305
305
  }
306
+ export declare enum BillingCampaignExpansionStatus {
307
+ assigned = "assigned",
308
+ pending = "pending",
309
+ contacted = "contacted",
310
+ payment_collected = "payment_collected",
311
+ shipped = "shipped",
312
+ subscription_created = "subscription_created",
313
+ activated = "activated",
314
+ returned = "returned",
315
+ canceled = "canceled",
316
+ expired = "expired"
317
+ }
318
+ /**
319
+ * The internal vocabulary for the Multi-Device Retention Test arms. Notion fixes the analytics
320
+ * contract as `trial_variant ∈ {a, b, control}` and ChartMogul segments on it, so
321
+ * `free_subscription` maps to `a` and `free_loaner` to `b` at exactly two boundaries — Stripe
322
+ * subscription metadata and the `trial_variant` property on analytics events. Everywhere else
323
+ * speaks in these names, because `'a' | 'b'` tells a reader or a CS agent nothing.
324
+ */
325
+ export declare enum ExpansionOffer {
326
+ free_subscription = "free_subscription",
327
+ free_loaner = "free_loaner",
328
+ control = "control"
329
+ }
306
330
  export declare enum BillingCampaignType {
307
331
  free_trial = "free_trial",
308
332
  free_offer = "free_offer",
309
333
  prepaid = "prepaid",
310
- referral = "referral"
334
+ referral = "referral",
335
+ device_expansion = "device_expansion"
311
336
  }
312
337
  export declare enum ChurnNotificationPriority {
313
338
  low = "low",
@@ -1 +1 @@
1
- "use strict";var e,t,i,r,a,o,s,p,n,d,c,l,v,u,_,x,m,C,g,T,E,S,D,y,A,P,b,f,M,h,I,U,B,V,R,L,N,w,k,G,F,O,H,X,z,Q,K,W;exports.HapnSecurityRole=void 0,(e=exports.HapnSecurityRole||(exports.HapnSecurityRole={}))[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner",exports.IngestorProviderKind=void 0,(t=exports.IngestorProviderKind||(exports.IngestorProviderKind={})).Aemp="aemp",t.Samsara="samsara",exports.DeviceStatus=void 0,(i=exports.DeviceStatus||(exports.DeviceStatus={})).Active="A",i.Deleted="D",i.Terminated="T",i.Replaced="R",exports.BoundaryStatus=void 0,(r=exports.BoundaryStatus||(exports.BoundaryStatus={}))[r.Active=1]="Active",r[r.Inactive=2]="Inactive",r[r.Deleted=3]="Deleted",exports.UserStatus=void 0,(a=exports.UserStatus||(exports.UserStatus={})).Active="A",a.Deleted="D",exports.ClientStatus=void 0,(o=exports.ClientStatus||(exports.ClientStatus={})).Active="A",o.Deleted="D",o.Locked="L",exports.UserInvitationStatus=void 0,(s=exports.UserInvitationStatus||(exports.UserInvitationStatus={}))[s.Pending=1]="Pending",s[s.Redeemed=2]="Redeemed",s[s.Canceled=3]="Canceled",exports.HapnClientType=void 0,(p=exports.HapnClientType||(exports.HapnClientType={}))[p.b2c=1]="b2c",p[p.b2b=2]="b2b",p[p.test=3]="test",p[p.demo=4]="demo",exports.HapnClientTypeNames=void 0,(n=exports.HapnClientTypeNames||(exports.HapnClientTypeNames={})).b2c="b2c",n.b2b="b2b",n.test="test",n.demo="demo",exports.HapnUseType=void 0,(d=exports.HapnUseType||(exports.HapnUseType={})).Personal="personal",d.Business="business",exports.MaxUsersAllowed=void 0,(c=exports.MaxUsersAllowed||(exports.MaxUsersAllowed={}))[c.b2c=3]="b2c",c[c.b2b=50]="b2b",exports.DeviceBehaviorType=void 0,(l=exports.DeviceBehaviorType||(exports.DeviceBehaviorType={})).ReportingFrequency="ReportingFrequency",l.Advanced="Advanced",l.Query="Query",l.General="General",exports.DeviceBehaviorStatus=void 0,(v=exports.DeviceBehaviorStatus||(exports.DeviceBehaviorStatus={})).Active="active",v.Inactive="inactive",exports.DeviceBehaviorTaskStatus=void 0,(u=exports.DeviceBehaviorTaskStatus||(exports.DeviceBehaviorTaskStatus={})).Queued="Queued",u.InProgress="InProgress",u.Completed="Completed",u.Canceled="Canceled",u.Failed="Failed",exports.NotificationRecipientType=void 0,(_=exports.NotificationRecipientType||(exports.NotificationRecipientType={}))[_.Email=1]="Email",_[_.Phone=2]="Phone",exports.BlacklistType=void 0,(x=exports.BlacklistType||(exports.BlacklistType={}))[x.CreditCard=1]="CreditCard",x[x.Email=2]="Email",x[x.Address=3]="Address",x[x.Ip=4]="Ip",x[x.Imei=5]="Imei",x[x.ClientId=6]="ClientId",exports.TripType=void 0,(m=exports.TripType||(exports.TripType={}))[m.Trip=1]="Trip",m[m.Stop=2]="Stop",exports.TripCompletionStatus=void 0,(C=exports.TripCompletionStatus||(exports.TripCompletionStatus={}))[C.Current=1]="Current",C[C.Completed=2]="Completed",C[C.Deleted=3]="Deleted",C[C.TempCurrent=10]="TempCurrent",C[C.TempCompleted=20]="TempCompleted",exports.PromotionType=void 0,(g=exports.PromotionType||(exports.PromotionType={})).FreeService="freeService",g.Discount="discount",exports.DeviceBLEMeshStatus=void 0,(T=exports.DeviceBLEMeshStatus||(exports.DeviceBLEMeshStatus={})).PendingSync="pendingSync",T.InProgress="inProgress",T.Synced="synced",exports.DataExportType=void 0,(E=exports.DataExportType||(exports.DataExportType={})).Positions="positions",E.Alerts="alerts",E.Messages="messages",exports.DataExportStatus=void 0,(S=exports.DataExportStatus||(exports.DataExportStatus={})).Started="started",S.Completed="completed",S.Failed="failed",exports.M2SyncType=void 0,(D=exports.M2SyncType||(exports.M2SyncType={})).CREATE_CUSTOMER="CREATE_CUSTOMER",D.UPDATE_USER="UPDATE_USER",D.UPDATE_CLIENT="UPDATE_CLIENT",D.AVALARA_EXEMPT="AVALARA_EXEMPT",D.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",D.AVALARA_ITEM="AVALARA_ITEM",D.CREATE_DEVICE="CREATE_DEVICE",D.REMOVE_DEVICE="REMOVE_DEVICE",D.UPDATE_DEVICE="UPDATE_DEVICE",D.SUSPEND_DEVICE="SUSPEND_DEVICE",D.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",D.CANCEL_DEVICE="CANCEL_DEVICE",exports.MediaType=void 0,(y=exports.MediaType||(exports.MediaType={})).Image="image",y.Video="video",exports.CameraSource=void 0,(A=exports.CameraSource||(exports.CameraSource={})).Front="front",A.Interior="interior",exports.DeviceCameraMediaLocation=void 0,(P=exports.DeviceCameraMediaLocation||(exports.DeviceCameraMediaLocation={})).SDCard="sdCard",P.Server="server",exports.DeviceCameraEventBehaviorType=void 0,(b=exports.DeviceCameraEventBehaviorType||(exports.DeviceCameraEventBehaviorType={})).TakePicture="takePicture",b.TakeVideo="takeVideo",b.UploadPicture="uploadPicture",b.UploadVideo="uploadVideo",exports.StreamingStatus=void 0,(f=exports.StreamingStatus||(exports.StreamingStatus={})).Requested="requested",f.Streaming="streaming",f.Closed="closed",f.Failed="failed",f.Closing="closing",exports.DevicePlatform=void 0,(M=exports.DevicePlatform||(exports.DevicePlatform={})).shopify="shopify",M.braintree="braintree",M.acumatica="acumatica",M.klarna="klarna",M.amazon="amazon",M.braintree_amazon="braintree_amazon",M.demo="demo",M.stripe="stripe",M.stripe_amazon="stripe_amazon",M.oem="oem",exports.DeviceModels=void 0,(h=exports.DeviceModels||(exports.DeviceModels={})).UNKNOWN="UNKNOWN",h.GV50="GV50",h.GV500="GV500",h.GL501="GL501",h.GL300="GL300",h.GL500="GL500",h.GV350="GV350",h.PRIME="PRIME",h.GV620="GV620",h.GL50="GL50",h.GB100="GB100",h.GL31="GL31",h.GL30="GL30",h.MCX101="MCX101",h.MCX301="MCX301",h.FMM00A="FMM00A",h.CV200="CV200",h.FMM650="FMM650",h.GL32="GL32",h.MC5="MC5",h.GPT48X="GPT48X",h.DEMO="DEMO",exports.DeviceEventType=void 0,(I=exports.DeviceEventType||(exports.DeviceEventType={})).new_activation="new_activation",I.reactivation="reactivation",I.subscription_change="subscription_change",I.resumption="resumption",I.device_swap="device_swap",I.subscription_update="subscription_update",exports.DeviceActivationSource=void 0,(U=exports.DeviceActivationSource||(exports.DeviceActivationSource={}))[U.sieva=1]="sieva",U[U.manual=2]="manual",U[U.api=3]="api",U[U.web=4]="web",U[U.mobile=5]="mobile",U[U.ios=6]="ios",U[U.android=7]="android",U[U.activation_site=8]="activation_site",exports.SubscriptionStatus=void 0,(B=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).Active="Active",B.Pending="Pending",B.Canceled="Canceled",B.Expired="Expired",B.PastDue="Past Due",B.Incomplete="Incomplete",B.IncompleteExpired="Incomplete Expired",B.Trialing="Trialing",B.Unpaid="Unpaid",B.Paused="Paused",exports.DeactivationCode=void 0,(V=exports.DeactivationCode||(exports.DeactivationCode={})).temporary="temporary",V.too_expensive="too_expensive",V.no_need="no_need",V.missing_features="missing_features",V.too_difficult="too_difficult",V.no_value="no_value",V.tech_issues="tech_issues",V.missing_hardware="missing_hardware",V.customer_service="customer_service",V.biz_change="biz_change",V.device_paused="device_paused",V.removed_from_account="removed_from_account",V.device_swapped="device_swapped",V.churnbuster_campaign_lost="churnbuster_campaign_lost",V.system_auto="system_auto",V.canceled_sub_active_sim_or_device="canceled_sub_active_sim_or_device",V.klarna_billing_failed="klarna_billing_failed",V.prepaid_recurring_pending="prepaid_recurring_pending",V.expired_subscription="expired_subscription",V.unknown_reason="unknown_reason",exports.DeactivationCreatedBy=void 0,(R=exports.DeactivationCreatedBy||(exports.DeactivationCreatedBy={})).customer="customer",R.customer_support="customer_support",R.system="system",exports.Carriers=void 0,(L=exports.Carriers||(exports.Carriers={}))[L.Pod=1]="Pod",L[L.Verizon=2]="Verizon",L[L.Kore=3]="Kore",L[L.Twilio=4]="Twilio",L[L.Unknown=99]="Unknown",L[L.None=-1]="None",exports.CarrierDeactivationType=void 0,(N=exports.CarrierDeactivationType||(exports.CarrierDeactivationType={})).device_cancel="device_cancel",N.device_pause="device_pause",N.churnbuster_lost="churnbuster_lost",N.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",N.device_cancel_admin="device_cancel_admin",N.klarna_billing_failed="klarna_billing_failed",N.expired_subscription="expired_subscription",N.prepaid_recurring_pending="prepaid_recurring_pending",N.device_swap="device_swap",N.system_auto="system_auto",exports.CarrierReactivationType=void 0,(exports.CarrierReactivationType||(exports.CarrierReactivationType={})).device_pause_resume="device_pause_resume",exports.ChurnbusterEventType=void 0,(w=exports.ChurnbusterEventType||(exports.ChurnbusterEventType={})).campaign_started="campaign_started",w.email_bounced="email_bounced",w.campaign_recovered="campaign_recovered",w.campaign_lost="campaign_lost",w.campaign_won="campaign_won",exports.AvalaraBasePrice=void 0,(k=exports.AvalaraBasePrice||(exports.AvalaraBasePrice={})).original="original",k.calculated="calculated",exports.InvoiceStatus=void 0,(G=exports.InvoiceStatus||(exports.InvoiceStatus={})).Draft="draft",G.Open="open",G.Paid="paid",G.Uncollectible="uncollectible",G.Void="void",exports.BillingCampaignFreeTrialStatus=void 0,(F=exports.BillingCampaignFreeTrialStatus||(exports.BillingCampaignFreeTrialStatus={})).in_trial="in_trial",F.canceled="canceled",F.converted="converted",F.overdue="overdue",exports.BillingCampaignPrepaidStatus=void 0,(O=exports.BillingCampaignPrepaidStatus||(exports.BillingCampaignPrepaidStatus={})).prepaid_started="prepaid_started",O.prepaid_ending_soon="prepaid_ending_soon",O.prepaid_converted="prepaid_converted",O.canceled="canceled",O.overdue="overdue",exports.BillingCampaignFreeOfferStatus=void 0,(H=exports.BillingCampaignFreeOfferStatus||(exports.BillingCampaignFreeOfferStatus={})).applied="applied",H.completed="completed",H.canceled_before="canceled_before",H.canceled_during="canceled_during",exports.BillingCampaignType=void 0,(X=exports.BillingCampaignType||(exports.BillingCampaignType={})).free_trial="free_trial",X.free_offer="free_offer",X.prepaid="prepaid",X.referral="referral",exports.ChurnNotificationPriority=void 0,(z=exports.ChurnNotificationPriority||(exports.ChurnNotificationPriority={})).low="low",z.moderate="moderate",z.high="high",z.critical="critical",exports.ChurnNotificationPhase=void 0,(Q=exports.ChurnNotificationPhase||(exports.ChurnNotificationPhase={})).payment_failed="payment_failed",Q.past_due="past_due",Q.account_locked="account_locked",Q.prepaid_add_card="prepaid_add_card",Q.prepaid_ending_soon="prepaid_ending_soon",Q.add_backup_card="add_backup_card",exports.UsagePlanTier=void 0,(K=exports.UsagePlanTier||(exports.UsagePlanTier={})).Standard="STANDARD",K.Extended="EXTENDED",exports.FirmwareUpgradeTaskStatus=void 0,(W=exports.FirmwareUpgradeTaskStatus||(exports.FirmwareUpgradeTaskStatus={})).Queued="Queued",W.QueuedWaitingForConfig="QueuedWaitingForConfig",W.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",W.InProgress="InProgress",W.Completed="Completed",W.Canceled="Canceled",W.Failed="Failed",W.Expired="Expired";
1
+ "use strict";var e,i,t,r,a,o,s,p,n,d,c,l,u,v,_,x,m,C,g,E,T,S,D,y,A,P,b,f,M,h,I,B,U,V,R,L,N,w,k,G,F,O,H,X,z,Q,K,W,q,j;exports.HapnSecurityRole=void 0,(e=exports.HapnSecurityRole||(exports.HapnSecurityRole={}))[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner",exports.IngestorProviderKind=void 0,(i=exports.IngestorProviderKind||(exports.IngestorProviderKind={})).Aemp="aemp",i.Samsara="samsara",exports.DeviceStatus=void 0,(t=exports.DeviceStatus||(exports.DeviceStatus={})).Active="A",t.Deleted="D",t.Terminated="T",t.Replaced="R",exports.BoundaryStatus=void 0,(r=exports.BoundaryStatus||(exports.BoundaryStatus={}))[r.Active=1]="Active",r[r.Inactive=2]="Inactive",r[r.Deleted=3]="Deleted",exports.UserStatus=void 0,(a=exports.UserStatus||(exports.UserStatus={})).Active="A",a.Deleted="D",exports.ClientStatus=void 0,(o=exports.ClientStatus||(exports.ClientStatus={})).Active="A",o.Deleted="D",o.Locked="L",exports.UserInvitationStatus=void 0,(s=exports.UserInvitationStatus||(exports.UserInvitationStatus={}))[s.Pending=1]="Pending",s[s.Redeemed=2]="Redeemed",s[s.Canceled=3]="Canceled",exports.HapnClientType=void 0,(p=exports.HapnClientType||(exports.HapnClientType={}))[p.b2c=1]="b2c",p[p.b2b=2]="b2b",p[p.test=3]="test",p[p.demo=4]="demo",exports.HapnClientTypeNames=void 0,(n=exports.HapnClientTypeNames||(exports.HapnClientTypeNames={})).b2c="b2c",n.b2b="b2b",n.test="test",n.demo="demo",exports.HapnUseType=void 0,(d=exports.HapnUseType||(exports.HapnUseType={})).Personal="personal",d.Business="business",exports.MaxUsersAllowed=void 0,(c=exports.MaxUsersAllowed||(exports.MaxUsersAllowed={}))[c.b2c=3]="b2c",c[c.b2b=50]="b2b",exports.DeviceBehaviorType=void 0,(l=exports.DeviceBehaviorType||(exports.DeviceBehaviorType={})).ReportingFrequency="ReportingFrequency",l.Advanced="Advanced",l.Query="Query",l.General="General",exports.DeviceBehaviorStatus=void 0,(u=exports.DeviceBehaviorStatus||(exports.DeviceBehaviorStatus={})).Active="active",u.Inactive="inactive",exports.DeviceBehaviorTaskStatus=void 0,(v=exports.DeviceBehaviorTaskStatus||(exports.DeviceBehaviorTaskStatus={})).Queued="Queued",v.InProgress="InProgress",v.Completed="Completed",v.Canceled="Canceled",v.Failed="Failed",exports.NotificationRecipientType=void 0,(_=exports.NotificationRecipientType||(exports.NotificationRecipientType={}))[_.Email=1]="Email",_[_.Phone=2]="Phone",exports.BlacklistType=void 0,(x=exports.BlacklistType||(exports.BlacklistType={}))[x.CreditCard=1]="CreditCard",x[x.Email=2]="Email",x[x.Address=3]="Address",x[x.Ip=4]="Ip",x[x.Imei=5]="Imei",x[x.ClientId=6]="ClientId",exports.TripType=void 0,(m=exports.TripType||(exports.TripType={}))[m.Trip=1]="Trip",m[m.Stop=2]="Stop",exports.TripCompletionStatus=void 0,(C=exports.TripCompletionStatus||(exports.TripCompletionStatus={}))[C.Current=1]="Current",C[C.Completed=2]="Completed",C[C.Deleted=3]="Deleted",C[C.TempCurrent=10]="TempCurrent",C[C.TempCompleted=20]="TempCompleted",exports.PromotionType=void 0,(g=exports.PromotionType||(exports.PromotionType={})).FreeService="freeService",g.Discount="discount",exports.DeviceBLEMeshStatus=void 0,(E=exports.DeviceBLEMeshStatus||(exports.DeviceBLEMeshStatus={})).PendingSync="pendingSync",E.InProgress="inProgress",E.Synced="synced",exports.DataExportType=void 0,(T=exports.DataExportType||(exports.DataExportType={})).Positions="positions",T.Alerts="alerts",T.Messages="messages",exports.DataExportStatus=void 0,(S=exports.DataExportStatus||(exports.DataExportStatus={})).Started="started",S.Completed="completed",S.Failed="failed",exports.M2SyncType=void 0,(D=exports.M2SyncType||(exports.M2SyncType={})).CREATE_CUSTOMER="CREATE_CUSTOMER",D.UPDATE_USER="UPDATE_USER",D.UPDATE_CLIENT="UPDATE_CLIENT",D.AVALARA_EXEMPT="AVALARA_EXEMPT",D.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",D.AVALARA_ITEM="AVALARA_ITEM",D.CREATE_DEVICE="CREATE_DEVICE",D.REMOVE_DEVICE="REMOVE_DEVICE",D.UPDATE_DEVICE="UPDATE_DEVICE",D.SUSPEND_DEVICE="SUSPEND_DEVICE",D.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",D.CANCEL_DEVICE="CANCEL_DEVICE",exports.MediaType=void 0,(y=exports.MediaType||(exports.MediaType={})).Image="image",y.Video="video",exports.CameraSource=void 0,(A=exports.CameraSource||(exports.CameraSource={})).Front="front",A.Interior="interior",exports.DeviceCameraMediaLocation=void 0,(P=exports.DeviceCameraMediaLocation||(exports.DeviceCameraMediaLocation={})).SDCard="sdCard",P.Server="server",exports.DeviceCameraEventBehaviorType=void 0,(b=exports.DeviceCameraEventBehaviorType||(exports.DeviceCameraEventBehaviorType={})).TakePicture="takePicture",b.TakeVideo="takeVideo",b.UploadPicture="uploadPicture",b.UploadVideo="uploadVideo",exports.StreamingStatus=void 0,(f=exports.StreamingStatus||(exports.StreamingStatus={})).Requested="requested",f.Streaming="streaming",f.Closed="closed",f.Failed="failed",f.Closing="closing",exports.DevicePlatform=void 0,(M=exports.DevicePlatform||(exports.DevicePlatform={})).shopify="shopify",M.braintree="braintree",M.acumatica="acumatica",M.klarna="klarna",M.amazon="amazon",M.braintree_amazon="braintree_amazon",M.demo="demo",M.stripe="stripe",M.stripe_amazon="stripe_amazon",M.oem="oem",exports.DeviceModels=void 0,(h=exports.DeviceModels||(exports.DeviceModels={})).UNKNOWN="UNKNOWN",h.GV50="GV50",h.GV500="GV500",h.GL501="GL501",h.GL300="GL300",h.GL500="GL500",h.GV350="GV350",h.PRIME="PRIME",h.GV620="GV620",h.GL50="GL50",h.GB100="GB100",h.GL31="GL31",h.GL30="GL30",h.MCX101="MCX101",h.MCX301="MCX301",h.FMM00A="FMM00A",h.CV200="CV200",h.FMM650="FMM650",h.GL32="GL32",h.MC5="MC5",h.GPT48X="GPT48X",h.DEMO="DEMO",exports.DeviceEventType=void 0,(I=exports.DeviceEventType||(exports.DeviceEventType={})).new_activation="new_activation",I.reactivation="reactivation",I.subscription_change="subscription_change",I.resumption="resumption",I.device_swap="device_swap",I.subscription_update="subscription_update",exports.DeviceActivationSource=void 0,(B=exports.DeviceActivationSource||(exports.DeviceActivationSource={}))[B.sieva=1]="sieva",B[B.manual=2]="manual",B[B.api=3]="api",B[B.web=4]="web",B[B.mobile=5]="mobile",B[B.ios=6]="ios",B[B.android=7]="android",B[B.activation_site=8]="activation_site",exports.SubscriptionStatus=void 0,(U=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).Active="Active",U.Pending="Pending",U.Canceled="Canceled",U.Expired="Expired",U.PastDue="Past Due",U.Incomplete="Incomplete",U.IncompleteExpired="Incomplete Expired",U.Trialing="Trialing",U.Unpaid="Unpaid",U.Paused="Paused",exports.DeactivationCode=void 0,(V=exports.DeactivationCode||(exports.DeactivationCode={})).temporary="temporary",V.too_expensive="too_expensive",V.no_need="no_need",V.missing_features="missing_features",V.too_difficult="too_difficult",V.no_value="no_value",V.tech_issues="tech_issues",V.missing_hardware="missing_hardware",V.customer_service="customer_service",V.biz_change="biz_change",V.device_paused="device_paused",V.removed_from_account="removed_from_account",V.device_swapped="device_swapped",V.churnbuster_campaign_lost="churnbuster_campaign_lost",V.system_auto="system_auto",V.canceled_sub_active_sim_or_device="canceled_sub_active_sim_or_device",V.klarna_billing_failed="klarna_billing_failed",V.prepaid_recurring_pending="prepaid_recurring_pending",V.expired_subscription="expired_subscription",V.unknown_reason="unknown_reason",exports.DeactivationCreatedBy=void 0,(R=exports.DeactivationCreatedBy||(exports.DeactivationCreatedBy={})).customer="customer",R.customer_support="customer_support",R.system="system",exports.Carriers=void 0,(L=exports.Carriers||(exports.Carriers={}))[L.Pod=1]="Pod",L[L.Verizon=2]="Verizon",L[L.Kore=3]="Kore",L[L.Twilio=4]="Twilio",L[L.Unknown=99]="Unknown",L[L.None=-1]="None",exports.CarrierDeactivationType=void 0,(N=exports.CarrierDeactivationType||(exports.CarrierDeactivationType={})).device_cancel="device_cancel",N.device_pause="device_pause",N.churnbuster_lost="churnbuster_lost",N.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",N.device_cancel_admin="device_cancel_admin",N.klarna_billing_failed="klarna_billing_failed",N.expired_subscription="expired_subscription",N.prepaid_recurring_pending="prepaid_recurring_pending",N.device_swap="device_swap",N.system_auto="system_auto",exports.CarrierReactivationType=void 0,(exports.CarrierReactivationType||(exports.CarrierReactivationType={})).device_pause_resume="device_pause_resume",exports.ChurnbusterEventType=void 0,(w=exports.ChurnbusterEventType||(exports.ChurnbusterEventType={})).campaign_started="campaign_started",w.email_bounced="email_bounced",w.campaign_recovered="campaign_recovered",w.campaign_lost="campaign_lost",w.campaign_won="campaign_won",exports.AvalaraBasePrice=void 0,(k=exports.AvalaraBasePrice||(exports.AvalaraBasePrice={})).original="original",k.calculated="calculated",exports.InvoiceStatus=void 0,(G=exports.InvoiceStatus||(exports.InvoiceStatus={})).Draft="draft",G.Open="open",G.Paid="paid",G.Uncollectible="uncollectible",G.Void="void",exports.BillingCampaignFreeTrialStatus=void 0,(F=exports.BillingCampaignFreeTrialStatus||(exports.BillingCampaignFreeTrialStatus={})).in_trial="in_trial",F.canceled="canceled",F.converted="converted",F.overdue="overdue",exports.BillingCampaignPrepaidStatus=void 0,(O=exports.BillingCampaignPrepaidStatus||(exports.BillingCampaignPrepaidStatus={})).prepaid_started="prepaid_started",O.prepaid_ending_soon="prepaid_ending_soon",O.prepaid_converted="prepaid_converted",O.canceled="canceled",O.overdue="overdue",exports.BillingCampaignFreeOfferStatus=void 0,(H=exports.BillingCampaignFreeOfferStatus||(exports.BillingCampaignFreeOfferStatus={})).applied="applied",H.completed="completed",H.canceled_before="canceled_before",H.canceled_during="canceled_during",exports.BillingCampaignExpansionStatus=void 0,(X=exports.BillingCampaignExpansionStatus||(exports.BillingCampaignExpansionStatus={})).assigned="assigned",X.pending="pending",X.contacted="contacted",X.payment_collected="payment_collected",X.shipped="shipped",X.subscription_created="subscription_created",X.activated="activated",X.returned="returned",X.canceled="canceled",X.expired="expired",exports.ExpansionOffer=void 0,(z=exports.ExpansionOffer||(exports.ExpansionOffer={})).free_subscription="free_subscription",z.free_loaner="free_loaner",z.control="control",exports.BillingCampaignType=void 0,(Q=exports.BillingCampaignType||(exports.BillingCampaignType={})).free_trial="free_trial",Q.free_offer="free_offer",Q.prepaid="prepaid",Q.referral="referral",Q.device_expansion="device_expansion",exports.ChurnNotificationPriority=void 0,(K=exports.ChurnNotificationPriority||(exports.ChurnNotificationPriority={})).low="low",K.moderate="moderate",K.high="high",K.critical="critical",exports.ChurnNotificationPhase=void 0,(W=exports.ChurnNotificationPhase||(exports.ChurnNotificationPhase={})).payment_failed="payment_failed",W.past_due="past_due",W.account_locked="account_locked",W.prepaid_add_card="prepaid_add_card",W.prepaid_ending_soon="prepaid_ending_soon",W.add_backup_card="add_backup_card",exports.UsagePlanTier=void 0,(q=exports.UsagePlanTier||(exports.UsagePlanTier={})).Standard="STANDARD",q.Extended="EXTENDED",exports.FirmwareUpgradeTaskStatus=void 0,(j=exports.FirmwareUpgradeTaskStatus||(exports.FirmwareUpgradeTaskStatus={})).Queued="Queued",j.QueuedWaitingForConfig="QueuedWaitingForConfig",j.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",j.InProgress="InProgress",j.Completed="Completed",j.Canceled="Canceled",j.Failed="Failed",j.Expired="Expired";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/nova-orm",
3
- "version": "1.4.287",
3
+ "version": "1.4.289",
4
4
  "description": "ORM with PlanetScale",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/schema.sql CHANGED
@@ -1,6 +1,6 @@
1
- -- nova-orm-schema-checksum: fa00eafdff7546533ac3cf668fe060a4
1
+ -- nova-orm-schema-checksum: 771ae8fe219879975a4d7e296e3e155c
2
2
  -- Nova ORM Schema Dump
3
- -- Generated at: 2026-08-12T21:52:59.335Z
3
+ -- Generated at: 2026-08-15T15:00:38.086Z
4
4
 
5
5
  SET FOREIGN_KEY_CHECKS = 0;
6
6
 
@@ -470,6 +470,121 @@ CREATE TABLE `billingCampaign` (
470
470
  UNIQUE KEY `ixuBillingCampaignType` (`type`)
471
471
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
472
472
 
473
+ DROP TABLE IF EXISTS `billingCampaignExpansion`;
474
+ CREATE TABLE `billingCampaignExpansion` (
475
+ `id` int NOT NULL AUTO_INCREMENT,
476
+ `offerId` int NOT NULL,
477
+ `clientId` int NOT NULL,
478
+ `userId` binary(16) DEFAULT NULL,
479
+ `email` varchar(255) DEFAULT NULL,
480
+ `expansionOffer` enum('free_subscription','free_loaner','control') NOT NULL,
481
+ `assignedAt` datetime DEFAULT NULL,
482
+ `status` enum('assigned','pending','contacted','payment_collected','shipped','subscription_created','activated','returned','canceled','expired') NOT NULL DEFAULT 'assigned',
483
+ `qualifyingImei` varchar(64) DEFAULT NULL,
484
+ `qualifyingSubscriptionId` varchar(255) DEFAULT NULL,
485
+ `qualifyingModelFamily` varchar(50) DEFAULT NULL,
486
+ `qualifyingPlanId` varchar(255) DEFAULT NULL,
487
+ `offerShownAt` datetime DEFAULT NULL,
488
+ `offerClickedAt` datetime DEFAULT NULL,
489
+ `offerDismissedAt` datetime DEFAULT NULL,
490
+ `offerSubmittedAt` datetime DEFAULT NULL,
491
+ `createdAt` datetime DEFAULT NULL,
492
+ `updatedAt` datetime DEFAULT NULL,
493
+ PRIMARY KEY (`id`),
494
+ UNIQUE KEY `ixuBillingCampaignExpansionClientId` (`clientId`),
495
+ KEY `ixBillingCampaignExpansionCreatedAt` (`createdAt`),
496
+ KEY `ixBillingCampaignExpansionQualifyingImei` (`qualifyingImei`),
497
+ KEY `ixBillingCampaignExpansionOffer` (`expansionOffer`),
498
+ KEY `ixBillingCampaignExpansionStatus` (`status`)
499
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
500
+
501
+ DROP TABLE IF EXISTS `billingCampaignExpansionAddress`;
502
+ CREATE TABLE `billingCampaignExpansionAddress` (
503
+ `id` int NOT NULL AUTO_INCREMENT,
504
+ `clientId` int NOT NULL,
505
+ `isDifferentFromAccount` tinyint(1) NOT NULL DEFAULT '0',
506
+ `name` varchar(255) DEFAULT NULL,
507
+ `street1` varchar(255) DEFAULT NULL,
508
+ `street2` varchar(255) DEFAULT NULL,
509
+ `city` varchar(255) DEFAULT NULL,
510
+ `region` varchar(255) DEFAULT NULL,
511
+ `postalCode` varchar(32) DEFAULT NULL,
512
+ `countryCode` varchar(2) DEFAULT NULL,
513
+ `phone` varchar(64) DEFAULT NULL,
514
+ `createdAt` datetime DEFAULT NULL,
515
+ PRIMARY KEY (`id`),
516
+ KEY `ixBillingCampaignExpansionAddressClientId` (`clientId`)
517
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
518
+
519
+ DROP TABLE IF EXISTS `billingCampaignExpansionDevice`;
520
+ CREATE TABLE `billingCampaignExpansionDevice` (
521
+ `id` int NOT NULL AUTO_INCREMENT,
522
+ `expansionId` int NOT NULL,
523
+ `imei` varchar(64) DEFAULT NULL,
524
+ `subscriptionId` varchar(255) DEFAULT NULL,
525
+ `subscriptionCreatedAt` datetime DEFAULT NULL,
526
+ `trialStartAt` datetime DEFAULT NULL,
527
+ `trialEndAt` datetime DEFAULT NULL,
528
+ `convertedAt` datetime DEFAULT NULL,
529
+ `canceledAt` datetime DEFAULT NULL,
530
+ `activatedAt` datetime DEFAULT NULL,
531
+ `activationDeadlineAt` datetime DEFAULT NULL,
532
+ `firstPingAt` datetime DEFAULT NULL,
533
+ `lastPingCheckedAt` datetime DEFAULT NULL,
534
+ `pingDetected` tinyint(1) NOT NULL DEFAULT '0',
535
+ `returnDueAt` datetime DEFAULT NULL,
536
+ `graceEndsAt` datetime DEFAULT NULL,
537
+ `returnedAt` datetime DEFAULT NULL,
538
+ `returnNeedsManualVerification` tinyint(1) NOT NULL DEFAULT '0',
539
+ `reminderD50SentAt` datetime DEFAULT NULL,
540
+ `preBillingFyiSentAt` datetime DEFAULT NULL,
541
+ `csReminderSentAt` datetime DEFAULT NULL,
542
+ `csReminderCount` int NOT NULL DEFAULT '0',
543
+ `createdAt` datetime DEFAULT NULL,
544
+ `updatedAt` datetime DEFAULT NULL,
545
+ PRIMARY KEY (`id`),
546
+ UNIQUE KEY `ixuBillingCampaignExpansionDeviceExpansionId` (`expansionId`),
547
+ KEY `ixBillingCampaignExpansionDeviceGraceEndsAt` (`graceEndsAt`),
548
+ KEY `ixBillingCampaignExpansionDeviceReturnDueAt` (`returnDueAt`),
549
+ KEY `ixBillingCampaignExpansionDeviceActivationDeadline` (`pingDetected`,`activationDeadlineAt`),
550
+ KEY `ixBillingCampaignExpansionDeviceSubscriptionId` (`subscriptionId`),
551
+ KEY `ixBillingCampaignExpansionDeviceImei` (`imei`)
552
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
553
+
554
+ DROP TABLE IF EXISTS `billingCampaignExpansionOrder`;
555
+ CREATE TABLE `billingCampaignExpansionOrder` (
556
+ `id` int NOT NULL AUTO_INCREMENT,
557
+ `expansionId` int NOT NULL,
558
+ `addressId` int DEFAULT NULL,
559
+ `selectedModelFamily` varchar(50) DEFAULT NULL,
560
+ `selectedDeviceTypeId` smallint DEFAULT NULL,
561
+ `devicePriceCents` int DEFAULT NULL,
562
+ `planId` varchar(255) DEFAULT NULL,
563
+ `monthlyPriceCents` int DEFAULT NULL,
564
+ `shopifyDraftOrderId` varchar(255) DEFAULT NULL,
565
+ `draftOrderCompletedAt` datetime DEFAULT NULL,
566
+ `shopifyOrderId` varchar(255) DEFAULT NULL,
567
+ `shippedAt` datetime DEFAULT NULL,
568
+ `deliveredAt` datetime DEFAULT NULL,
569
+ `trackingNumber` varchar(255) DEFAULT NULL,
570
+ `carrier` varchar(128) DEFAULT NULL,
571
+ `deviceFeeInvoiceId` varchar(255) DEFAULT NULL,
572
+ `deviceFeePaymentIntentId` varchar(255) DEFAULT NULL,
573
+ `deviceFeeChargedAt` datetime DEFAULT NULL,
574
+ `deviceFeeFailureReason` varchar(512) DEFAULT NULL,
575
+ `deviceFeeReminderSentAt` datetime DEFAULT NULL,
576
+ `deviceFeeReminderCount` int NOT NULL DEFAULT '0',
577
+ `csNotes` text,
578
+ `createdAt` datetime DEFAULT NULL,
579
+ `updatedAt` datetime DEFAULT NULL,
580
+ PRIMARY KEY (`id`),
581
+ UNIQUE KEY `ixuBillingCampaignExpansionOrderExpansionId` (`expansionId`),
582
+ KEY `ixBillingCampaignExpansionOrderAwaitingPayment` (`deviceFeeChargedAt`,`createdAt`),
583
+ KEY `ixBillingCampaignExpansionOrderShippedAt` (`shippedAt`),
584
+ KEY `ixBillingCampaignExpansionOrderShopifyOrderId` (`shopifyOrderId`),
585
+ KEY `ixBillingCampaignExpansionOrderDraftOrderId` (`shopifyDraftOrderId`)
586
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
587
+
473
588
  DROP TABLE IF EXISTS `billingCampaignFreeOffer`;
474
589
  CREATE TABLE `billingCampaignFreeOffer` (
475
590
  `id` int NOT NULL AUTO_INCREMENT,
@@ -2351,6 +2466,7 @@ CREATE TABLE `job` (
2351
2466
  `imei` varchar(15) NOT NULL,
2352
2467
  `name` varchar(255) NOT NULL,
2353
2468
  `reference` varchar(255) DEFAULT NULL,
2469
+ `customerPhone` varchar(20) DEFAULT NULL,
2354
2470
  `lifecycle` varchar(20) NOT NULL DEFAULT 'Upcoming',
2355
2471
  `healthSignals` json DEFAULT NULL,
2356
2472
  `proofState` varchar(20) NOT NULL DEFAULT 'NotArrived',
@@ -2380,6 +2496,7 @@ CREATE TABLE `job` (
2380
2496
  `etaDriveSeconds` int DEFAULT NULL,
2381
2497
  `etaDistanceMeters` int DEFAULT NULL,
2382
2498
  `originalEtaDriveSeconds` int DEFAULT NULL,
2499
+ `etaWindowBufferMinutes` int DEFAULT NULL,
2383
2500
  `rules` json DEFAULT NULL,
2384
2501
  `timeline` json DEFAULT NULL,
2385
2502
  `recipients` json DEFAULT NULL,
@@ -2418,6 +2535,52 @@ CREATE TABLE `jobAttachment` (
2418
2535
  KEY `ixJobAttachmentJobId` (`jobId`)
2419
2536
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2420
2537
 
2538
+ DROP TABLE IF EXISTS `jobCustomerLink`;
2539
+ CREATE TABLE `jobCustomerLink` (
2540
+ `id` binary(16) NOT NULL,
2541
+ `clientId` int NOT NULL,
2542
+ `jobId` int NOT NULL,
2543
+ `status` varchar(12) NOT NULL DEFAULT 'active',
2544
+ `phoneNumber` varchar(20) NOT NULL,
2545
+ `sentAt` datetime DEFAULT NULL,
2546
+ `lastSentAt` datetime DEFAULT NULL,
2547
+ `sendCount` int NOT NULL DEFAULT '0',
2548
+ `deliveryStatus` varchar(12) DEFAULT NULL,
2549
+ `deliveryStatusAt` datetime DEFAULT NULL,
2550
+ `openedAt` datetime DEFAULT NULL,
2551
+ `lastOpenedAt` datetime DEFAULT NULL,
2552
+ `openCount` int NOT NULL DEFAULT '0',
2553
+ `revokedAt` datetime DEFAULT NULL,
2554
+ `revokedBy` binary(16) DEFAULT NULL,
2555
+ `approachSmsSentAt` datetime DEFAULT NULL,
2556
+ `arrivedSmsSentAt` datetime DEFAULT NULL,
2557
+ `createdBy` binary(16) NOT NULL,
2558
+ `createdAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
2559
+ `modifiedAt` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
2560
+ PRIMARY KEY (`id`),
2561
+ KEY `ixJobCustomerLinkPhoneNumberStatus` (`phoneNumber`,`status`),
2562
+ KEY `ixJobCustomerLinkJobIdStatus` (`jobId`,`status`),
2563
+ KEY `ixJobCustomerLinkClientId` (`clientId`)
2564
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2565
+
2566
+ DROP TABLE IF EXISTS `jobCustomerPageSetting`;
2567
+ CREATE TABLE `jobCustomerPageSetting` (
2568
+ `clientId` int NOT NULL,
2569
+ `displayName` varchar(255) DEFAULT NULL,
2570
+ `businessPhone` varchar(20) DEFAULT NULL,
2571
+ `logoFileName` varchar(255) DEFAULT NULL,
2572
+ `logoS3FilesPath` varchar(255) DEFAULT NULL,
2573
+ `brandColor` char(7) DEFAULT NULL,
2574
+ `reviewUrl` varchar(500) DEFAULT NULL,
2575
+ `paymentUrl` varchar(500) DEFAULT NULL,
2576
+ `sendDefaults` json DEFAULT NULL,
2577
+ `defaultJobRules` json DEFAULT NULL,
2578
+ `createdAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
2579
+ `modifiedAt` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
2580
+ `modifiedBy` binary(16) DEFAULT NULL,
2581
+ PRIMARY KEY (`clientId`)
2582
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2583
+
2421
2584
  DROP TABLE IF EXISTS `latestUserAppInfo`;
2422
2585
  CREATE TABLE `latestUserAppInfo` (
2423
2586
  `id` int NOT NULL AUTO_INCREMENT,