@spytecgps/nova-orm 1.3.140 → 1.3.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("typeorm"),t=require("uuid");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var r=i(require("dayjs"));function a(e,t,i,r){var a,n=arguments.length,o=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(n<3?a(o):n>3?a(t,i,o):a(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o}function n(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}"function"==typeof SuppressedError&&SuppressedError;let o=class{id;sku;asin;description;reviewUrl;productUrl};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],o.prototype,"id",void 0),a([e.Column("varchar",{name:"sku",length:50}),n("design:type",String)],o.prototype,"sku",void 0),a([e.Column("varchar",{name:"asin",length:50}),n("design:type",String)],o.prototype,"asin",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],o.prototype,"description",void 0),a([e.Column("varchar",{name:"reviewUrl",nullable:!0,length:1e3}),n("design:type",String)],o.prototype,"reviewUrl",void 0),a([e.Column("varchar",{name:"productUrl",nullable:!0,length:1e3}),n("design:type",String)],o.prototype,"productUrl",void 0),o=a([e.Entity("acumaticaAmazonProduct",{schema:"nova"})],o);let s=class{id;imei;iccid;amazonShipmentId;deviceModel;deviceCarrier;carrierNetwork;carrierProductId;poNbr;createdBy;createdDate;lastModifiedDate;shipDate;asin;countryCode};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],s.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:50}),n("design:type",String)],s.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:50}),n("design:type",String)],s.prototype,"iccid",void 0),a([e.Column("varchar",{name:"amazonShipmentId",nullable:!0,length:50}),n("design:type",String)],s.prototype,"amazonShipmentId",void 0),a([e.Column("varchar",{name:"deviceModel",nullable:!0,length:50}),n("design:type",String)],s.prototype,"deviceModel",void 0),a([e.Column("varchar",{name:"deviceCarrier",nullable:!0,length:50}),n("design:type",String)],s.prototype,"deviceCarrier",void 0),a([e.Column("varchar",{name:"carrierNetwork",nullable:!0,length:50}),n("design:type",String)],s.prototype,"carrierNetwork",void 0),a([e.Column("varchar",{name:"carrierProductId",nullable:!0,length:50}),n("design:type",String)],s.prototype,"carrierProductId",void 0),a([e.Column("varchar",{name:"poNbr",nullable:!0,length:50}),n("design:type",String)],s.prototype,"poNbr",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],s.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"createdDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"createdDate",void 0),a([e.Column("varchar",{name:"lastModifiedDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"lastModifiedDate",void 0),a([e.Column("varchar",{name:"shipDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipDate",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],s.prototype,"asin",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],s.prototype,"countryCode",void 0),s=a([e.Index("ixAcumaticaImeiIccidDataIccid",["iccid"],{}),e.Index("ixAcumaticaImeiIccidDataImei",["imei"],{}),e.Index("ixAcumaticaImeiIccidDataAmazonShipmentId",["amazonShipmentId"],{}),e.Entity("acumaticaImeiIccidData",{schema:"nova"})],s);let l=class{id;imei;shipmentNumber;shipmentStatus;shipmentDate;orderType;orderStatus;iccid;sku};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],l.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],l.prototype,"imei",void 0),a([e.Column("varchar",{name:"shipmentNumber",nullable:!0,length:50}),n("design:type",String)],l.prototype,"shipmentNumber",void 0),a([e.Column("varchar",{name:"shipmentStatus",nullable:!0,length:50}),n("design:type",String)],l.prototype,"shipmentStatus",void 0),a([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],l.prototype,"shipmentDate",void 0),a([e.Column("varchar",{name:"orderType",nullable:!0,length:10}),n("design:type",String)],l.prototype,"orderType",void 0),a([e.Column("varchar",{name:"orderStatus",nullable:!0,length:50}),n("design:type",String)],l.prototype,"orderStatus",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:255}),n("design:type",String)],l.prototype,"iccid",void 0),a([e.Column("varchar",{name:"sku",nullable:!0,length:50}),n("design:type",String)],l.prototype,"sku",void 0),l=a([e.Entity("acumaticaOrderShipmentDetails",{schema:"nova"}),e.Index("ixAcumaticaOrderShipmentDetails_imei_shipmentDate",["imei","shipmentDate"],{})],l);let d=class{shipmentId;shipmentDate;location};a([e.PrimaryColumn("varchar",{name:"shipmentId",length:50}),n("design:type",String)],d.prototype,"shipmentId",void 0),a([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],d.prototype,"shipmentDate",void 0),a([e.Column("varchar",{name:"location",nullable:!0,length:6}),n("design:type",String)],d.prototype,"location",void 0),d=a([e.Entity("acumaticaShipment",{schema:"nova"})],d);let u=class{shipmentId;asin};a([e.Column("varchar",{name:"shipmentId",primary:!0,length:50}),n("design:type",String)],u.prototype,"shipmentId",void 0),a([e.Column("varchar",{name:"asin",primary:!0,length:50}),n("design:type",String)],u.prototype,"asin",void 0),u=a([e.Entity("acumaticaShipmentAmazon",{schema:"nova"})],u);let c=class{id;clientId;token;createdAt;updatedAt;expiresAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],c.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],c.prototype,"clientId",void 0),a([e.Column("binary",{name:"token",length:16}),n("design:type",Buffer)],c.prototype,"token",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],c.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],c.prototype,"updatedAt",void 0),a([e.Column("datetime",{name:"expiresAt",nullable:!0}),n("design:type",Date)],c.prototype,"expiresAt",void 0),c=a([e.Index("ixuAempToken_Token",["token"],{unique:!0}),e.Entity("aempToken",{schema:"nova"})],c);class p{to(e){if(null===e)return null;if(void 0===e)return;return e?1:0}from(e){return null===e?null:void 0!==e?1==e:void 0}}let m=class{id;name;title;description;isSystem;icon;context;identifier;stage;category;key;createdAt};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],m.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],m.prototype,"name",void 0),a([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],m.prototype,"title",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],m.prototype,"description",void 0),a([e.Column("tinyint",{name:"isSystem",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],m.prototype,"isSystem",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],m.prototype,"icon",void 0),a([e.Column("varchar",{name:"context",nullable:!0,length:25}),n("design:type",String)],m.prototype,"context",void 0),a([e.Column("varchar",{name:"identifier",nullable:!0,length:50}),n("design:type",String)],m.prototype,"identifier",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],m.prototype,"stage",void 0),a([e.Column("varchar",{name:"category",nullable:!0,length:25}),n("design:type",String)],m.prototype,"category",void 0),a([e.Column("varchar",{name:"key",nullable:!0,length:50}),n("design:type",String)],m.prototype,"key",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],m.prototype,"createdAt",void 0),m=a([e.Index("ixAlertTypeStage",["stage"],{}),e.Entity("alertType",{schema:"nova"})],m);let g=class{id;alertTypeId;alertType;value;createdAt;userId;messageId;boundaryId;imei;sendTime;lat;lon;address;clientId;isBuffer;isNotification;gpsUtcTime;relevantAddress;gpsMessageId;cellTowerRelevantAddress;userAlertConfigurationId;clientAlertConfigurationId;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],g.prototype,"id",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],g.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],g.prototype,"alertType",void 0),a([e.Column("varchar",{name:"value",nullable:!0,length:5e3}),n("design:type",String)],g.prototype,"value",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],g.prototype,"createdAt",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],g.prototype,"userId",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],g.prototype,"messageId",void 0),a([e.Column("int",{name:"boundaryId",nullable:!0}),n("design:type",Number)],g.prototype,"boundaryId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],g.prototype,"imei",void 0),a([e.Column("datetime",{name:"sendTime",precision:3}),n("design:type",Date)],g.prototype,"sendTime",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],g.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],g.prototype,"lon",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],g.prototype,"address",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],g.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"isBuffer",nullable:!0,width:1}),n("design:type",Boolean)],g.prototype,"isBuffer",void 0),a([e.Column("tinyint",{name:"isNotification",nullable:!0,width:1}),n("design:type",Boolean)],g.prototype,"isNotification",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],g.prototype,"gpsUtcTime",void 0),a([e.Column("varchar",{name:"relevantAddress",nullable:!0,length:255}),n("design:type",String)],g.prototype,"relevantAddress",void 0),a([e.Column("binary",{name:"gpsMessageId",nullable:!0,length:16}),n("design:type",Buffer)],g.prototype,"gpsMessageId",void 0),a([e.Column("varchar",{name:"cellTowerRelevantAddress",nullable:!0,length:255}),n("design:type",String)],g.prototype,"cellTowerRelevantAddress",void 0),a([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],g.prototype,"userAlertConfigurationId",void 0),a([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],g.prototype,"clientAlertConfigurationId",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],g.prototype,"deleted",void 0),g=a([e.Index("ixAlertUserId_Imei_AlertTypeId_SendTime",["userId","imei","alertTypeId","sendTime"],{}),e.Index("ixAlertUserId_AlertTypeId_SendTime",["userId","alertTypeId","sendTime"],{}),e.Index("ixAlertImei",["imei"],{}),e.Index("ixAlertSendTime",["sendTime"],{}),e.Entity("alert",{schema:"nova"})],g);let y=class{id;name;description;statusId};var v,h,f,I,C,b,S,R,D,w,A,T,N,B,U,E,P,M,O,x,k,L,F,Q,q,W,_,j,z,V,G,J;a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],y.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],y.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],y.prototype,"description",void 0),a([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],y.prototype,"statusId",void 0),y=a([e.Entity("appFeatureType",{schema:"nova"})],y),function(e){e[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner"}(v||(v={})),function(e){e.Active="A",e.Deleted="D",e.Terminated="T",e.Replaced="R"}(h||(h={})),function(e){e[e.Active=1]="Active",e[e.Inactive=2]="Inactive",e[e.Deleted=3]="Deleted"}(f||(f={})),function(e){e.Active="A",e.Deleted="D"}(I||(I={})),function(e){e[e.Pending=1]="Pending",e[e.Redeemed=2]="Redeemed",e[e.Canceled=3]="Canceled"}(C||(C={})),function(e){e[e.b2c=1]="b2c",e[e.b2b=2]="b2b",e[e.test=3]="test"}(b||(b={})),function(e){e.b2c="b2c",e.b2b="b2b",e.test="test"}(S||(S={})),function(e){e.Personal="personal",e.Business="business"}(R||(R={})),function(e){e[e.b2c=3]="b2c",e[e.b2b=50]="b2b"}(D||(D={})),function(e){e.ReportingFrequency="ReportingFrequency",e.Advanced="Advanced",e.Query="Query",e.General="General"}(w||(w={})),function(e){e.Active="active",e.Inactive="inactive"}(A||(A={})),function(e){e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed"}(T||(T={})),function(e){e[e.Email=1]="Email",e[e.Phone=2]="Phone"}(N||(N={})),function(e){e[e.CreditCard=1]="CreditCard",e[e.Email=2]="Email",e[e.Address=3]="Address",e[e.Ip=4]="Ip",e[e.Imei=5]="Imei",e[e.ClientId=6]="ClientId"}(B||(B={})),function(e){e[e.Trip=1]="Trip",e[e.Stop=2]="Stop"}(U||(U={})),function(e){e[e.Current=1]="Current",e[e.Completed=2]="Completed",e[e.Deleted=3]="Deleted",e[e.TempCurrent=10]="TempCurrent",e[e.TempCompleted=20]="TempCompleted"}(E||(E={})),function(e){e.Enter="boundaryEnter",e.Exit="boundaryExit"}(P||(P={})),function(e){e.FreeService="freeService",e.Discount="discount"}(M||(M={})),function(e){e.PendingSync="pendingSync",e.InProgress="inProgress",e.Synced="synced"}(O||(O={})),function(e){e.Positions="positions",e.Alerts="alerts",e.Messages="messages"}(x||(x={})),function(e){e.Started="started",e.Completed="completed",e.Failed="failed"}(k||(k={})),function(e){e.CREATE_CUSTOMER="CREATE_CUSTOMER",e.UPDATE_USER="UPDATE_USER",e.UPDATE_CLIENT="UPDATE_CLIENT",e.AVALARA_EXEMPT="AVALARA_EXEMPT",e.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",e.AVALARA_ITEM="AVALARA_ITEM",e.CREATE_DEVICE="CREATE_DEVICE",e.REMOVE_DEVICE="REMOVE_DEVICE",e.UPDATE_DEVICE="UPDATE_DEVICE",e.SUSPEND_DEVICE="SUSPEND_DEVICE",e.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",e.CANCEL_DEVICE="CANCEL_DEVICE"}(L||(L={})),function(e){e.Image="image",e.Video="video"}(F||(F={})),function(e){e.Front="front",e.Interior="interior"}(Q||(Q={})),function(e){e.SDCard="sdCard",e.Server="server"}(q||(q={})),function(e){e.TakePicture="takePicture",e.TakeVideo="takeVideo",e.UploadPicture="uploadPicture",e.UploadVideo="uploadVideo"}(W||(W={})),function(e){e.Requested="requested",e.Streaming="streaming",e.Closed="closed",e.Failed="failed"}(_||(_={})),function(e){e.shopify="shopify",e.braintree="braintree",e.acumatica="acumatica",e.klarna="klarna",e.amazon="amazon",e.braintree_amazon="braintree_amazon"}(j||(j={})),function(e){e.UNKNOWN="UNKNOWN",e.GV50="GV50",e.GV500="GV500",e.GL501="GL501",e.GL300="GL300",e.GL500="GL500",e.GV350="GV350",e.PRIME="PRIME",e.GV620="GV620",e.GL50="GL50",e.GB100="GB100",e.GL31="GL31",e.GL30="GL30",e.MCX101="MCX101",e.MCX301="MCX301"}(z||(z={})),function(e){e.new_activation="new_activation",e.reactivation="reactivation",e.subscription_change="subscription_change",e.resumption="resumption",e.device_swap="device_swap"}(V||(V={})),function(e){e[e.sieva=1]="sieva",e[e.manual=2]="manual",e[e.api=3]="api",e[e.web=4]="web",e[e.mobile=5]="mobile",e[e.ios=6]="ios",e[e.android=7]="android",e[e.activation_site=8]="activation_site"}(G||(G={})),function(e){e.Active="Active",e.Pending="Pending",e.Canceled="Canceled",e.Expired="Expired",e.PastDue="Past Due"}(J||(J={}));var H=Object.freeze({__proto__:null,get BlacklistType(){return B},get BoundaryEventType(){return P},get BoundaryStatus(){return f},get CameraSource(){return Q},get DataExportStatus(){return k},get DataExportType(){return x},get DeviceActivationSource(){return G},get DeviceBLEMeshStatus(){return O},get DeviceBehaviorStatus(){return A},get DeviceBehaviorTaskStatus(){return T},get DeviceBehaviorType(){return w},get DeviceCameraEventBehaviorType(){return W},get DeviceCameraMediaLocation(){return q},get DeviceEventType(){return V},get DeviceModels(){return z},get DevicePlatform(){return j},get DeviceStatus(){return h},get HapnClientType(){return b},get HapnClientTypeNames(){return S},get HapnSecurityRole(){return v},get HapnUseType(){return R},get M2SyncType(){return L},get MaxUsersAllowed(){return D},get MediaType(){return F},get NotificationRecipientType(){return N},get PromotionType(){return M},get StreamingStatus(){return _},get SubscriptionStatus(){return J},get TripCompletionStatus(){return E},get TripType(){return U},get UserInvitationStatus(){return C},get UserStatus(){return I}});let K=class{imei;promotionId;promotion};a([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],K.prototype,"imei",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],K.prototype,"promotionId",void 0),a([e.ManyToOne((()=>Y),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],K.prototype,"promotion",void 0),K=a([e.Entity("devicePromotion",{schema:"nova"})],K);let $=class{deviceTypeId;promotionId;promotion};a([e.Column("smallint",{name:"deviceTypeId",primary:!0}),n("design:type",Number)],$.prototype,"deviceTypeId",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],$.prototype,"promotionId",void 0),a([e.ManyToOne((()=>Y),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],$.prototype,"promotion",void 0),$=a([e.Entity("deviceTypePromotion",{schema:"nova"})],$);let X=class{marketplaceId;promotionId;promotion};a([e.Column("varchar",{name:"marketplaceId",length:15,primary:!0}),n("design:type",String)],X.prototype,"marketplaceId",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],X.prototype,"promotionId",void 0),a([e.ManyToOne((()=>Y),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],X.prototype,"promotion",void 0),X=a([e.Entity("marketplacePromotion",{schema:"nova"})],X);let Y=class{id;name;description;type;discount;discountBillingCycles;freeServiceMonths;startDate;endDate;status;bannerText;trackerText;marketplacePromotions;asinPromotions;devicePromotions;deviceTypePromotions};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Y.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Y.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Y.prototype,"description",void 0),a([e.Column("enum",{name:"type",enum:Object.values(M),comment:"The type of promotion: freeService or discount."}),n("design:type",String)],Y.prototype,"type",void 0),a([e.Column("decimal",{name:"discount",nullable:!0,precision:19,scale:4,comment:"The discount value if the type is discount offered in US Dollars."}),n("design:type",Number)],Y.prototype,"discount",void 0),a([e.Column("int",{name:"discountBillingCycles",nullable:!0,comment:"The number of billing cycles that the discount will be applied. Required when type is discount"}),n("design:type",Number)],Y.prototype,"discountBillingCycles",void 0),a([e.Column("int",{name:"freeServiceMonths",nullable:!0,comment:"The number of months that the service will be free. Required when type is freeService"}),n("design:type",Number)],Y.prototype,"freeServiceMonths",void 0),a([e.Column("datetime",{name:"startDate",comment:"The date that the promotion will start"}),n("design:type",Date)],Y.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0,comment:"The date that the promotion will end"}),n("design:type",Date)],Y.prototype,"endDate",void 0),a([e.Column("varchar",{name:"status",length:25,comment:"The status of the promotion: active, inactive"}),n("design:type",String)],Y.prototype,"status",void 0),a([e.Column("varchar",{name:"bannerText",nullable:!0,length:255}),n("design:type",String)],Y.prototype,"bannerText",void 0),a([e.Column("varchar",{name:"trackerText",nullable:!0,length:255}),n("design:type",String)],Y.prototype,"trackerText",void 0),a([e.OneToMany((()=>X),(e=>e.promotion)),n("design:type",Array)],Y.prototype,"marketplacePromotions",void 0),a([e.OneToMany((()=>Z),(e=>e.promotion)),n("design:type",Array)],Y.prototype,"asinPromotions",void 0),a([e.OneToMany((()=>K),(e=>e.promotion)),n("design:type",Array)],Y.prototype,"devicePromotions",void 0),a([e.OneToMany((()=>$),(e=>e.promotion)),n("design:type",Array)],Y.prototype,"deviceTypePromotions",void 0),Y=a([e.Entity("promotion",{schema:"nova"})],Y);let Z=class{asin;promotionId;promotion};a([e.Column("varchar",{name:"asin",length:15,primary:!0}),n("design:type",String)],Z.prototype,"asin",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Z.prototype,"promotionId",void 0),a([e.ManyToOne((()=>Y),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Z.prototype,"promotion",void 0),Z=a([e.Entity("asinPromotion",{schema:"nova"})],Z);let ee=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ee.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ee.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],ee.prototype,"description",void 0),ee=a([e.Index("ixuAssetCategoryName",["name"],{unique:!0}),e.Entity("assetCategory",{schema:"nova"})],ee);let te=class{id;deviceId;assetProfile;name;value;type;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],te.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],te.prototype,"deviceId",void 0),a([e.OneToOne((()=>Te),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],te.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],te.prototype,"name",void 0),a([e.Column("varchar",{name:"value",length:50}),n("design:type",String)],te.prototype,"value",void 0),a([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],te.prototype,"type",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],te.prototype,"createdAt",void 0),te=a([e.Index("ix_deviceId",["deviceId"],{}),e.Entity("assetProfileCustomField",{schema:"nova"})],te);let ie=class{id;deviceId;assetProfile;mediaType;fileName;fileExtension;s3FilesPath;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ie.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],ie.prototype,"deviceId",void 0),a([e.OneToOne((()=>Te),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],ie.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"mediaType",length:15,comment:"The type of the media: image or document"}),n("design:type",String)],ie.prototype,"mediaType",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],ie.prototype,"fileName",void 0),a([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],ie.prototype,"fileExtension",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],ie.prototype,"s3FilesPath",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ie.prototype,"createdAt",void 0),ie=a([e.Index("ixu_deviceId_fileName",["deviceId","fileName"],{unique:!0}),e.Entity("assetProfileMedia",{schema:"nova"})],ie);const re={to(e){if(!e)return null;try{const i=t.parse(e);return Buffer.from(i)}catch(t){throw new TypeError(`Invalid UUID string: ${e}`)}},from(e){if(!e)return null;if("string"==typeof e)return e;if(!e||16!==e.length)throw new TypeError("Invalid Buffer length for UUID");return t.stringify(e)}};let ae=class{id;name;description;status};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ae.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ae.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],ae.prototype,"description",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],ae.prototype,"status",void 0),ae=a([e.Index("ixClientTypeName",["name"],{}),e.Entity("clientType",{schema:"nova"})],ae);let ne=class{clientId;client;enterprise;maintenanceModule;billingMethod;customerSegment};a([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],ne.prototype,"clientId",void 0),a([e.OneToOne((()=>ce),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ne.prototype,"client",void 0),a([e.Column("tinyint",{name:"enterprise",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ne.prototype,"enterprise",void 0),a([e.Column("tinyint",{name:"maintenanceModule",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ne.prototype,"maintenanceModule",void 0),a([e.Column("enum",{enum:["credit-card-hubspot","ach-hubspot","credit-card-braintree","ach-braintree","ach-wire","check","dib-sap"],name:"billingMethod",nullable:!0}),n("design:type",String)],ne.prototype,"billingMethod",void 0),a([e.Column("enum",{enum:["whale","bass","guppy","guppy-self-serve"],name:"customerSegment",nullable:!0}),n("design:type",String)],ne.prototype,"customerSegment",void 0),ne=a([e.Entity("customerAttribute",{schema:"nova"})],ne);let oe=class{id;clientId;fileName;s3FilesPath;altText;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],oe.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],oe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],oe.prototype,"fileName",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],oe.prototype,"s3FilesPath",void 0),a([e.Column("varchar",{name:"altText",nullable:!0,length:100}),n("design:type",String)],oe.prototype,"altText",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],oe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],oe.prototype,"modifiedAt",void 0),oe=a([e.Index("ixClientDeviceIcon_clientId_fileName",["clientId","fileName"],{unique:!0}),e.Entity("clientDeviceIcon",{schema:"nova"})],oe);let se=class{id;brand;model;modelFamily;description;tags;url;name;pictureUrl;userManualUrl;notes;supported;activatable;selfActivatable;port;protocolMatch;stage;identifierType;landingPage;troubleshooting;protocol;readOnly;devices};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],se.prototype,"id",void 0),a([e.Column("varchar",{name:"brand",length:50}),n("design:type",String)],se.prototype,"brand",void 0),a([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],se.prototype,"model",void 0),a([e.Column("varchar",{name:"modelFamily",length:50}),n("design:type",String)],se.prototype,"modelFamily",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],se.prototype,"description",void 0),a([e.Column("varchar",{name:"tags",nullable:!0,length:255}),n("design:type",String)],se.prototype,"tags",void 0),a([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],se.prototype,"url",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],se.prototype,"name",void 0),a([e.Column("varchar",{name:"pictureUrl",nullable:!0,length:1e3}),n("design:type",String)],se.prototype,"pictureUrl",void 0),a([e.Column("varchar",{name:"userManualUrl",nullable:!0,length:1e3}),n("design:type",String)],se.prototype,"userManualUrl",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:2e3}),n("design:type",String)],se.prototype,"notes",void 0),a([e.Column("tinyint",{name:"supported",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],se.prototype,"supported",void 0),a([e.Column("tinyint",{name:"activatable",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],se.prototype,"activatable",void 0),a([e.Column("tinyint",{name:"selfActivatable",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],se.prototype,"selfActivatable",void 0),a([e.Column("smallint",{name:"port",nullable:!0}),n("design:type",Number)],se.prototype,"port",void 0),a([e.Column("varchar",{name:"protocolMatch",nullable:!0,length:5}),n("design:type",String)],se.prototype,"protocolMatch",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],se.prototype,"stage",void 0),a([e.Column("varchar",{name:"identifierType",length:20}),n("design:type",String)],se.prototype,"identifierType",void 0),a([e.Column("varchar",{name:"landingPage",nullable:!0,length:1e3}),n("design:type",String)],se.prototype,"landingPage",void 0),a([e.Column("varchar",{name:"troubleshooting",nullable:!0,length:1e3}),n("design:type",String)],se.prototype,"troubleshooting",void 0),a([e.Column("varchar",{name:"protocol",nullable:!0,length:50}),n("design:type",String)],se.prototype,"protocol",void 0),a([e.Column("tinyint",{name:"readOnly",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],se.prototype,"readOnly",void 0),a([e.OneToMany((()=>le),(e=>e.deviceType)),n("design:type",Array)],se.prototype,"devices",void 0),se=a([e.Entity("deviceType",{schema:"nova"})],se);let le=class{id;identifier;identifierKey;deviceTypeId;deviceType;imei;clientId;client;createdAt;name;status;iccid;modifiedAt;createdBy;modifiedBy;forward;color;icon;customIconId;customIcon;description;dataSourceTypeId;assetCategoryId;usageRegion;btmac;serialNumber;assignedTo;assignmentMode;iccidCarrier;clientDeviceSetting;securityGroupEntityTags;devicePairing;extendedAttributes};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],le.prototype,"id",void 0),a([e.Column("varchar",{name:"identifier",length:100}),n("design:type",String)],le.prototype,"identifier",void 0),a([e.Column("varchar",{name:"identifierKey",length:255}),n("design:type",String)],le.prototype,"identifierKey",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],le.prototype,"deviceTypeId",void 0),a([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],le.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],le.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],le.prototype,"clientId",void 0),a([e.OneToOne((()=>ce),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],le.prototype,"client",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],le.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],le.prototype,"name",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],le.prototype,"status",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],le.prototype,"iccid",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],le.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],le.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],le.prototype,"modifiedBy",void 0),a([e.Column("tinyint",{name:"forward",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],le.prototype,"forward",void 0),a([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],le.prototype,"color",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],le.prototype,"icon",void 0),a([e.Column("int",{name:"customIconId",nullable:!0}),n("design:type",Number)],le.prototype,"customIconId",void 0),a([e.OneToOne((()=>oe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],le.prototype,"customIcon",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],le.prototype,"description",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],le.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"assetCategoryId",nullable:!0}),n("design:type",Number)],le.prototype,"assetCategoryId",void 0),a([e.Column("varchar",{name:"usageRegion",nullable:!0,length:25}),n("design:type",String)],le.prototype,"usageRegion",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],le.prototype,"btmac",void 0),a([e.Column("varchar",{name:"serialNumber",nullable:!0,length:25}),n("design:type",String)],le.prototype,"serialNumber",void 0),a([e.Column("varchar",{name:"assignedTo",nullable:!0,length:255}),n("design:type",String)],le.prototype,"assignedTo",void 0),a([e.Column("varchar",{name:"assignmentMode",nullable:!0,length:50}),n("design:type",String)],le.prototype,"assignmentMode",void 0),a([e.Column("json",{name:"extendedAttributes",nullable:!0}),n("design:type",Object)],le.prototype,"extendedAttributes",void 0),le=a([e.Index("ixuDeviceIdentifierKey",["identifierKey"],{unique:!0}),e.Index("ixDeviceClientId",["clientId"],{}),e.Index("ixDeviceClientIdStatus",["clientId","status"],{}),e.Index("ixDeviceDeviceTypeId",["deviceTypeId"],{}),e.Index("ixDeviceIccidImei",["iccid","imei"],{}),e.Index("ixDeviceImei",["imei"],{}),e.Index("ixDeviceImeiLower",{synchronize:!1}),e.Index("ixDeviceStatus",["status"],{}),e.Index("ixDeviceClientIdImei",["clientId","imei"],{}),e.Index("ixDeviceCreatedAt",["createdAt"],{}),e.Entity("device",{schema:"nova"})],le);let de=class{id;clientId;client;deviceTypeId;imei;configFileUrl;skipActivationDefaults;createdAt;po};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],de.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],de.prototype,"clientId",void 0),a([e.ManyToOne((()=>ce),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],de.prototype,"client",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],de.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],de.prototype,"imei",void 0),a([e.Column("varchar",{name:"configFileUrl",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"configFileUrl",void 0),a([e.Column("tinyint",{name:"skipActivationDefaults",width:1,default:0,transformer:new p}),n("design:type",Boolean)],de.prototype,"skipActivationDefaults",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],de.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],de.prototype,"po",void 0),de=a([e.Index("ixDeviceCustomConfigurationsClientId",["clientId"],{}),e.Entity("deviceCustomConfiguration",{schema:"nova"})],de);let ue=class{id;name;description;websiteUrl;address;mainContact};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ue.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],ue.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],ue.prototype,"description",void 0),a([e.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),n("design:type",String)],ue.prototype,"websiteUrl",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],ue.prototype,"address",void 0),a([e.Column("binary",{name:"mainContact",length:16}),n("design:type",Buffer)],ue.prototype,"mainContact",void 0),ue=a([e.Entity("organization",{schema:"nova"})],ue);let ce=class{id;name;createdAt;modifiedAt;uuid;email;modifiedBy;createdBy;dataSourceTypeId;clientTypeId;clientType;salesforceId;accumaticaId;expirationDate;useType;btCustomerId;activationCampaign;organizationId;organization;users;devices;deviceCustomConfigurations;customerAttribute};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ce.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],ce.prototype,"name",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ce.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ce.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"uuid",nullable:!0,length:16}),n("design:type",Buffer)],ce.prototype,"uuid",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],ce.prototype,"email",void 0),a([e.Column("smallint",{name:"modifiedBy",nullable:!0}),n("design:type",Number)],ce.prototype,"modifiedBy",void 0),a([e.Column("smallint",{name:"createdBy",nullable:!0}),n("design:type",Number)],ce.prototype,"createdBy",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],ce.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"clientTypeId",default:()=>"'1'"}),n("design:type",Number)],ce.prototype,"clientTypeId",void 0),a([e.ManyToOne((()=>ae),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ce.prototype,"clientType",void 0),a([e.Column("varchar",{name:"salesforceId",nullable:!0,length:50}),n("design:type",String)],ce.prototype,"salesforceId",void 0),a([e.Column("varchar",{name:"accumaticaId",nullable:!0,length:50}),n("design:type",String)],ce.prototype,"accumaticaId",void 0),a([e.Column("datetime",{name:"expirationDate",nullable:!0}),n("design:type",Date)],ce.prototype,"expirationDate",void 0),a([e.Column("varchar",{name:"useType",nullable:!0,length:25}),n("design:type",String)],ce.prototype,"useType",void 0),a([e.Column("varchar",{name:"btCustomerId",nullable:!0,length:50}),n("design:type",String)],ce.prototype,"btCustomerId",void 0),a([e.Column("varchar",{name:"activationCampaign",nullable:!0,length:50}),n("design:type",String)],ce.prototype,"activationCampaign",void 0),a([e.Column("int",{name:"organizationId",nullable:!0}),n("design:type",Number)],ce.prototype,"organizationId",void 0),a([e.OneToOne((()=>ue),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],ce.prototype,"organization",void 0),a([e.OneToMany((()=>Re),(e=>e.client)),n("design:type",Array)],ce.prototype,"users",void 0),a([e.OneToMany((()=>le),(e=>e.client)),n("design:type",Array)],ce.prototype,"devices",void 0),a([e.OneToMany((()=>de),(e=>e.client)),n("design:type",Array)],ce.prototype,"deviceCustomConfigurations",void 0),a([e.OneToOne((()=>ne),(e=>e.client)),n("design:type",Object)],ce.prototype,"customerAttribute",void 0),ce=a([e.Index("ixClientClientTypeId",["clientTypeId"],{}),e.Index("ixClientCreatedAt",["createdAt"],{}),e.Index("ixClientEmail",["email"],{}),e.Index("ixClientEmailLower",{synchronize:!1}),e.Entity("client",{schema:"nova"})],ce);let pe=class{id;name;currencies;capital;region;subregion;languages;lat;lon;borders;area;internationalDirectDialing;alpha2Code;alpha3Code};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],pe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],pe.prototype,"name",void 0),a([e.Column("varchar",{name:"currencies",nullable:!0,length:255}),n("design:type",String)],pe.prototype,"currencies",void 0),a([e.Column("varchar",{name:"capital",nullable:!0,length:50}),n("design:type",String)],pe.prototype,"capital",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],pe.prototype,"region",void 0),a([e.Column("varchar",{name:"subregion",nullable:!0,length:50}),n("design:type",String)],pe.prototype,"subregion",void 0),a([e.Column("varchar",{name:"languages",nullable:!0,length:255}),n("design:type",String)],pe.prototype,"languages",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],pe.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],pe.prototype,"lon",void 0),a([e.Column("varchar",{name:"borders",nullable:!0,length:255}),n("design:type",String)],pe.prototype,"borders",void 0),a([e.Column("int",{name:"area",nullable:!0}),n("design:type",Number)],pe.prototype,"area",void 0),a([e.Column("varchar",{name:"internationalDirectDialing",nullable:!0,length:10}),n("design:type",String)],pe.prototype,"internationalDirectDialing",void 0),a([e.Column("varchar",{name:"alpha2Code",nullable:!0,length:2}),n("design:type",String)],pe.prototype,"alpha2Code",void 0),a([e.Column("varchar",{name:"alpha3Code",nullable:!0,length:3}),n("design:type",String)],pe.prototype,"alpha3Code",void 0),pe=a([e.Index("ixCountryAlpha2Code",["alpha2Code"],{}),e.Index("ixCountryName",["name"],{}),e.Entity("country",{schema:"nova"})],pe);let me=class{id;userId;user;alertTypeId;alertType;clientId;client;email;reason;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],me.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],me.prototype,"userId",void 0),a([e.ManyToOne((()=>Re),(e=>e.userAlertComplain),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],me.prototype,"user",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],me.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],me.prototype,"alertType",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],me.prototype,"clientId",void 0),a([e.ManyToOne((()=>ce),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],me.prototype,"client",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],me.prototype,"email",void 0),a([e.Column("varchar",{name:"reason",length:25}),n("design:type",String)],me.prototype,"reason",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],me.prototype,"createdAt",void 0),me=a([e.Index("ixuUserAlertComplainUserIdAlertTypeId",["userId","alertTypeId"],{unique:!0}),e.Entity("userAlertComplain",{schema:"nova"})],me);let ge=class{id;clientAlertConfigurationId;clientAlertConfiguration;userId;roleId;isEnabled;smsNotification;emailNotification;appNotification;pushNotification};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ge.prototype,"id",void 0),a([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],ge.prototype,"clientAlertConfigurationId",void 0),a([e.ManyToOne((()=>ye),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],ge.prototype,"clientAlertConfiguration",void 0),a([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],ge.prototype,"userId",void 0),a([e.Column("tinyint",{name:"roleId",nullable:!0}),n("design:type",Number)],ge.prototype,"roleId",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p,default:()=>"'1'"}),n("design:type",Boolean)],ge.prototype,"isEnabled",void 0),a([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ge.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ge.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ge.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ge.prototype,"pushNotification",void 0),ge=a([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Entity("clientAlertRecipient",{schema:"nova"})],ge);let ye=class{id;clientId;alertTypeId;name;description;status;alertValue;alertMetadata;filter;readOnly;createdAt;createdBy;modifiedBy;internalRecipients;externalRecipients};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ye.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ye.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],ye.prototype,"alertTypeId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ye.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],ye.prototype,"description",void 0),a([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],ye.prototype,"status",void 0),a([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],ye.prototype,"alertValue",void 0),a([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],ye.prototype,"alertMetadata",void 0),a([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],ye.prototype,"filter",void 0),a([e.Column("tinyint",{name:"readOnly",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ye.prototype,"readOnly",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ye.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],ye.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],ye.prototype,"modifiedBy",void 0),a([e.OneToMany((()=>ge),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],ye.prototype,"internalRecipients",void 0),a([e.OneToMany((()=>ve),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],ye.prototype,"externalRecipients",void 0),ye=a([e.Index("ixClientAlertConfigurationClientIdAlertTypeId",["clientId","alertTypeId"],{unique:!1}),e.Index("ixClientAlertConfigurationClientIdCreatedAt",["clientId","createdAt"],{unique:!1}),e.Entity("clientAlertConfiguration",{schema:"nova"})],ye);let ve=class{id;clientId;notificationType;recipient;isEnabled;isUserProfile;createdAt;modifiedAt;dataSourceTypeId;unsubscribed;unsubscribedInfo;userId;userAlertConfigurationId;userAlertConfiguration;clientAlertConfigurationId;clientAlertConfiguration};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ve.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ve.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"notificationType"}),n("design:type",Number)],ve.prototype,"notificationType",void 0),a([e.Column("varchar",{name:"recipient",length:100}),n("design:type",String)],ve.prototype,"recipient",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p}),n("design:type",Boolean)],ve.prototype,"isEnabled",void 0),a([e.Column("tinyint",{name:"isUserProfile",width:1,transformer:new p}),n("design:type",Boolean)],ve.prototype,"isUserProfile",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ve.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ve.prototype,"modifiedAt",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],ve.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"unsubscribed",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ve.prototype,"unsubscribed",void 0),a([e.Column("varchar",{name:"unsubscribedInfo",nullable:!0,length:256}),n("design:type",String)],ve.prototype,"unsubscribedInfo",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],ve.prototype,"userId",void 0),a([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],ve.prototype,"userAlertConfigurationId",void 0),a([e.ManyToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"userAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],ve.prototype,"userAlertConfiguration",void 0),a([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],ve.prototype,"clientAlertConfigurationId",void 0),a([e.ManyToOne((()=>ye),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],ve.prototype,"clientAlertConfiguration",void 0),ve=a([e.Index("ixuNotificationRecipientClientIdRecipientUserId",["clientId","recipient","userId"],{unique:!0}),e.Index("ixNotificationRecipientClientId",["clientId"],{}),e.Index("ixNotificationRecipientIsEnabled",["isEnabled"],{}),e.Index("ixNotificationRecipientIsUserProfile",["isUserProfile"],{}),e.Index("ixNotificationRecipientNotificationType",["notificationType"],{}),e.Index("ixNotificationRecipientRecipient",["recipient"],{}),e.Index("ixNotificationRecipientNotificationTypeRecipient",["notificationType","recipient"],{}),e.Index("ixNotificationRecipientClientIdUserIdNotificationTypeRecipient",["clientId","userId","notificationType","recipient"],{}),e.Entity("notificationRecipient",{schema:"nova"})],ve);let he=class{id;userId;user;smsNotification;emailNotification;alertTypeId;alertType;alertValue;appNotification;dataSourceTypeId;pushNotification;alertMetadata;filter;enabled;createdBy;name;notificationRecipients};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],he.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],he.prototype,"userId",void 0),a([e.ManyToOne((()=>Re),(e=>e.userAlertConfiguration),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],he.prototype,"user",void 0),a([e.Column("tinyint",{name:"smsNotification",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],he.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],he.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],he.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],he.prototype,"alertType",void 0),a([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],he.prototype,"alertValue",void 0),a([e.Column("tinyint",{name:"appNotification",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],he.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],he.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],he.prototype,"pushNotification",void 0),a([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],he.prototype,"alertMetadata",void 0),a([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],he.prototype,"filter",void 0),a([e.Column("tinyint",{name:"enabled",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],he.prototype,"enabled",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],he.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],he.prototype,"name",void 0),a([e.OneToMany((()=>ve),(e=>e.userAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"userAlertConfigurationId"}),n("design:type",Array)],he.prototype,"notificationRecipients",void 0),he=a([e.Index("ixUserAlertConfigurationUserIdAlertTypeId",["userId","alertTypeId"],{unique:!1}),e.Entity("userAlertConfiguration",{schema:"nova"})],he);let fe=class{id;clientAlertConfigurationId;userId;user;smsNotification;emailNotification;appNotification;pushNotification};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fe.prototype,"id",void 0),a([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],fe.prototype,"clientAlertConfigurationId",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],fe.prototype,"userId",void 0),a([e.ManyToOne((()=>Re),(e=>e.clientAlertNotificationOverride),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],fe.prototype,"user",void 0),a([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],fe.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],fe.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],fe.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],fe.prototype,"pushNotification",void 0),fe=a([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Index("ixUserId",["userId"],{unique:!1}),e.Index("ixUserIdClientAlertConfigurationId",["userId","clientAlertConfigurationId"],{unique:!0}),e.Entity("userAlertNotificationsConfig",{schema:"nova"})],fe);let Ie=class{id;userId;user;isMetric;timezone;createdAt;modifiedAt;defaultMapLayer;speedUnits;distanceUnits;alertsNotificationsOn;dataSourceTypeId;homepage;temperatureUnits;addressFormat};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ie.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ie.prototype,"userId",void 0),a([e.OneToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ie.prototype,"user",void 0),a([e.Column("tinyint",{name:"isMetric",width:1,transformer:new p}),n("design:type",Boolean)],Ie.prototype,"isMetric",void 0),a([e.Column("varchar",{name:"timezone",nullable:!0,length:255,default:()=>"'EST'"}),n("design:type",String)],Ie.prototype,"timezone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ie.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ie.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"defaultMapLayer",nullable:!0,length:25}),n("design:type",String)],Ie.prototype,"defaultMapLayer",void 0),a([e.Column("varchar",{name:"speedUnits",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"speedUnits",void 0),a([e.Column("varchar",{name:"distanceUnits",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"distanceUnits",void 0),a([e.Column("tinyint",{name:"alertsNotificationsOn",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ie.prototype,"alertsNotificationsOn",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ie.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"homepage",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"homepage",void 0),a([e.Column("varchar",{name:"temperatureUnits",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"temperatureUnits",void 0),a([e.Column("varchar",{name:"addressFormat",nullable:!0,length:100}),n("design:type",String)],Ie.prototype,"addressFormat",void 0),Ie=a([e.Index("ixUserConfigurationUserId",["userId"],{}),e.Entity("userConfiguration",{schema:"nova"})],Ie);let Ce=class{id;key;name;description;ordinalPosition;userSecurityRoles};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Ce.prototype,"id",void 0),a([e.Column("varchar",{name:"key",length:25}),n("design:type",String)],Ce.prototype,"key",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ce.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],Ce.prototype,"description",void 0),a([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Ce.prototype,"ordinalPosition",void 0),a([e.OneToMany((()=>Se),(e=>e.securityRole),{createForeignKeyConstraints:!1}),n("design:type",Array)],Ce.prototype,"userSecurityRoles",void 0),Ce=a([e.Entity("securityRole",{schema:"nova"})],Ce);const be=["full","limited"];let Se=class{clientId;userId;user;securityRole;securityRoleId;devicesAccess;boundariesAccess;minAccessDate};a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Se.prototype,"clientId",void 0),a([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],Se.prototype,"userId",void 0),a([e.ManyToOne((()=>Re),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Se.prototype,"user",void 0),a([e.ManyToOne((()=>Ce),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Se.prototype,"securityRole",void 0),a([e.Column("tinyint",{primary:!0,name:"securityRoleId"}),n("design:type",Number)],Se.prototype,"securityRoleId",void 0),a([e.Column("enum",{name:"access",enum:be,default:"full"}),n("design:type",String)],Se.prototype,"devicesAccess",void 0),a([e.Column("enum",{name:"boundariesAccess",enum:be,default:"full"}),n("design:type",String)],Se.prototype,"boundariesAccess",void 0),a([e.Column("datetime",{name:"minAccessDate",nullable:!0,precision:0}),n("design:type",Date)],Se.prototype,"minAccessDate",void 0),Se=a([e.Index("ixUserSecurityRoleClientId",["clientId"],{}),e.Index("ixUserSecurityRoleSecurityRoleId",["securityRoleId"],{}),e.Index("ixUserSecurityRoleUserId",["userId"],{}),e.Entity("userSecurityRole",{schema:"nova"})],Se);let Re=class{id;numberId;firstName;lastName;companyName;telephone;street;postalCode;city;region;email;userName;createdAt;modifiedAt;status;clientId;client;pincode;isAdmin;countryId;country;telephoneCountryId;telephoneCountry;dataSourceTypeId;preferredUserName;lastLoginAt;emailVerified;lat;lon;userConfiguration;userAlertConfiguration;clientAlertNotificationOverride;userAlertComplain;userSecurityRoles;securityGroupEntityTags};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Re.prototype,"id",void 0),a([e.Column("int",{name:"numberId",nullable:!0,unique:!0}),e.Generated("increment"),n("design:type",Number)],Re.prototype,"numberId",void 0),a([e.Column("varchar",{name:"firstName",length:100}),n("design:type",String)],Re.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",length:100}),n("design:type",String)],Re.prototype,"lastName",void 0),a([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Re.prototype,"companyName",void 0),a([e.Column("varchar",{name:"telephone",nullable:!0,length:20}),n("design:type",String)],Re.prototype,"telephone",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Re.prototype,"street",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],Re.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Re.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Re.prototype,"region",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],Re.prototype,"email",void 0),a([e.Column("varchar",{name:"userName",length:255}),n("design:type",String)],Re.prototype,"userName",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Re.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Re.prototype,"modifiedAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],Re.prototype,"status",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Re.prototype,"clientId",void 0),a([e.ManyToOne((()=>ce),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],Re.prototype,"client",void 0),a([e.Column("varchar",{name:"pincode",nullable:!0,length:20}),n("design:type",String)],Re.prototype,"pincode",void 0),a([e.Column("tinyint",{name:"isAdmin",width:1,transformer:new p}),n("design:type",Boolean)],Re.prototype,"isAdmin",void 0),a([e.Column("smallint",{name:"countryId",nullable:!0}),n("design:type",Number)],Re.prototype,"countryId",void 0),a([e.OneToOne((()=>pe),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Re.prototype,"country",void 0),a([e.Column("smallint",{name:"telephoneCountryId",nullable:!0}),n("design:type",Number)],Re.prototype,"telephoneCountryId",void 0),a([e.OneToOne((()=>pe),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Re.prototype,"telephoneCountry",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Re.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"preferredUserName",nullable:!0,length:255}),n("design:type",String)],Re.prototype,"preferredUserName",void 0),a([e.Column("datetime",{name:"lastLoginAt",nullable:!0}),n("design:type",Date)],Re.prototype,"lastLoginAt",void 0),a([e.Column("tinyint",{name:"emailVerified",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Re.prototype,"emailVerified",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Re.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Re.prototype,"lon",void 0),a([e.OneToOne((()=>Ie),(e=>e.user)),n("design:type",Object)],Re.prototype,"userConfiguration",void 0),a([e.OneToMany((()=>he),(e=>e.user)),n("design:type",Array)],Re.prototype,"userAlertConfiguration",void 0),a([e.OneToMany((()=>fe),(e=>e.user)),n("design:type",Array)],Re.prototype,"clientAlertNotificationOverride",void 0),a([e.OneToMany((()=>me),(e=>e.user)),n("design:type",Array)],Re.prototype,"userAlertComplain",void 0),a([e.OneToMany((()=>Se),(e=>e.user),{createForeignKeyConstraints:!1}),n("design:type",Array)],Re.prototype,"userSecurityRoles",void 0),Re=a([e.Index("ixUserClientId",["clientId"],{}),e.Index("ixUserCreatedAt",["createdAt"],{}),e.Index("ixUserEmail",["email"],{}),e.Index("ixUserEmailLower",{synchronize:!1}),e.Index("ixUserLastLoginAt",["lastLoginAt"],{}),e.Index("ixUserStatus",["status"],{}),e.Index("ixUserUserName",["userName"],{}),e.Index("ixUserTelephone",["telephone"],{}),e.Index("ixNumberId",["numberId"],{}),e.Index("ixCountryId",["countryId"],{}),e.Index("ixRegion",["region"],{}),e.Index("ixCountryIdRegion",["countryId","region"],{}),e.Entity("user",{schema:"nova"})],Re);let De=class{id;deviceId;assetProfile;note;userId;user;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],De.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],De.prototype,"deviceId",void 0),a([e.OneToOne((()=>Te),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],De.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"note",length:255}),n("design:type",String)],De.prototype,"note",void 0),a([e.Column("binary",{name:"userId",length:16,transformer:re}),n("design:type",String)],De.prototype,"userId",void 0),a([e.OneToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],De.prototype,"user",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],De.prototype,"createdAt",void 0),De=a([e.Index("ix_deviceId",["deviceId"],{}),e.Entity("assetProfileNote",{schema:"nova"})],De);let we=class{id;name;assetProfileTypes};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],we.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],we.prototype,"name",void 0),a([e.OneToMany((()=>Ae),(e=>e.assetProfileCategory)),n("design:type",Array)],we.prototype,"assetProfileTypes",void 0),we=a([e.Index("ixuAssetProfileCategoryName",["name"],{unique:!0}),e.Entity("assetProfileCategory",{schema:"nova"})],we);let Ae=class{id;name;assetProfileCategoryId;assetProfileCategory;clientId};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ae.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ae.prototype,"name",void 0),a([e.Column("tinyint",{name:"assetProfileCategoryId"}),n("design:type",Number)],Ae.prototype,"assetProfileCategoryId",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ae.prototype,"assetProfileCategory",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ae.prototype,"clientId",void 0),Ae=a([e.Index("ixu_assetProfileCategoryId_name_clientId",["assetProfileCategoryId","name","clientId"],{unique:!0}),e.Entity("assetProfileType",{schema:"nova"})],Ae);let Te=class{deviceId;name;clientId;device;assetProfileTypeId;assetProfileType;make;model;serialNumber;year;status;createdAt;modifiedAt;medias;notes;customFields};a([e.PrimaryColumn("int",{name:"deviceId"}),n("design:type",Number)],Te.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"name",length:50,nullable:!0}),n("design:type",String)],Te.prototype,"name",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Te.prototype,"clientId",void 0),a([e.OneToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Te.prototype,"device",void 0),a([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Te.prototype,"assetProfileTypeId",void 0),a([e.OneToOne((()=>Ae),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Te.prototype,"assetProfileType",void 0),a([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Te.prototype,"make",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Te.prototype,"model",void 0),a([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Te.prototype,"serialNumber",void 0),a([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Te.prototype,"year",void 0),a([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Te.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Te.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Te.prototype,"modifiedAt",void 0),a([e.OneToMany((()=>ie),(e=>e.assetProfile)),n("design:type",Array)],Te.prototype,"medias",void 0),a([e.OneToMany((()=>De),(e=>e.assetProfile)),n("design:type",Array)],Te.prototype,"notes",void 0),a([e.OneToMany((()=>te),(e=>e.assetProfile)),n("design:type",Array)],Te.prototype,"customFields",void 0),Te=a([e.Index("ix_clientId",["clientId"],{}),e.Entity("assetProfile",{schema:"nova"})],Te);class Ne{to(e){return e||null}from(e){return e?new Date(e):null}}let Be=class{id;clientId;fileName;expirationDate;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Be.prototype,"id",void 0),a([e.Column("int",{name:"clientId",unique:!0}),n("design:type",Number)],Be.prototype,"clientId",void 0),a([e.Column("varchar",{name:"fileName",length:1e3}),n("design:type",String)],Be.prototype,"fileName",void 0),a([e.Column("date",{name:"expirationDate",transformer:new Ne}),n("design:type",Date)],Be.prototype,"expirationDate",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Be.prototype,"createdAt",void 0),Be=a([e.Index("ixAvalaraExemptCertClientId",["clientId"],{unique:!0}),e.Entity("avalaraExemptCert",{schema:"nova"})],Be);let Ue=class{id;subscriptionId;planId;priceIncrease;priceDecrease;status;attempts;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Ue.prototype,"id",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Ue.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:256}),n("design:type",String)],Ue.prototype,"planId",void 0),a([e.Column("decimal",{name:"priceIncrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ue.prototype,"priceIncrease",void 0),a([e.Column("decimal",{name:"priceDecrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ue.prototype,"priceDecrease",void 0),a([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Ue.prototype,"status",void 0),a([e.Column("tinyint",{name:"attempts",default:()=>"'0'"}),n("design:type",Number)],Ue.prototype,"attempts",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Ue.prototype,"createdAt",void 0),Ue=a([e.Index("ixAvalaraQueueSubscriptionId",["subscriptionId"]),e.Entity("avalaraQueue",{schema:"nova"})],Ue);let Ee=class{id;clientId;deviceId;bleMeshId;status;createdAt;modifiedAt;device;bleMesh};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ee.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ee.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],Ee.prototype,"deviceId",void 0),a([e.Column("int",{name:"bleMeshId"}),n("design:type",Number)],Ee.prototype,"bleMeshId",void 0),a([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],Ee.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ee.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ee.prototype,"modifiedAt",void 0),a([e.OneToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ee.prototype,"device",void 0),a([e.OneToOne((()=>Pe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ee.prototype,"bleMesh",void 0),Ee=a([e.Index("ixDeviceBleMesh_clientId",["clientId"],{}),e.Index("ixuDeviceBleMesh_deviceId",["deviceId"],{unique:!0}),e.Entity("deviceBleMesh",{schema:"nova"})],Ee);let Pe=class{id;clientId;name;address;lat;lon;createdAt;modifiedAt;beacons;devices};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Pe.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:150}),n("design:type",String)],Pe.prototype,"name",void 0),a([e.Column("varchar",{name:"address",length:500}),n("design:type",String)],Pe.prototype,"address",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Pe.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Pe.prototype,"lon",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Pe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Pe.prototype,"modifiedAt",void 0),a([e.OneToMany((()=>Me),(e=>e.bleMesh)),n("design:type",Array)],Pe.prototype,"beacons",void 0),a([e.OneToMany((()=>Ee),(e=>e.bleMesh)),n("design:type",Array)],Pe.prototype,"devices",void 0),Pe=a([e.Index("ixBLEMesh_clientId",["clientId"],{}),e.Entity("bleMesh",{schema:"nova"})],Pe);let Me=class{id;clientId;name;bleMac;bleMeshId;createdAt;bleMesh};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Me.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Me.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:250,nullable:!0}),n("design:type",String)],Me.prototype,"name",void 0),a([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],Me.prototype,"bleMac",void 0),a([e.Column("int",{name:"bleMeshId",nullable:!0}),n("design:type",Number)],Me.prototype,"bleMeshId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Me.prototype,"createdAt",void 0),a([e.OneToOne((()=>Pe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Me.prototype,"bleMesh",void 0),Me=a([e.Index("ixBeaconMesh_clientId",["clientId"],{}),e.Index("ixuBeaconMesh_bleMac",["bleMac"],{unique:!0}),e.Entity("beaconBleMesh",{schema:"nova"})],Me);let Oe=class{id;name;description;billingFrequencyMonths;price;trialPeriod;discount;platform;planGroup;gracePeriod;status;platformPrice;servicePlan;contractLengthMonths};a([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Oe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Oe.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Oe.prototype,"description",void 0),a([e.Column("tinyint",{name:"billingFrequencyMonths"}),n("design:type",Number)],Oe.prototype,"billingFrequencyMonths",void 0),a([e.Column("float",{name:"price"}),n("design:type",Number)],Oe.prototype,"price",void 0),a([e.Column("varchar",{name:"trialPeriod",nullable:!0,length:25}),n("design:type",String)],Oe.prototype,"trialPeriod",void 0),a([e.Column("float",{name:"discount",nullable:!0}),n("design:type",Number)],Oe.prototype,"discount",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Oe.prototype,"platform",void 0),a([e.Column("varchar",{name:"planGroup",nullable:!0,length:25}),n("design:type",String)],Oe.prototype,"planGroup",void 0),a([e.Column("varchar",{name:"gracePeriod",nullable:!0,length:25}),n("design:type",String)],Oe.prototype,"gracePeriod",void 0),a([e.Column("char",{name:"status",length:1}),n("design:type",String)],Oe.prototype,"status",void 0),a([e.Column("float",{name:"platformPrice",nullable:!0}),n("design:type",Number)],Oe.prototype,"platformPrice",void 0),a([e.Column("varchar",{name:"servicePlan",nullable:!0,length:10}),n("design:type",String)],Oe.prototype,"servicePlan",void 0),a([e.Column("tinyint",{name:"contractLengthMonths"}),n("design:type",Number)],Oe.prototype,"contractLengthMonths",void 0),Oe=a([e.Entity("plan",{schema:"nova"})],Oe);let xe=class{id;deviceId;imei;planId;plan;subscriptionId;platform;status;createdAt;updatedAt;subscriptionValue;subscriptionPeriodMonths;subscriptionValueMonthly;clientId;client};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],xe.prototype,"id",void 0),a([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],xe.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],xe.prototype,"imei",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],xe.prototype,"planId",void 0),a([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"plan",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],xe.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],xe.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],xe.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],xe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],xe.prototype,"updatedAt",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],xe.prototype,"subscriptionValue",void 0),a([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],xe.prototype,"subscriptionPeriodMonths",void 0),a([e.Column("decimal",{name:"subscriptionValueMonthly",nullable:!0,precision:19,scale:4}),n("design:type",Number)],xe.prototype,"subscriptionValueMonthly",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],xe.prototype,"clientId",void 0),a([e.OneToOne((()=>ce),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"client",void 0),xe=a([e.Index("ixuBillingImei",["imei"],{unique:!0}),e.Index("ixBillingClientId",["clientId"],{}),e.Index("ixBillingPlanId",["planId"],{}),e.Index("ixBillingSubscriptionId",["subscriptionId"],{}),e.Entity("billing",{schema:"nova"})],xe);let ke=class{clientId;firstName;lastName;email;streetAddress;city;region;country;postalCode;phone;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ke.prototype,"clientId",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],ke.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],ke.prototype,"lastName",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],ke.prototype,"email",void 0),a([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],ke.prototype,"streetAddress",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],ke.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],ke.prototype,"region",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],ke.prototype,"country",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],ke.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],ke.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ke.prototype,"createdAt",void 0),ke=a([e.Index("ixBillingCustomerAmazonEmail",["email"],{}),e.Index("ixBillingCustomerAmazonClientId",["clientId"],{}),e.Entity("billingCustomerAmazon",{schema:"nova"})],ke);let Le=class{id;firstName;lastName;company;email;phone;createdAt;updatedAt;churnStatus};a([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Le.prototype,"id",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"lastName",void 0),a([e.Column("varchar",{name:"company",nullable:!0,length:100}),n("design:type",String)],Le.prototype,"company",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Le.prototype,"email",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:150}),n("design:type",String)],Le.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Le.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Le.prototype,"updatedAt",void 0),a([e.Column("varchar",{name:"churnStatus",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"churnStatus",void 0),Le=a([e.Index("ixBillingCustomerBraintreeEmail",["email"],{}),e.Entity("billingCustomerBraintree",{schema:"nova"})],Le);let Fe=class{id;clientId;deviceId;imei;planId;subscriptionId;platform;status;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Fe.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Fe.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Fe.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Fe.prototype,"imei",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Fe.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Fe.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Fe.prototype,"createdAt",void 0),Fe=a([e.Entity("billingDeviceHistory",{schema:"nova"})],Fe);let Qe=class{planId;targetCustomer;code;status;platform;billingFrequency;contractLength;numberOfBillingCycles;description;name;price;trialDuration;trialDurationUnit;trialPeriod;createdAt;updatedAt;addOns;discounts;startDate;endDate};a([e.PrimaryColumn({type:"varchar",name:"planId",length:50}),n("design:type",String)],Qe.prototype,"planId",void 0),a([e.Column("varchar",{name:"targetCustomer",length:20}),n("design:type",String)],Qe.prototype,"targetCustomer",void 0),a([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],Qe.prototype,"code",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],Qe.prototype,"status",void 0),a([e.Column("varchar",{name:"platform",length:255}),n("design:type",String)],Qe.prototype,"platform",void 0),a([e.Column("smallint",{name:"billingFrequency"}),n("design:type",Number)],Qe.prototype,"billingFrequency",void 0),a([e.Column("smallint",{name:"contractLength"}),n("design:type",Number)],Qe.prototype,"contractLength",void 0),a([e.Column("smallint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],Qe.prototype,"numberOfBillingCycles",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Qe.prototype,"description",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Qe.prototype,"name",void 0),a([e.Column("varchar",{name:"price",length:50}),n("design:type",String)],Qe.prototype,"price",void 0),a([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],Qe.prototype,"trialDuration",void 0),a([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:20}),n("design:type",String)],Qe.prototype,"trialDurationUnit",void 0),a([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Qe.prototype,"trialPeriod",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Qe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",precision:0}),n("design:type",Date)],Qe.prototype,"updatedAt",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Array)],Qe.prototype,"addOns",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Array)],Qe.prototype,"discounts",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0,precision:0}),n("design:type",Date)],Qe.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0,precision:0}),n("design:type",Date)],Qe.prototype,"endDate",void 0),Qe=a([e.Index("ixBillingPlansPlanId",["planId"],{}),e.Index("ixBillingPlansStatus",["status"],{}),e.Index("ixBillingPlansTargetCustomer",["targetCustomer"],{}),e.Index("ixBillingPlansStartDate_EndDate",["startDate","endDate"],{}),e.Entity("billingPlans",{schema:"nova"})],Qe);let qe=class{id;deviceTypeId;planId;deviceTypeModel;deviceType;createdAt;status;billingPlans};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],qe.prototype,"id",void 0),a([e.Column("int",{name:"deviceTypeId"}),n("design:type",Number)],qe.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],qe.prototype,"planId",void 0),a([e.Column("varchar",{name:"deviceTypeModel",length:50}),n("design:type",String)],qe.prototype,"deviceTypeModel",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],qe.prototype,"deviceType",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],qe.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],qe.prototype,"status",void 0),a([e.ManyToOne((()=>Qe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"planId",referencedColumnName:"planId"}),n("design:type",Object)],qe.prototype,"billingPlans",void 0),qe=a([e.Index("ixBillingDeviceTypePlanDeviceTypeId",["deviceTypeId"],{}),e.Index("ixBillingDeviceTypePlanStatus",["status"],{}),e.Index("ixBillingDeviceTypePlanPlanId",["planId"],{}),e.Index("ixBillingDeviceTypePlanDeviceTypeModel",["deviceTypeModel"],{}),e.Entity("billingDeviceTypePlan",{schema:"nova"})],qe);let We=class{id;owner;amountPaid;bankOfIssuer;billingAddress;billingAddressCity;billingAddressCountry;billingAddressLine1;billingAddressLine2;billingAddressState;billingAddressZip;createdByUserId;currencyCode;customer;grossAmount;lastFourDigits;lineItemDiscountAmount;netAmount;objectCreateDateTime;objectId;objectLastModifiedDateTime;orderDiscountAmount;orderDiscountCode;orderDiscountPercentage;ownerAssignedDateTime;paymentDateTime;paymentId;paymentMethod;paymentSourceName;paymentType;processingFees;refunded;shippingAddress;shippingAddressCity;shippingAddressCountry;shippingAddressLine1;shippingAddressLine2;shippingAddressState;shippingAddressZip;source;sourceId;sourceUrl;status;statusUpdatedOn;totalDiscountAmount;totalFees;totalTaxes;updatedByUserId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],We.prototype,"id",void 0),a([e.Column("varchar",{name:"owner",nullable:!0,length:50}),n("design:type",String)],We.prototype,"owner",void 0),a([e.Column("decimal",{name:"amountPaid",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"amountPaid",void 0),a([e.Column("varchar",{name:"bankOfIssuer",nullable:!0,length:50}),n("design:type",String)],We.prototype,"bankOfIssuer",void 0),a([e.Column("varchar",{name:"billingAddress",nullable:!0,length:255}),n("design:type",String)],We.prototype,"billingAddress",void 0),a([e.Column("varchar",{name:"billingAddressCity",nullable:!0,length:50}),n("design:type",String)],We.prototype,"billingAddressCity",void 0),a([e.Column("varchar",{name:"billingAddressCountry",nullable:!0,length:3}),n("design:type",String)],We.prototype,"billingAddressCountry",void 0),a([e.Column("varchar",{name:"billingAddressLine1",nullable:!0,length:255}),n("design:type",String)],We.prototype,"billingAddressLine1",void 0),a([e.Column("varchar",{name:"billingAddressLine2",nullable:!0,length:255}),n("design:type",String)],We.prototype,"billingAddressLine2",void 0),a([e.Column("varchar",{name:"billingAddressState",nullable:!0,length:50}),n("design:type",String)],We.prototype,"billingAddressState",void 0),a([e.Column("varchar",{name:"billingAddressZip",nullable:!0,length:50}),n("design:type",String)],We.prototype,"billingAddressZip",void 0),a([e.Column("varchar",{name:"createdByUserId",nullable:!0,length:50}),n("design:type",String)],We.prototype,"createdByUserId",void 0),a([e.Column("varchar",{name:"currencyCode",nullable:!0,length:3}),n("design:type",String)],We.prototype,"currencyCode",void 0),a([e.Column("varchar",{name:"customer",nullable:!0,length:50}),n("design:type",String)],We.prototype,"customer",void 0),a([e.Column("decimal",{name:"grossAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"grossAmount",void 0),a([e.Column("varchar",{name:"lastFourDigits",nullable:!0,length:4}),n("design:type",String)],We.prototype,"lastFourDigits",void 0),a([e.Column("decimal",{name:"lineItemDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"lineItemDiscountAmount",void 0),a([e.Column("decimal",{name:"netAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"netAmount",void 0),a([e.Column("datetime",{name:"objectCreateDateTime",nullable:!0}),n("design:type",Date)],We.prototype,"objectCreateDateTime",void 0),a([e.Column("varchar",{name:"objectId",nullable:!0,length:20}),n("design:type",String)],We.prototype,"objectId",void 0),a([e.Column("datetime",{name:"objectLastModifiedDateTime",nullable:!0}),n("design:type",Date)],We.prototype,"objectLastModifiedDateTime",void 0),a([e.Column("decimal",{name:"orderDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"orderDiscountAmount",void 0),a([e.Column("varchar",{name:"orderDiscountCode",nullable:!0,length:50}),n("design:type",String)],We.prototype,"orderDiscountCode",void 0),a([e.Column("smallint",{name:"orderDiscountPercentage",default:0}),n("design:type",Number)],We.prototype,"orderDiscountPercentage",void 0),a([e.Column("datetime",{name:"ownerAssignedDateTime",nullable:!0}),n("design:type",Date)],We.prototype,"ownerAssignedDateTime",void 0),a([e.Column("datetime",{name:"paymentDateTime",nullable:!0}),n("design:type",Date)],We.prototype,"paymentDateTime",void 0),a([e.Column("varchar",{name:"paymentId",nullable:!0,length:20}),n("design:type",String)],We.prototype,"paymentId",void 0),a([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:10}),n("design:type",String)],We.prototype,"paymentMethod",void 0),a([e.Column("varchar",{name:"paymentSourceName",nullable:!0,length:255}),n("design:type",String)],We.prototype,"paymentSourceName",void 0),a([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],We.prototype,"paymentType",void 0),a([e.Column("decimal",{name:"processingFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"processingFees",void 0),a([e.Column("decimal",{name:"refunded",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"refunded",void 0),a([e.Column("varchar",{name:"shippingAddress",nullable:!0,length:255}),n("design:type",String)],We.prototype,"shippingAddress",void 0),a([e.Column("varchar",{name:"shippingAddressCity",nullable:!0,length:50}),n("design:type",String)],We.prototype,"shippingAddressCity",void 0),a([e.Column("varchar",{name:"shippingAddressCountry",nullable:!0,length:3}),n("design:type",String)],We.prototype,"shippingAddressCountry",void 0),a([e.Column("varchar",{name:"shippingAddressLine1",nullable:!0,length:255}),n("design:type",String)],We.prototype,"shippingAddressLine1",void 0),a([e.Column("varchar",{name:"shippingAddressLine2",nullable:!0,length:255}),n("design:type",String)],We.prototype,"shippingAddressLine2",void 0),a([e.Column("varchar",{name:"shippingAddressState",nullable:!0,length:50}),n("design:type",String)],We.prototype,"shippingAddressState",void 0),a([e.Column("varchar",{name:"shippingAddressZip",nullable:!0,length:50}),n("design:type",String)],We.prototype,"shippingAddressZip",void 0),a([e.Column("varchar",{name:"source",nullable:!0,length:20}),n("design:type",String)],We.prototype,"source",void 0),a([e.Column("varchar",{name:"sourceId",nullable:!0,length:20}),n("design:type",String)],We.prototype,"sourceId",void 0),a([e.Column("varchar",{name:"sourceUrl",nullable:!0,length:255}),n("design:type",String)],We.prototype,"sourceUrl",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],We.prototype,"status",void 0),a([e.Column("datetime",{name:"statusUpdatedOn",nullable:!0}),n("design:type",Date)],We.prototype,"statusUpdatedOn",void 0),a([e.Column("decimal",{name:"totalDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"totalDiscountAmount",void 0),a([e.Column("decimal",{name:"totalFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"totalFees",void 0),a([e.Column("decimal",{name:"totalTaxes",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"totalTaxes",void 0),a([e.Column("varchar",{name:"updatedByUserId",nullable:!0,length:20}),n("design:type",String)],We.prototype,"updatedByUserId",void 0),We=a([e.Entity("billingHubspotPaymentLog",{schema:"nova"})],We);let _e=class{clientId;firstName;lastName;billingEmail;shippingEmail;streetAddress;city;region;country;postalCode;phone;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],_e.prototype,"clientId",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],_e.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],_e.prototype,"lastName",void 0),a([e.Column("varchar",{name:"billingEmail",nullable:!0,length:255}),n("design:type",String)],_e.prototype,"billingEmail",void 0),a([e.Column("varchar",{name:"shippingEmail",nullable:!0,length:255}),n("design:type",String)],_e.prototype,"shippingEmail",void 0),a([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],_e.prototype,"streetAddress",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],_e.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],_e.prototype,"region",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],_e.prototype,"country",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],_e.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],_e.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],_e.prototype,"createdAt",void 0),_e=a([e.Index("ixBillingKlarnaCustomerShippingEmail",["shippingEmail"],{}),e.Index("ixBillingKlarnaCustomerClientId",["clientId"],{}),e.Entity("billingKlarnaCustomer",{schema:"nova"})],_e);let je=class{imei;clientId;orderId;deviceType;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;paymentType;createdAt};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],je.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],je.prototype,"clientId",void 0),a([e.Column("varchar",{name:"orderId",length:255}),n("design:type",String)],je.prototype,"orderId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],je.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],je.prototype,"planId",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ne}),n("design:type",Date)],je.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ne}),n("design:type",Date)],je.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ne}),n("design:type",Date)],je.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],je.prototype,"status",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],je.prototype,"discounts",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],je.prototype,"addOns",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],je.prototype,"paymentMethodToken",void 0),a([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],je.prototype,"paymentType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],je.prototype,"createdAt",void 0),je=a([e.Index("ixBillingKlarnaOrderOrderId",["orderId"],{}),e.Entity("billingKlarnaOrder",{schema:"nova"})],je);let ze=class{featureId;planId;feature;status};a([e.PrimaryGeneratedColumn({type:"int",name:"featureId"}),n("design:type",Number)],ze.prototype,"featureId",void 0),a([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],ze.prototype,"planId",void 0),a([e.Column("text",{name:"feature",nullable:!0}),n("design:type",String)],ze.prototype,"feature",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],ze.prototype,"status",void 0),ze=a([e.Entity("billingPlanFeatures",{schema:"nova"})],ze);let Ve=class{id;timestamp;status;balance;price;currencyIsoCode;planId;subscriptionId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ve.prototype,"id",void 0),a([e.Column("varchar",{name:"timestamp",nullable:!0,length:255}),n("design:type",String)],Ve.prototype,"timestamp",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ve.prototype,"status",void 0),a([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ve.prototype,"balance",void 0),a([e.Column("decimal",{name:"price",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ve.prototype,"price",void 0),a([e.Column("varchar",{name:"currencyIsoCode",nullable:!0,length:3}),n("design:type",String)],Ve.prototype,"currencyIsoCode",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ve.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:25}),n("design:type",String)],Ve.prototype,"subscriptionId",void 0),Ve=a([e.Index("ixBillingStatusHistoryBraintreeSubscriptionIdTimestamp",["subscriptionId","timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeTimestamp",["timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingStatusHistoryBraintree",{schema:"nova"})],Ve);let Ge=class{imei;clientId;subscriptionId;deviceType;asin;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;scheduledSuspension;paymentSkipped;existsInBraintree;createdAt};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Ge.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ge.prototype,"clientId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],Ge.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"asin",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"planId",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ne}),n("design:type",Date)],Ge.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ne}),n("design:type",Date)],Ge.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ne}),n("design:type",Date)],Ge.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ge.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ge.prototype,"status",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],Ge.prototype,"discounts",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],Ge.prototype,"addOns",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ge.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"paymentMethodToken",void 0),a([e.Column("datetime",{name:"scheduledSuspension",nullable:!0,transformer:new Ne}),n("design:type",Date)],Ge.prototype,"scheduledSuspension",void 0),a([e.Column("tinyint",{name:"paymentSkipped",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Ge.prototype,"paymentSkipped",void 0),a([e.Column("tinyint",{name:"existsInBraintree",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Ge.prototype,"existsInBraintree",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],Ge.prototype,"createdAt",void 0),Ge=a([e.Index("ixBillingSubscriptionAmazonSubscriptionId",["subscriptionId"]),e.Entity("billingSubscriptionAmazon",{schema:"nova"})],Ge);let Je=class{subscriptionId;customerId;planId;createdAt;updatedAt;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;subscriptionPeriodMonths;paymentInstrumentType;paymentInstrumentDetails;isPaused;discountDetails;addons;balance;currentBillingCycle;daysPastDue;description;descriptor;failureCount;firstBillingDate;merchantAccountId;nextBillingPeriodAmount;numberOfBillingCycles;paidThroughDate;paymentMethodToken;statusHistory;trialDuration;trialDurationUnit;trialPeriod};a([e.Column("varchar",{primary:!0,name:"subscriptionId",length:50}),n("design:type",String)],Je.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"customerId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"customerId",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"planId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Je.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Je.prototype,"updatedAt",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ne}),n("design:type",Date)],Je.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ne}),n("design:type",Date)],Je.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ne}),n("design:type",Date)],Je.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Je.prototype,"status",void 0),a([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],Je.prototype,"subscriptionPeriodMonths",void 0),a([e.Column("varchar",{name:"paymentInstrumentType",nullable:!0,length:20}),n("design:type",String)],Je.prototype,"paymentInstrumentType",void 0),a([e.Column("json",{name:"paymentInstrumentDetails",nullable:!0}),n("design:type",Object)],Je.prototype,"paymentInstrumentDetails",void 0),a([e.Column("tinyint",{name:"isPaused",nullable:!0,width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Je.prototype,"isPaused",void 0),a([e.Column("json",{name:"discountDetails",nullable:!0}),n("design:type",Object)],Je.prototype,"discountDetails",void 0),a([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],Je.prototype,"addons",void 0),a([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"balance",void 0),a([e.Column("tinyint",{name:"currentBillingCycle",nullable:!0}),n("design:type",Number)],Je.prototype,"currentBillingCycle",void 0),a([e.Column("tinyint",{name:"daysPastDue",nullable:!0}),n("design:type",Number)],Je.prototype,"daysPastDue",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Je.prototype,"description",void 0),a([e.Column("json",{name:"descriptor",nullable:!0}),n("design:type",Object)],Je.prototype,"descriptor",void 0),a([e.Column("tinyint",{name:"failureCount",nullable:!0}),n("design:type",Number)],Je.prototype,"failureCount",void 0),a([e.Column("date",{name:"firstBillingDate",nullable:!0,transformer:new Ne}),n("design:type",Date)],Je.prototype,"firstBillingDate",void 0),a([e.Column("varchar",{name:"merchantAccountId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"merchantAccountId",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("tinyint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],Je.prototype,"numberOfBillingCycles",void 0),a([e.Column("date",{name:"paidThroughDate",nullable:!0,transformer:new Ne}),n("design:type",Date)],Je.prototype,"paidThroughDate",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"paymentMethodToken",void 0),a([e.Column("json",{name:"statusHistory",nullable:!0}),n("design:type",Object)],Je.prototype,"statusHistory",void 0),a([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],Je.prototype,"trialDuration",void 0),a([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:10}),n("design:type",String)],Je.prototype,"trialDurationUnit",void 0),a([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Je.prototype,"trialPeriod",void 0),Je=a([e.Index("ixBillingSubscriptionBraintreeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingSubscriptionBraintree",{schema:"nova"})],Je);let He=class{blacklistTypeId;value;notes;createdAt;createdBy;modifiedAt;modifiedBy};a([e.Column("tinyint",{primary:!0,name:"blacklistTypeId"}),n("design:type",Number)],He.prototype,"blacklistTypeId",void 0),a([e.Column("varchar",{primary:!0,name:"value",length:255}),n("design:type",String)],He.prototype,"value",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],He.prototype,"notes",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],He.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",length:255}),n("design:type",String)],He.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],He.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:255}),n("design:type",String)],He.prototype,"modifiedBy",void 0),He=a([e.Entity("blacklist",{schema:"nova"})],He);let Ke=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Ke.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ke.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],Ke.prototype,"description",void 0),Ke=a([e.Entity("blacklistType",{schema:"nova"})],Ke);let $e=class{id;imeiMain;btmacMain;bleMac;connectionType;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],$e.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],$e.prototype,"imeiMain",void 0),a([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],$e.prototype,"btmacMain",void 0),a([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],$e.prototype,"bleMac",void 0),a([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],$e.prototype,"connectionType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],$e.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],$e.prototype,"modifiedAt",void 0),$e=a([e.Index("ixuBLEMeshConfigurationImeiMainBLEMac",["imeiMain","bleMac"],{unique:!0}),e.Entity("bleMeshConfiguration",{schema:"nova"})],$e);let Xe=class{id;name;type;buffer;createdAt;modifiedAt;createdBy;modifiedBy;clientId;location;status;radiusDisplayUnit;dataSourceTypeId;geometry;color;isUserCreated;area;centerLat;centerLon;securityGroupEntityTags};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Xe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],Xe.prototype,"name",void 0),a([e.Column("char",{name:"type",nullable:!0,length:1}),n("design:type",String)],Xe.prototype,"type",void 0),a([e.Column("varchar",{name:"buffer",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"buffer",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"modifiedBy",void 0),a([e.Column("int",{name:"clientId",default:()=>"'0'"}),n("design:type",Number)],Xe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"location",nullable:!0,length:255}),n("design:type",String)],Xe.prototype,"location",void 0),a([e.Column("tinyint",{name:"status",default:()=>"'1'"}),n("design:type",Number)],Xe.prototype,"status",void 0),a([e.Column("char",{name:"radiusDisplayUnit",nullable:!0,length:2}),n("design:type",String)],Xe.prototype,"radiusDisplayUnit",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Xe.prototype,"dataSourceTypeId",void 0),a([e.Column("text",{name:"geometry",nullable:!0}),n("design:type",String)],Xe.prototype,"geometry",void 0),a([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],Xe.prototype,"color",void 0),a([e.Column("tinyint",{name:"isUserCreated",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Xe.prototype,"isUserCreated",void 0),a([e.Column("float",{name:"area",nullable:!0}),n("design:type",Number)],Xe.prototype,"area",void 0),a([e.Column("decimal",{name:"centerLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Xe.prototype,"centerLat",void 0),a([e.Column("decimal",{name:"centerLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Xe.prototype,"centerLon",void 0),Xe=a([e.Index("ixBoundaryClientIdStatus",["clientId","status"],{}),e.Index("ixBoundaryStatus",["status"],{}),e.Entity("boundary",{schema:"nova"})],Xe);let Ye=class{id;deviceId;boundaryId;inDate;inLat;inLon;inAddress;outDate;outLat;outLon;outAddress;inOutDuration;createdAt;modifiedAt;imei;userId;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],Ye.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],Ye.prototype,"deviceId",void 0),a([e.Column("int",{name:"boundaryId"}),n("design:type",Number)],Ye.prototype,"boundaryId",void 0),a([e.Column("datetime",{name:"inDate",precision:3,nullable:!0}),n("design:type",Date)],Ye.prototype,"inDate",void 0),a([e.Column("decimal",{name:"inLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ye.prototype,"inLat",void 0),a([e.Column("decimal",{name:"inLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ye.prototype,"inLon",void 0),a([e.Column("varchar",{name:"inAddress",nullable:!0,length:255}),n("design:type",String)],Ye.prototype,"inAddress",void 0),a([e.Column("datetime",{name:"outDate",precision:3,nullable:!0}),n("design:type",Date)],Ye.prototype,"outDate",void 0),a([e.Column("decimal",{name:"outLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ye.prototype,"outLat",void 0),a([e.Column("decimal",{name:"outLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ye.prototype,"outLon",void 0),a([e.Column("varchar",{name:"outAddress",nullable:!0,length:255}),n("design:type",String)],Ye.prototype,"outAddress",void 0),a([e.Column("int",{name:"inOutDuration",nullable:!0}),n("design:type",Number)],Ye.prototype,"inOutDuration",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ye.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ye.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ye.prototype,"imei",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],Ye.prototype,"userId",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],Ye.prototype,"deleted",void 0),Ye=a([e.Index("ixBoundaryEventDeviceId_BoundaryId_UserId_InDate",["deviceId","boundaryId","userId","inDate"],{}),e.Index("ixBoundaryEventDeviceId_BoundaryId_UserId_OutDate",["deviceId","boundaryId","userId","outDate"],{}),e.Index("ixBoundaryEventDeviceId",["deviceId"],{}),e.Index("ixBoundaryEventBoundaryId",["boundaryId"],{}),e.Index("ixBoundaryEventOutAtInAt",["outDate","inDate"],{}),e.Index("ixBoundaryEventUserId",["userId"],{}),e.Entity("boundaryEvent",{schema:"nova"})],Ye);let Ze=class{id;mcc;mnc;lac;radio;lat;lon;range;createdAt;updatedAt};a([e.Column("int",{primary:!0,name:"id"}),n("design:type",Number)],Ze.prototype,"id",void 0),a([e.Column("tinyint",{name:"mcc",nullable:!0}),n("design:type",Number)],Ze.prototype,"mcc",void 0),a([e.Column("tinyint",{name:"mnc",nullable:!0}),n("design:type",Number)],Ze.prototype,"mnc",void 0),a([e.Column("mediumint",{name:"lac",nullable:!0}),n("design:type",Number)],Ze.prototype,"lac",void 0),a([e.Column("varchar",{name:"radio",nullable:!0,length:5}),n("design:type",String)],Ze.prototype,"radio",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ze.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ze.prototype,"lon",void 0),a([e.Column("mediumint",{name:"range",nullable:!0}),n("design:type",Number)],Ze.prototype,"range",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ze.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Ze.prototype,"updatedAt",void 0),Ze=a([e.Entity("cellTower",{schema:"nova"})],Ze);let et=class{clientId;appFeatureTypeId;appFeatureType;entityId;statusId};a([e.Column({type:"int",name:"clientId",primary:!0}),n("design:type",Number)],et.prototype,"clientId",void 0),a([e.Column({type:"int",name:"appFeatureTypeId",primary:!0}),n("design:type",Number)],et.prototype,"appFeatureTypeId",void 0),a([e.ManyToOne((()=>y),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],et.prototype,"appFeatureType",void 0),a([e.Column({type:"int",name:"entityId",primary:!0}),n("design:type",Number)],et.prototype,"entityId",void 0),a([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],et.prototype,"statusId",void 0),et=a([e.Entity("clientAppFeature",{schema:"nova"})],et);let tt=class{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels};a([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],tt.prototype,"clientId",void 0),a([e.Column("double",{name:"movementTripThreshold",nullable:!0}),n("design:type",Number)],tt.prototype,"movementTripThreshold",void 0),a([e.Column("double",{name:"stopTripThreshold",nullable:!0}),n("design:type",Number)],tt.prototype,"stopTripThreshold",void 0),a([e.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),n("design:type",Number)],tt.prototype,"mapUpdateMode",void 0),a([e.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),n("design:type",Number)],tt.prototype,"maxUsersAllowed",void 0),a([e.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),n("design:type",String)],tt.prototype,"ssoDomain",void 0),a([e.Column("json",{name:"ssoMetadata",nullable:!0}),n("design:type",Object)],tt.prototype,"ssoMetadata",void 0),a([e.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),n("design:type",Object)],tt.prototype,"assetProfileStatusLabels",void 0),tt=a([e.Entity("clientConfiguration",{schema:"nova"}),e.Index("ssoDomain",["ssoDomain"],{unique:!0})],tt);let it=class{id;clientId;imei;movingPingFrequency;stoppedPingFrequency;fixedStatus;generateTrips;stopThresholdMinutes;offlineThresholdMinutes;movementThresholdSpeed;externalBatteryInformation;reportingMode;starterInterruptInstalled};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],it.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],it.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],it.prototype,"imei",void 0),a([e.Column("mediumint",{name:"movingPingFrequency",nullable:!0}),n("design:type",Number)],it.prototype,"movingPingFrequency",void 0),a([e.Column("mediumint",{name:"stoppedPingFrequency",nullable:!0}),n("design:type",Number)],it.prototype,"stoppedPingFrequency",void 0),a([e.Column("varchar",{name:"fixedStatus",nullable:!0,length:3}),n("design:type",String)],it.prototype,"fixedStatus",void 0),a([e.Column("tinyint",{name:"generateTrips",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],it.prototype,"generateTrips",void 0),a([e.Column("smallint",{name:"stopThresholdMinutes",nullable:!0}),n("design:type",Number)],it.prototype,"stopThresholdMinutes",void 0),a([e.Column("smallint",{name:"offlineThresholdMinutes",nullable:!0}),n("design:type",Number)],it.prototype,"offlineThresholdMinutes",void 0),a([e.Column("float",{name:"movementThresholdSpeed",nullable:!0}),n("design:type",Number)],it.prototype,"movementThresholdSpeed",void 0),a([e.Column("tinyint",{name:"externalBatteryInformation",nullable:!0,width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],it.prototype,"externalBatteryInformation",void 0),a([e.Column("varchar",{length:30,nullable:!0,default:""}),n("design:type",String)],it.prototype,"reportingMode",void 0),a([e.Column("tinyint",{name:"starterInterruptInstalled",width:1,default:()=>"'0'",transformer:new p,nullable:!0}),n("design:type",Boolean)],it.prototype,"starterInterruptInstalled",void 0),it=a([e.Index("ixuUserDeviceSettingClientIdImei",["clientId","imei"],{unique:!0}),e.Index("ixClientDeviceSettingImei",["imei"],{}),e.Entity("clientDeviceSetting",{schema:"nova"})],it);let rt=class{id;clientId;userActivationId;tokenUrl;fleetUrl;requestParams;isEnabled;systemName;synchroParams};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],rt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],rt.prototype,"clientId",void 0),a([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],rt.prototype,"userActivationId",void 0),a([e.Column("varchar",{name:"tokenUrl",length:250}),n("design:type",String)],rt.prototype,"tokenUrl",void 0),a([e.Column("varchar",{name:"fleetUrl",length:250}),n("design:type",String)],rt.prototype,"fleetUrl",void 0),a([e.Column("json",{name:"requestParams"}),n("design:type",Object)],rt.prototype,"requestParams",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p,default:()=>"'1'"}),n("design:type",Boolean)],rt.prototype,"isEnabled",void 0),a([e.Column("varchar",{name:"systemName",length:250,default:"aemp"}),n("design:type",String)],rt.prototype,"systemName",void 0),a([e.Column("json",{name:"synchroParams",nullable:!0}),n("design:type",Object)],rt.prototype,"synchroParams",void 0),rt=a([e.Index("ixClientIngestorConfigurationClientId",["clientId"],{}),e.Entity("clientIngestorConfiguration",{schema:"nova"})],rt);let at=class{id;clientId;createdAt;completedAt;dataType;status;parameters;exportLocation;downloadLink;imei;client};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],at.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],at.prototype,"clientId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],at.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],at.prototype,"completedAt",void 0),a([e.Column("varchar",{name:"dataType",length:100,nullable:!0}),n("design:type",String)],at.prototype,"dataType",void 0),a([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],at.prototype,"status",void 0),a([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],at.prototype,"parameters",void 0),a([e.Column("varchar",{name:"exportLocation",length:500,nullable:!0}),n("design:type",String)],at.prototype,"exportLocation",void 0),a([e.Column("varchar",{name:"downloadLink",length:3e3,nullable:!0}),n("design:type",String)],at.prototype,"downloadLink",void 0),a([e.Column("varchar",{name:"imei",length:16,nullable:!0}),n("design:type",String)],at.prototype,"imei",void 0),a([e.OneToOne((()=>ce),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],at.prototype,"client",void 0),at=a([e.Entity("dataExport",{schema:"nova"})],at);let nt=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],nt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],nt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"description",void 0),nt=a([e.Entity("dataSourceType",{schema:"nova"})],nt);let ot=class{id;imei;clientId;billingSubscriptionId;planId;billingPlatform;deactivationReason;deactivationReasonId;createdBy;createdAt;scheduledDate;displayOrder};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ot.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ot.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ot.prototype,"clientId",void 0),a([e.Column("varchar",{name:"billingSubscriptionId",length:50,nullable:!0}),n("design:type",String)],ot.prototype,"billingSubscriptionId",void 0),a([e.Column("varchar",{name:"planId",length:50,nullable:!0}),n("design:type",String)],ot.prototype,"planId",void 0),a([e.Column("varchar",{name:"billingPlatform",length:100,nullable:!0}),n("design:type",String)],ot.prototype,"billingPlatform",void 0),a([e.Column("varchar",{name:"deactivationReason",nullable:!0,length:2e3}),n("design:type",String)],ot.prototype,"deactivationReason",void 0),a([e.Column("tinyint",{name:"deactivationReasonId",nullable:!0}),n("design:type",Number)],ot.prototype,"deactivationReasonId",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],ot.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ot.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"scheduledDate",nullable:!0}),n("design:type",Date)],ot.prototype,"scheduledDate",void 0),a([e.Column("tinyint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],ot.prototype,"displayOrder",void 0),ot=a([e.Index("ixDeactivationClientId",["clientId"],{}),e.Index("ixDeactivationBillingSubscriptionIdDeactivationReasonId",["billingSubscriptionId","deactivationReasonId"],{}),e.Index("ixDeactivationDeactivationReasonId",["deactivationReasonId"],{}),e.Index("ixDeactivationImei",["imei"],{}),e.Entity("deactivation",{schema:"nova"})],ot);let st=class{id;text;code;customerVisible};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],st.prototype,"id",void 0),a([e.Column("varchar",{name:"text",length:255}),n("design:type",String)],st.prototype,"text",void 0),a([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],st.prototype,"code",void 0),a([e.Column("tinyint",{name:"customerVisible",width:1,default:()=>"'1'"}),n("design:type",Boolean)],st.prototype,"customerVisible",void 0),st=a([e.Entity("deactivationReason",{schema:"nova"})],st);let lt=class{id;deviceTypeId;name;description;type;status;behaviorName;behaviorParams;extraParams;pendingNotes;clientId;imei;icon;confirmationNotes;ordinalPosition;stage;additionalSettings;blocking;displayType;minWebVersion;minAppVersion;minProtocolVersion;maxProtocolVersion;isACKBehavior};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],lt.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],lt.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],lt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],lt.prototype,"description",void 0),a([e.Column("varchar",{name:"type",nullable:!0,length:25}),n("design:type",String)],lt.prototype,"type",void 0),a([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],lt.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],lt.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],lt.prototype,"behaviorParams",void 0),a([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],lt.prototype,"extraParams",void 0),a([e.Column("varchar",{name:"pendingNotes",nullable:!0,length:1e3}),n("design:type",String)],lt.prototype,"pendingNotes",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],lt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],lt.prototype,"imei",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],lt.prototype,"icon",void 0),a([e.Column("varchar",{name:"confirmationNotes",nullable:!0,length:1e3}),n("design:type",String)],lt.prototype,"confirmationNotes",void 0),a([e.Column("tinyint",{name:"ordinalPosition",default:()=>"'1'"}),n("design:type",Number)],lt.prototype,"ordinalPosition",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],lt.prototype,"stage",void 0),a([e.Column("json",{name:"additionalSettings",nullable:!0}),n("design:type",Object)],lt.prototype,"additionalSettings",void 0),a([e.Column("tinyint",{name:"blocking",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],lt.prototype,"blocking",void 0),a([e.Column("varchar",{name:"displayType",nullable:!0,length:25}),n("design:type",String)],lt.prototype,"displayType",void 0),a([e.Column("varchar",{name:"minWebVersion",nullable:!0,length:20}),n("design:type",String)],lt.prototype,"minWebVersion",void 0),a([e.Column("varchar",{name:"minAppVersion",nullable:!0,length:20}),n("design:type",String)],lt.prototype,"minAppVersion",void 0),a([e.Column("varchar",{name:"minProtocolVersion",nullable:!0}),n("design:type",String)],lt.prototype,"minProtocolVersion",void 0),a([e.Column("varchar",{name:"maxProtocolVersion",nullable:!0}),n("design:type",String)],lt.prototype,"maxProtocolVersion",void 0),a([e.Column("tinyint",{name:"isACKBehavior",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],lt.prototype,"isACKBehavior",void 0),lt=a([e.Index("ixDeviceBehaviorDeviceTypeId",["deviceTypeId"],{}),e.Index("ixDeviceBehaviorClientId",["clientId"],{}),e.Index("ixDeviceBehaviorImei",["imei"],{}),e.Index("ixDeviceBehaviorType",["type"],{}),e.Index("ixDeviceBehaviorOrdinalPosition",["ordinalPosition"],{}),e.Entity("deviceBehavior",{schema:"nova"})],lt);let dt=class{id;clientId;deviceId;deviceBleMeshId;status;behaviorName;behaviorParams;createdAt;modifiedAt;device;deviceBleMesh};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],dt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],dt.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],dt.prototype,"deviceId",void 0),a([e.Column("int",{name:"deviceBleMeshId"}),n("design:type",Number)],dt.prototype,"deviceBleMeshId",void 0),a([e.Column("varchar",{name:"status",length:100}),n("design:type",String)],dt.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",nullable:!0,length:100}),n("design:type",String)],dt.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],dt.prototype,"behaviorParams",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],dt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],dt.prototype,"modifiedAt",void 0),a([e.OneToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],dt.prototype,"device",void 0),a([e.OneToOne((()=>Ee),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],dt.prototype,"deviceBleMesh",void 0),dt=a([e.Index("ixDeviceBleMeshUpdateTask_clientId_modifiedAt",["clientId","modifiedAt"],{}),e.Entity("deviceBleMeshUpdateTask",{schema:"nova"})],dt);let ut=class{id;code;name;bitPosition};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ut.prototype,"id",void 0),a([e.Column("varchar",{name:"code",length:2}),n("design:type",String)],ut.prototype,"code",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ut.prototype,"name",void 0),a([e.Column("smallint",{name:"bitPosition",nullable:!0}),n("design:type",Number)],ut.prototype,"bitPosition",void 0),ut=a([e.Index("ixCode",["code"],{unique:!0}),e.Entity("deviceCameraMediaEventType",{schema:"nova"})],ut);let ct=class{id;commandSequenceNumber;clientId;imei;cameraSource;createdAt;status;receivedFileName;requestedBy;requestedByUser};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ct.prototype,"id",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],ct.prototype,"commandSequenceNumber",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ct.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ct.prototype,"imei",void 0),a([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],ct.prototype,"cameraSource",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ct.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],ct.prototype,"status",void 0),a([e.Column("varchar",{name:"receivedFileName",nullable:!0}),n("design:type",String)],ct.prototype,"receivedFileName",void 0),a([e.Column("binary",{name:"requestedBy",length:16,transformer:re}),n("design:type",String)],ct.prototype,"requestedBy",void 0),a([e.OneToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],ct.prototype,"requestedByUser",void 0),ct=a([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Index("ix_commandSequenceNumber",["commandSequenceNumber"],{unique:!0}),e.Entity("deviceCameraRequestedPictureData",{schema:"nova"})],ct);let pt=class{id;commandSequenceNumber;clientId;imei;startTime;duration;cameraSource;createdAt;totalFilesCount;receivedFilesCount;receivedFiles;status;resultFileName;requestedBy;requestedByUser};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pt.prototype,"id",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],pt.prototype,"commandSequenceNumber",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],pt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],pt.prototype,"imei",void 0),a([e.Column("datetime",{name:"startTime"}),n("design:type",Date)],pt.prototype,"startTime",void 0),a([e.Column("int",{name:"duration"}),n("design:type",Number)],pt.prototype,"duration",void 0),a([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],pt.prototype,"cameraSource",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],pt.prototype,"createdAt",void 0),a([e.Column("int",{name:"totalFilesCount",nullable:!0,default:0}),n("design:type",Number)],pt.prototype,"totalFilesCount",void 0),a([e.Column("int",{name:"receivedFilesCount",nullable:!0,default:0}),n("design:type",Number)],pt.prototype,"receivedFilesCount",void 0),a([e.Column("json",{name:"receivedFiles",nullable:!0}),n("design:type",Array)],pt.prototype,"receivedFiles",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],pt.prototype,"status",void 0),a([e.Column("varchar",{name:"resultFileName",nullable:!0}),n("design:type",String)],pt.prototype,"resultFileName",void 0),a([e.Column("binary",{name:"requestedBy",length:16,transformer:re}),n("design:type",String)],pt.prototype,"requestedBy",void 0),a([e.OneToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],pt.prototype,"requestedByUser",void 0),pt=a([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Index("ix_commandSequenceNumber",["commandSequenceNumber"],{unique:!0}),e.Entity("deviceCameraRequestedVideoData",{schema:"nova"})],pt);let mt=class{clientId;imei;mediaFileName;s3FilesPath;thumbnailsFileName;lat;lon;address;messageId;eventTypeId;mediaType;cameraSource;mediaLocation;eventType;createdAt;tripId;requestedVideoDataId;requestedVideoData;requestedPictureDataId;requestedPictureData};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],mt.prototype,"clientId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],mt.prototype,"imei",void 0),a([e.PrimaryColumn("varchar",{name:"mediaFileName",length:255}),n("design:type",String)],mt.prototype,"mediaFileName",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],mt.prototype,"s3FilesPath",void 0),a([e.Column("varchar",{name:"thumbnailsFileName",nullable:!0,length:255}),n("design:type",String)],mt.prototype,"thumbnailsFileName",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],mt.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],mt.prototype,"lon",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],mt.prototype,"address",void 0),a([e.Column("binary",{name:"messageId",nullable:!0,length:16}),n("design:type",Buffer)],mt.prototype,"messageId",void 0),a([e.Column("smallint",{name:"eventTypeId",nullable:!0}),n("design:type",Number)],mt.prototype,"eventTypeId",void 0),a([e.Column("enum",{name:"mediaType",nullable:!0,enum:Object.values(F),comment:"The type of the media: image or video"}),n("design:type",String)],mt.prototype,"mediaType",void 0),a([e.Column("enum",{name:"cameraSource",nullable:!0,enum:Object.values(Q),comment:"The camera source: front or interior"}),n("design:type",String)],mt.prototype,"cameraSource",void 0),a([e.Column("enum",{name:"mediaLocation",enum:Object.values(q),default:"sdCard",comment:"The location of the media: sdCard or server"}),n("design:type",String)],mt.prototype,"mediaLocation",void 0),a([e.OneToOne((()=>ut),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"eventTypeId",referencedColumnName:"id"}),n("design:type",Object)],mt.prototype,"eventType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],mt.prototype,"createdAt",void 0),a([e.Column("binary",{name:"tripId",length:16,transformer:re,nullable:!0}),n("design:type",String)],mt.prototype,"tripId",void 0),a([e.Column("int",{name:"requestedVideoDataId",nullable:!0}),n("design:type",Number)],mt.prototype,"requestedVideoDataId",void 0),a([e.OneToOne((()=>pt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedVideoDataId",referencedColumnName:"id"}),n("design:type",Object)],mt.prototype,"requestedVideoData",void 0),a([e.Column("int",{name:"requestedPictureDataId",nullable:!0}),n("design:type",Number)],mt.prototype,"requestedPictureDataId",void 0),a([e.OneToOne((()=>ct),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedPictureDataId",referencedColumnName:"id"}),n("design:type",Object)],mt.prototype,"requestedPictureData",void 0),mt=a([e.Index("ixClientIdImeiCreatedAt",["clientId","imei","createdAt"],{}),e.Index("ixDeviceCameraMedia_TripId",["tripId"]),e.Entity("deviceCameraMedia",{schema:"nova"})],mt);let gt=class{imei;cameraSource;mediaLiveInputId;mediaLiveChannelId;rtmpServerUrl;rtmpStreamKey;outputUrl;status;commandSequenceNumber;lastRequestedAt;lastRequestedBy;lastRequestedByUser};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],gt.prototype,"imei",void 0),a([e.PrimaryColumn("enum",{name:"cameraSource",enum:Object.values(Q),comment:"The camera source: front or interior"}),n("design:type",String)],gt.prototype,"cameraSource",void 0),a([e.Column("varchar",{name:"mediaLiveInputId",length:50,nullable:!0}),n("design:type",String)],gt.prototype,"mediaLiveInputId",void 0),a([e.Column("varchar",{name:"mediaLiveChannelId",length:50,nullable:!0}),n("design:type",String)],gt.prototype,"mediaLiveChannelId",void 0),a([e.Column("varchar",{name:"rtmpServerUrl",length:100,nullable:!0}),n("design:type",String)],gt.prototype,"rtmpServerUrl",void 0),a([e.Column("varchar",{name:"rtmpStreamKey",length:20,nullable:!0}),n("design:type",String)],gt.prototype,"rtmpStreamKey",void 0),a([e.Column("varchar",{name:"outputUrl",length:255,nullable:!0}),n("design:type",String)],gt.prototype,"outputUrl",void 0),a([e.Column("enum",{name:"status",enum:Object.values(_),nullable:!0}),n("design:type",String)],gt.prototype,"status",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],gt.prototype,"commandSequenceNumber",void 0),a([e.Column("datetime",{name:"lastRequestedAt",nullable:!0}),n("design:type",Date)],gt.prototype,"lastRequestedAt",void 0),a([e.Column("binary",{name:"lastRequestedBy",length:16,transformer:re,nullable:!0}),n("design:type",String)],gt.prototype,"lastRequestedBy",void 0),a([e.OneToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"lastRequestedBy",referencedColumnName:"id"}),n("design:type",Object)],gt.prototype,"lastRequestedByUser",void 0),gt=a([e.Entity("deviceCameraMediaStreamingData",{schema:"nova"})],gt);let yt=class{imei;startTime;endTime;status;retries;totalFrames;syncedFrames;commandSequenceNumber;updatedAt;syncedFrameIds};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],yt.prototype,"imei",void 0),a([e.PrimaryColumn("datetime",{name:"startTime"}),n("design:type",Date)],yt.prototype,"startTime",void 0),a([e.PrimaryColumn("datetime",{name:"endTime"}),n("design:type",Date)],yt.prototype,"endTime",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],yt.prototype,"status",void 0),a([e.Column("int",{name:"retries",default:0}),n("design:type",Number)],yt.prototype,"retries",void 0),a([e.Column("int",{name:"totalFrames",default:0}),n("design:type",Number)],yt.prototype,"totalFrames",void 0),a([e.Column("int",{name:"syncedFrames",default:0}),n("design:type",Number)],yt.prototype,"syncedFrames",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],yt.prototype,"commandSequenceNumber",void 0),a([e.Column("datetime",{name:"updatedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],yt.prototype,"updatedAt",void 0),a([e.Column("json",{name:"syncedFrameIds",nullable:!0}),n("design:type",Array)],yt.prototype,"syncedFrameIds",void 0),yt=a([e.Index("ixDeviceCameraMediaSyncStatus_imei_status_updatedAt",["imei","status","updatedAt"],{}),e.Entity("deviceCameraMediaSyncStatus",{schema:"nova"})],yt);let vt=class{id;clientId;imei;assignedTo;startDate;endDate};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],vt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],vt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],vt.prototype,"imei",void 0),a([e.Column("varchar",{name:"assignedTo",length:255}),n("design:type",String)],vt.prototype,"assignedTo",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],vt.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],vt.prototype,"endDate",void 0),vt=a([e.Index("ixuDeviceChangesHistoryClientIdImei",["clientId","imei"]),e.Entity("deviceChangesHistory",{schema:"nova"})],vt);let ht=class{clientId;imei;eventBehaviorType;eventsConfiguration;pendingEventsConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ht.prototype,"clientId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ht.prototype,"imei",void 0),a([e.PrimaryColumn("enum",{name:"eventBehaviorType",enum:Object.values(W)}),n("design:type",String)],ht.prototype,"eventBehaviorType",void 0),a([e.Column("json",{name:"eventsConfiguration",nullable:!0}),n("design:type",Array)],ht.prototype,"eventsConfiguration",void 0),a([e.Column("json",{name:"pendingEventsConfiguration",nullable:!0}),n("design:type",Array)],ht.prototype,"pendingEventsConfiguration",void 0),a([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],ht.prototype,"updateConfigPendingCommandId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ht.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ht.prototype,"modifiedAt",void 0),ht=a([e.Entity("deviceEventsTriggerConfiguration",{schema:"nova"})],ht);let ft=class{id;clientId;imei;trackerName;status;createAt};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",String)],ft.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],ft.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ft.prototype,"imei",void 0),a([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],ft.prototype,"trackerName",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ft.prototype,"status",void 0),a([e.Column("datetime",{name:"createAt",nullable:!0}),n("design:type",Date)],ft.prototype,"createAt",void 0),ft=a([e.Entity("deviceHistory",{schema:"nova"})],ft);let It=class{id;url;portNumber;protocol;deviceTypeId;status};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],It.prototype,"id",void 0),a([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],It.prototype,"url",void 0),a([e.Column("smallint",{name:"portNumber",nullable:!0}),n("design:type",Number)],It.prototype,"portNumber",void 0),a([e.Column("varchar",{name:"protocol",nullable:!0,length:5}),n("design:type",String)],It.prototype,"protocol",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],It.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],It.prototype,"status",void 0),It=a([e.Entity("deviceModelListener",{schema:"nova"})],It);let Ct=class{id;imeiMain;btmacMain;imeiSecondary;btmacSecondary;pairingMode;connectionType;mainDeviceStatus;secondaryDeviceStatus;notes;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ct.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],Ct.prototype,"imeiMain",void 0),a([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],Ct.prototype,"btmacMain",void 0),a([e.Column("varchar",{name:"imeiSecondary",length:15}),n("design:type",String)],Ct.prototype,"imeiSecondary",void 0),a([e.Column("varchar",{name:"btmacSecondary",length:20}),n("design:type",String)],Ct.prototype,"btmacSecondary",void 0),a([e.Column("varchar",{name:"pairingMode",nullable:!0,length:20}),n("design:type",String)],Ct.prototype,"pairingMode",void 0),a([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],Ct.prototype,"connectionType",void 0),a([e.Column("varchar",{name:"mainDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],Ct.prototype,"mainDeviceStatus",void 0),a([e.Column("varchar",{name:"secondaryDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],Ct.prototype,"secondaryDeviceStatus",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],Ct.prototype,"notes",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ct.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ct.prototype,"modifiedAt",void 0),Ct=a([e.Index("ixDevicePairingImeiSecondary",["imeiSecondary"],{}),e.Index("ixuDevicePairingImeiMainImeiSecondary",["imeiMain","imeiSecondary"],{unique:!0}),e.Entity("devicePairing",{schema:"nova"})],Ct);let bt=class{id;imeiOld;iccidOld;imeiNew;iccidNew;userId;clientId;createAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],bt.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiOld",length:15}),n("design:type",String)],bt.prototype,"imeiOld",void 0),a([e.Column("varchar",{name:"iccidOld",length:25}),n("design:type",String)],bt.prototype,"iccidOld",void 0),a([e.Column("varchar",{name:"imeiNew",length:15}),n("design:type",String)],bt.prototype,"imeiNew",void 0),a([e.Column("varchar",{name:"iccidNew",length:25}),n("design:type",String)],bt.prototype,"iccidNew",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],bt.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],bt.prototype,"clientId",void 0),a([e.Column("datetime",{name:"createAt"}),n("design:type",Date)],bt.prototype,"createAt",void 0),bt=a([e.Index("ixDeviceReplacementClientId",["clientId"],{}),e.Index("ixDeviceReplacementImeiOld",["imeiOld"],{}),e.Entity("deviceReplacement",{schema:"nova"})],bt);let St=class{imei;clientId;created;sendTime;data;client;device;clientDeviceSetting};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],St.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],St.prototype,"clientId",void 0),a([e.Column("datetime",{name:"created"}),n("design:type",Date)],St.prototype,"created",void 0),a([e.Column("datetime",{name:"sendTime"}),n("design:type",Date)],St.prototype,"sendTime",void 0),a([e.Column("json",{name:"data",nullable:!0}),n("design:type",Object)],St.prototype,"data",void 0),a([e.OneToOne((()=>ce),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"clientId",referencedColumnName:"id"}),n("design:type",ce)],St.prototype,"client",void 0),St=a([e.Index("ixDeviceStatusClientId_SendTime",["clientId","sendTime"],{}),e.Index("ixDeviceStatusSendTime",["sendTime"],{}),e.Index("ixDeviceStatusCreated",["created"],{}),e.Entity("deviceStatus",{schema:"nova"})],St);let Rt=class{id;clientId;title;description;repeats;dueDate;dueOdometer;dueActiveHours;intervalDays;intervalStartDate;intervalOdometer;intervalStartingOdometer;intervalActiveHours;intervalStartingActiveHours;notes;createdBy;createdAt;modifiedBy;modifiedAt;deletedBy;deletedAt;status;assignedTo;deviceTasks;totalDevicesCount};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Rt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Rt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"title",length:50}),n("design:type",String)],Rt.prototype,"title",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Rt.prototype,"description",void 0),a([e.Column("tinyint",{name:"repeats",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Rt.prototype,"repeats",void 0),a([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],Rt.prototype,"dueDate",void 0),a([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],Rt.prototype,"dueOdometer",void 0),a([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],Rt.prototype,"dueActiveHours",void 0),a([e.Column("double",{name:"intervalDays",nullable:!0}),n("design:type",Number)],Rt.prototype,"intervalDays",void 0),a([e.Column("datetime",{name:"intervalStartDate",nullable:!0}),n("design:type",Date)],Rt.prototype,"intervalStartDate",void 0),a([e.Column("double",{name:"intervalOdometer",nullable:!0}),n("design:type",Number)],Rt.prototype,"intervalOdometer",void 0),a([e.Column("double",{name:"intervalStartingOdometer",nullable:!0}),n("design:type",Number)],Rt.prototype,"intervalStartingOdometer",void 0),a([e.Column("double",{name:"intervalActiveHours",nullable:!0}),n("design:type",Number)],Rt.prototype,"intervalActiveHours",void 0),a([e.Column("double",{name:"intervalStartingActiveHours",nullable:!0}),n("design:type",Number)],Rt.prototype,"intervalStartingActiveHours",void 0),a([e.Column("text",{name:"notes",nullable:!0}),n("design:type",String)],Rt.prototype,"notes",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],Rt.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Rt.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],Rt.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Rt.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],Rt.prototype,"deletedBy",void 0),a([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],Rt.prototype,"deletedAt",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],Rt.prototype,"status",void 0),a([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],Rt.prototype,"assignedTo",void 0),a([e.OneToMany((()=>Dt),(e=>e.taskSchedule)),n("design:type",Array)],Rt.prototype,"deviceTasks",void 0),Rt=a([e.Index("ixTaskScheduleClientId",["clientId"],{}),e.Index("ixTaskScheduleStatus",["status"],{}),e.Entity("taskSchedule",{schema:"nova"})],Rt);let Dt=class{taskScheduleId;imei;clientId;taskSchedule};a([e.Column({type:"int",primary:!0,name:"taskScheduleId"}),n("design:type",Number)],Dt.prototype,"taskScheduleId",void 0),a([e.Column("varchar",{name:"imei",primary:!0,length:15}),n("design:type",String)],Dt.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Dt.prototype,"clientId",void 0),a([e.OneToOne((()=>Rt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Dt.prototype,"taskSchedule",void 0),Dt=a([e.Index("ixDeviceTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixDeviceTask_ClientId",["clientId"],{}),e.Index("ixDeviceTask_Imei",["imei"],{}),e.Entity("deviceTask",{schema:"nova"})],Dt);let wt=class{deviceTypeId;featureKey;value};a([e.Column("smallint",{primary:!0,name:"deviceTypeId"}),n("design:type",Number)],wt.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{primary:!0,name:"featureKey",length:50}),n("design:type",String)],wt.prototype,"featureKey",void 0),a([e.Column("varchar",{name:"value",nullable:!0,length:255}),n("design:type",String)],wt.prototype,"value",void 0),wt=a([e.Index("ixDeviceTypeFeatureFeatureKey",["featureKey"],{}),e.Entity("deviceTypeFeature",{schema:"nova"})],wt);let At=class{id;deviceTypeId;deviceType;sourceFirmwareVersion;firmwareVersion;firmwareCode;firmwareUrl;releaseDate;description;enabled;upgradeType;postUpgradeConfig;stage;parentId;maxDeployPercentage;qmsRate;pendingTimeout;forceSMS;MCUFirmwareVersion;sourceMCUFirmwareVersion;sourceBTFirmwareVersion;BTFirmwareVersion;sourceModemFirmwareVersion;modemFirmwareVersion};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],At.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],At.prototype,"deviceTypeId",void 0),a([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],At.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"sourceFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"sourceFirmwareVersion",void 0),a([e.Column("varchar",{name:"firmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"firmwareVersion",void 0),a([e.Column("varchar",{name:"firmwareCode",nullable:!0,length:50}),n("design:type",String)],At.prototype,"firmwareCode",void 0),a([e.Column("varchar",{name:"firmwareUrl",nullable:!0,length:1e3}),n("design:type",String)],At.prototype,"firmwareUrl",void 0),a([e.Column("datetime",{name:"releaseDate",nullable:!0}),n("design:type",Date)],At.prototype,"releaseDate",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],At.prototype,"description",void 0),a([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],At.prototype,"enabled",void 0),a([e.Column("varchar",{name:"upgradeType",nullable:!0,length:25}),n("design:type",String)],At.prototype,"upgradeType",void 0),a([e.Column("varchar",{name:"postUpgradeConfig",nullable:!0,length:1e3}),n("design:type",String)],At.prototype,"postUpgradeConfig",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:25}),n("design:type",String)],At.prototype,"stage",void 0),a([e.Column({type:"mediumint",name:"parentId",nullable:!0}),n("design:type",Number)],At.prototype,"parentId",void 0),a([e.Column("smallint",{name:"maxDeployPercentage",nullable:!0}),n("design:type",Number)],At.prototype,"maxDeployPercentage",void 0),a([e.Column({type:"smallint",name:"qmsRate",nullable:!0}),n("design:type",Number)],At.prototype,"qmsRate",void 0),a([e.Column({type:"smallint",name:"pendingTimeout",nullable:!0}),n("design:type",Number)],At.prototype,"pendingTimeout",void 0),a([e.Column("tinyint",{name:"forceSMS",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],At.prototype,"forceSMS",void 0),a([e.Column("varchar",{name:"MCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"MCUFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceMCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"sourceMCUFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceBTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"sourceBTFirmwareVersion",void 0),a([e.Column("varchar",{name:"BTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"BTFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceModemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"sourceModemFirmwareVersion",void 0),a([e.Column("varchar",{name:"modemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],At.prototype,"modemFirmwareVersion",void 0),At=a([e.Index("ixDeviceTypeFirmwareDeviceTypeId",["deviceTypeId"],{}),e.Entity("deviceTypeFirmware",{schema:"nova"})],At);let Tt=class{id;name;isBusiness};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Tt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100,nullable:!0}),n("design:type",String)],Tt.prototype,"name",void 0),a([e.Column("tinyint",{name:"isBusiness",nullable:!0,width:1,default:0,transformer:new p}),n("design:type",Boolean)],Tt.prototype,"isBusiness",void 0),Tt=a([e.Entity("emailDomain",{schema:"nova"})],Tt);let Nt=class{id;tagId;clientId;entityType;entityId;metadata;createdBy;createdAt;modifiedBy;modifiedAt;userId;imei;isSecurityGroup};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Nt.prototype,"id",void 0),a([e.Column("int",{name:"tagId"}),n("design:type",Number)],Nt.prototype,"tagId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Nt.prototype,"clientId",void 0),a([e.Column("enum",{enum:["Device","Boundary","User","UserInvitation","ClientAlertConfiguration","LiveLink"],name:"entityType"}),n("design:type",String)],Nt.prototype,"entityType",void 0),a([e.Column("int",{name:"entityId"}),n("design:type",Number)],Nt.prototype,"entityId",void 0),a([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",String)],Nt.prototype,"metadata",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],Nt.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Nt.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],Nt.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Nt.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],Nt.prototype,"userId",void 0),a([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],Nt.prototype,"imei",void 0),a([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Nt.prototype,"isSecurityGroup",void 0),Nt=a([e.Index("ixEntityTagEntityType",["entityType"],{}),e.Index("ixEntityTagEntityId",["entityId"],{}),e.Index("ixEntityTagTagId",["tagId"],{}),e.Index("ixEntityTagClientId",["clientId"],{}),e.Index("ixEntityTagImeiIsSecurityGroupTagId",["imei","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagUserIdIsSecurityGroupTagId",["userId","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagUserIdEntityTypeIsSecurityGroupTagId",["userId","entityType","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagEntityIdEntityTypeIsSecurityGroupTagId",["entityId","entityType","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagClientIdEntityIdTagIdEntityType",["clientId","entityId","tagId","entityType"],{unique:!0}),e.Entity("entityTag",{schema:"nova"})],Nt);let Bt=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Bt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Bt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],Bt.prototype,"description",void 0),Bt=a([e.Entity("entityType",{schema:"nova"})],Bt);let Ut=class{key;name;description;tags};a([e.Column("varchar",{primary:!0,name:"key",length:50}),n("design:type",String)],Ut.prototype,"key",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ut.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Ut.prototype,"description",void 0),a([e.Column("varchar",{name:"tags",nullable:!0,length:500}),n("design:type",String)],Ut.prototype,"tags",void 0),Ut=a([e.Entity("feature",{schema:"nova"})],Ut);let Et=class{id;clientId;deviceTypeId;imei};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Et.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Et.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],Et.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],Et.prototype,"imei",void 0),Et=a([e.Index("ixFirmwareAutoUpgradeBlacklistClientId",["clientId"],{}),e.Index("ixuFirmwareAutoUpgradeBlacklistClientIdDeviceTypeId",["clientId","deviceTypeId"],{unique:!0}),e.Entity("firmwareAutoUpgradeBlacklist",{schema:"nova"})],Et);let Pt=class{id;deviceTypeFirmwareId;deviceTypeFirmware;clientId;imei;status;behaviorName;behaviorParams;createdAt;modifiedAt;preConfig;postConfig;commandsTaskId;postUpgradeCompleted;fwCompletedOn;device};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Pt.prototype,"id",void 0),a([e.Column("mediumint",{name:"deviceTypeFirmwareId"}),n("design:type",Number)],Pt.prototype,"deviceTypeFirmwareId",void 0),a([e.ManyToOne((()=>At),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Pt.prototype,"deviceTypeFirmware",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Pt.prototype,"imei",void 0),a([e.Column("varchar",{name:"status",length:40}),n("design:type",String)],Pt.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",nullable:!0,length:25}),n("design:type",String)],Pt.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Pt.prototype,"behaviorParams",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Pt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Pt.prototype,"modifiedAt",void 0),a([e.Column("text",{name:"preConfig",nullable:!0}),n("design:type",String)],Pt.prototype,"preConfig",void 0),a([e.Column("text",{name:"postConfig",nullable:!0}),n("design:type",String)],Pt.prototype,"postConfig",void 0),a([e.Column("varchar",{name:"commandsTaskId",nullable:!0,length:50}),n("design:type",String)],Pt.prototype,"commandsTaskId",void 0),a([e.Column("tinyint",{name:"postUpgradeCompleted",nullable:!0,width:1,default:0,transformer:new p}),n("design:type",Boolean)],Pt.prototype,"postUpgradeCompleted",void 0),a([e.Column("datetime",{name:"fwCompletedOn",nullable:!0}),n("design:type",Date)],Pt.prototype,"fwCompletedOn",void 0),Pt=a([e.Index("ixFirmwareUpgradeTaskDeviceTypeFirmwareId",["deviceTypeFirmwareId"],{}),e.Index("ixFirmwareUpgradeTaskDeviceTypeFirmwareIdModifiedAt",["deviceTypeFirmwareId","modifiedAt"],{}),e.Index("ixFirmwareUpgradeTaskImeiModifiedAt",["imei","modifiedAt"],{}),e.Index("ixFirmwareUpgradeTaskStatusEtc",["status","postUpgradeCompleted","deviceTypeFirmwareId","modifiedAt"],{}),e.Entity("firmwareUpgradeTask",{schema:"nova"})],Pt);let Mt=class{id;planId;name;description;consumer;modelFamily;model;planCode;price;totalPrice;billingInterval;annual;prepaid;legacy;test;validFrom;validUntil;createdAt;new;enabled};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Mt.prototype,"id",void 0),a([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],Mt.prototype,"planId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Mt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:256}),n("design:type",String)],Mt.prototype,"description",void 0),a([e.Column("varchar",{name:"consumer",length:30}),n("design:type",String)],Mt.prototype,"consumer",void 0),a([e.Column("varchar",{name:"modelFamily",length:30}),n("design:type",String)],Mt.prototype,"modelFamily",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:30}),n("design:type",String)],Mt.prototype,"model",void 0),a([e.Column("varchar",{name:"planCode",length:100}),n("design:type",String)],Mt.prototype,"planCode",void 0),a([e.Column("decimal",{name:"price",precision:19,scale:4}),n("design:type",Number)],Mt.prototype,"price",void 0),a([e.Column("decimal",{name:"totalPrice",precision:19,scale:4}),n("design:type",Number)],Mt.prototype,"totalPrice",void 0),a([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],Mt.prototype,"billingInterval",void 0),a([e.Column("tinyint",{name:"annual",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"annual",void 0),a([e.Column("tinyint",{name:"prepaid",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"prepaid",void 0),a([e.Column("tinyint",{name:"legacy",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"legacy",void 0),a([e.Column("tinyint",{name:"test",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"test",void 0),a([e.Column("date",{name:"validFrom",nullable:!0,transformer:new Ne}),n("design:type",Date)],Mt.prototype,"validFrom",void 0),a([e.Column("date",{name:"validUntil",nullable:!0,transformer:new Ne}),n("design:type",Date)],Mt.prototype,"validUntil",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Mt.prototype,"createdAt",void 0),a([e.Column("tinyint",{name:"new",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"new",void 0),a([e.Column("tinyint",{name:"enabled",width:1,transformer:new p}),n("design:type",Boolean)],Mt.prototype,"enabled",void 0),Mt=a([e.Index("ixuHistoricalBillingPlanPlanIdConsumerModelValidFromValidUntil",["planId","consumer","model","validFrom","validUntil"],{unique:!0}),e.Entity("historicalBillingPlan",{schema:"nova"})],Mt);let Ot=class{iccid;status;processing;carrierFound;modifiedAt};a([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],Ot.prototype,"iccid",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:100}),n("design:type",String)],Ot.prototype,"status",void 0),a([e.Column("tinyint",{name:"processing",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],Ot.prototype,"processing",void 0),a([e.Column("int",{name:"carrierFound",nullable:!0}),n("design:type",Number)],Ot.prototype,"carrierFound",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ot.prototype,"modifiedAt",void 0),Ot=a([e.Index("ixIccidStatusProcessing",["processing"],{}),e.Index("ixIccidStatusModifiedAt",["modifiedAt"],{}),e.Entity("iccidStatus",{schema:"nova"})],Ot);let xt=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;model;realModel;po;outOfInventory;apn;createdAt;modifiedAt;itsEsim;btmac;serviceProvider;deviceType};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],xt.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],xt.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],xt.prototype,"iccid",void 0),a([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],xt.prototype,"carrier",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],xt.prototype,"phone",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],xt.prototype,"deviceTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],xt.prototype,"serviceProviderProductId",void 0),a([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],xt.prototype,"isValid",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],xt.prototype,"model",void 0),a([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],xt.prototype,"realModel",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],xt.prototype,"po",void 0),a([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],xt.prototype,"outOfInventory",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],xt.prototype,"apn",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],xt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],xt.prototype,"modifiedAt",void 0),a([e.Column("tinyint",{name:"itsEsim",width:1,nullable:!0,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],xt.prototype,"itsEsim",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],xt.prototype,"btmac",void 0),xt=a([e.Index("ixImeiIccidCarrierCarrier",["carrier"],{}),e.Index("ixImeiIccidCarrierDeviceTypeId",["deviceTypeId"],{}),e.Index("ixImeiIccidCarrierIccid",["iccid"],{}),e.Index("ixImeiIccidCarrierImei",["imei"],{}),e.Index("ixImeiIccidCarrierModifiedAt",["modifiedAt"],{}),e.Index("ixImeiIccidCarrierProductId",["serviceProviderProductId"],{}),e.Entity("imeiIccidCarrier",{schema:"nova"})],xt);let kt=class{id;iccid;imei;carrier;lastUpdatedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],kt.prototype,"id",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],kt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],kt.prototype,"imei",void 0),a([e.Column("tinyint",{name:"carrier"}),n("design:type",Number)],kt.prototype,"carrier",void 0),a([e.Column("datetime",{name:"lastUpdatedAt"}),n("design:type",Date)],kt.prototype,"lastUpdatedAt",void 0),kt=a([e.Index("ixImeiIccidHistoryIccid",["iccid"],{}),e.Index("ixImeiIccidHistoryImei",["imei"],{}),e.Entity("imeiIccidHistory",{schema:"nova"})],kt);let Lt=class{imei;iccid;btmac};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Lt.prototype,"imei",void 0),a([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],Lt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Lt.prototype,"btmac",void 0),Lt=a([e.Entity("imeiIccidImport",{schema:"nova"})],Lt);let Ft=class{id;industry;mainIndustry;group;sector;displayName};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ft.prototype,"id",void 0),a([e.Column("varchar",{name:"industry",length:100}),n("design:type",String)],Ft.prototype,"industry",void 0),a([e.Column("varchar",{name:"mainIndustry",length:100}),n("design:type",String)],Ft.prototype,"mainIndustry",void 0),a([e.Column("varchar",{name:"group",length:100}),n("design:type",String)],Ft.prototype,"group",void 0),a([e.Column("varchar",{name:"sector",length:100}),n("design:type",String)],Ft.prototype,"sector",void 0),a([e.Column("varchar",{name:"displayName",nullable:!0,length:100}),n("design:type",String)],Ft.prototype,"displayName",void 0),Ft=a([e.Entity("industry",{schema:"nova"})],Ft);let Qt=class{imei;positionId;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Qt.prototype,"imei",void 0),a([e.Column({type:"bigint",name:"positionId"}),n("design:type",Number)],Qt.prototype,"positionId",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Qt.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Qt.prototype,"lon",void 0),a([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],Qt.prototype,"actualDate",void 0),a([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],Qt.prototype,"speed",void 0),a([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],Qt.prototype,"odometer",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],Qt.prototype,"createdAt",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],Qt.prototype,"messageId",void 0),a([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],Qt.prototype,"batteryPercentage",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Qt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Qt.prototype,"address",void 0),a([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],Qt.prototype,"sendTime",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],Qt.prototype,"gpsUtcTime",void 0),a([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],Qt.prototype,"externalBatteryPercentage",void 0),a([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],Qt.prototype,"externalPowerVoltage",void 0),a([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],Qt.prototype,"azimuth",void 0),a([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],Qt.prototype,"motionDetected",void 0),Qt=a([e.Index("ixuLatestPositionMessageId",["messageId"],{unique:!0}),e.Index("ixLatestPositionActualDate",["actualDate"],{}),e.Index("ixLatestPositionClientId",["clientId"],{}),e.Index("ixLatestPositionId",["positionId"]),e.Entity("latestPosition",{schema:"nova"})],Qt);let qt=class{id;userId;deviceOs;appVersion;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],qt.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],qt.prototype,"userId",void 0),a([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],qt.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],qt.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],qt.prototype,"createdAt",void 0),qt=a([e.Index("ixLatestUserAppInfoUserId",["userId"],{unique:!0}),e.Entity("latestUserAppInfo",{schema:"nova"})],qt);let Wt=class{id;liveLinkId;liveLink;fileName;fileExtension;s3FilesPath;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Wt.prototype,"id",void 0),a([e.Column("binary",{name:"liveLinkId",length:16,transformer:re}),n("design:type",String)],Wt.prototype,"liveLinkId",void 0),a([e.OneToOne((()=>_t),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"liveLinkId",referencedColumnName:"id"}),n("design:type",Object)],Wt.prototype,"liveLink",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],Wt.prototype,"fileName",void 0),a([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],Wt.prototype,"fileExtension",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],Wt.prototype,"s3FilesPath",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Wt.prototype,"createdAt",void 0),Wt=a([e.Index("ixu_liveLinkId_fileName",["liveLinkId","fileName"],{unique:!0}),e.Entity("liveLinkMedia",{schema:"nova"})],Wt);let _t=class{id;name;clientId;status;startDate;endDate;deviceAccess;devices;createdAt;createdBy;modifiedAt;modifiedBy;historyAccess;estimatedTheftValue;licensePlate;suspectDescription;medias;generateDefaults(){this.id||(this.id=t.v4()),this.createdAt||(this.createdAt=new Date),this.modifiedAt||(this.modifiedAt=new Date)}updateModifiedAt(){this.modifiedAt=new Date}};a([e.Column("binary",{primary:!0,name:"id",length:16,transformer:re}),n("design:type",String)],_t.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],_t.prototype,"name",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],_t.prototype,"clientId",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],_t.prototype,"status",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],_t.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],_t.prototype,"endDate",void 0),a([e.Column("varchar",{name:"deviceAccess"}),n("design:type",String)],_t.prototype,"deviceAccess",void 0),a([e.Column("json",{name:"devices",nullable:!0}),n("design:type",Object)],_t.prototype,"devices",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],_t.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],_t.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],_t.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],_t.prototype,"modifiedBy",void 0),a([e.Column("tinyint",{name:"historyAccess",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],_t.prototype,"historyAccess",void 0),a([e.Column("decimal",{name:"estimatedTheftValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],_t.prototype,"estimatedTheftValue",void 0),a([e.Column("varchar",{name:"licensePlate",nullable:!0,length:50}),n("design:type",String)],_t.prototype,"licensePlate",void 0),a([e.Column("varchar",{name:"suspectDescription",nullable:!0,length:255}),n("design:type",String)],_t.prototype,"suspectDescription",void 0),a([e.OneToMany((()=>Wt),(e=>e.liveLink)),n("design:type",Array)],_t.prototype,"medias",void 0),a([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],_t.prototype,"generateDefaults",null),a([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],_t.prototype,"updateModifiedAt",null),_t=a([e.Index("ixLiveLinkClientId",["clientId"],{}),e.Entity("liveLink",{schema:"nova"})],_t);let jt=class{id;clientId;userId;email;braintreeCustomerId;paymentMethodToken;subscriptionId;imei;syncType;status;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],jt.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],jt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"userId",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"userId",void 0),a([e.Column("varchar",{name:"email",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"email",void 0),a([e.Column("varchar",{name:"braintreeCustomerId",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"braintreeCustomerId",void 0),a([e.Column("varchar",{name:"paymentMethodToken",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"paymentMethodToken",void 0),a([e.Column("varchar",{name:"subscriptionId",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"imei",length:255,nullable:!0}),n("design:type",String)],jt.prototype,"imei",void 0),a([e.Column("enum",{enum:["CREATE_CUSTOMER","UPDATE_USER","UPDATE_CLIENT","AVALARA_EXEMPT","AVALARA_EXEMPT_REMOVE","AVALARA_ITEM","CREATE_DEVICE","REMOVE_DEVICE","UPDATE_DEVICE","SUSPEND_DEVICE","UNSUSPEND_DEVICE","CANCEL_DEVICE"],name:"syncType",nullable:!0}),n("design:type",String)],jt.prototype,"syncType",void 0),a([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],jt.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],jt.prototype,"createdAt",void 0),jt=a([e.Entity("m2Sync",{schema:"nova"})],jt);let zt=class{id;customerId;email;customerUpdatedAt;createdIn;firstName;lastName;middleName;postcode;prefix;region;street;city;telephone;countryId;company;btAccountId;phoneCode;phoneCodeCountryId;pinCode;stripeCustomerId;activationCreated;imei;deviceId;deviceType;deviceColor;btSubscriptionId;servicePlanId;billingInterval;status;orderId;deviceUpdatedAt;deviceCreatedAt;importedDevice;trackerName;trackerUse;deviceStatus;planCode;platformCode;platformName;stripeCreatedAt;stripeUpdatedAt;dateCaptured;cancelationReason;cancelationCreated;cancelationReactivated;clientId;itemsForRecovery;platform};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],zt.prototype,"id",void 0),a([e.Column("varchar",{name:"customerId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"customerId",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"email",void 0),a([e.Column("varchar",{name:"customerUpdatedAt",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"customerUpdatedAt",void 0),a([e.Column("varchar",{name:"createdIn",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"createdIn",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"lastName",void 0),a([e.Column("varchar",{name:"middleName",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"middleName",void 0),a([e.Column("varchar",{name:"postcode",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"postcode",void 0),a([e.Column("varchar",{name:"prefix",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"prefix",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"region",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"street",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"city",void 0),a([e.Column("varchar",{name:"telephone",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"telephone",void 0),a([e.Column("varchar",{name:"countryId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"countryId",void 0),a([e.Column("varchar",{name:"company",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"company",void 0),a([e.Column("varchar",{name:"btAccountId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"btAccountId",void 0),a([e.Column("varchar",{name:"phoneCode",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"phoneCode",void 0),a([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"phoneCodeCountryId",void 0),a([e.Column("varchar",{name:"pinCode",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"pinCode",void 0),a([e.Column("varchar",{name:"stripeCustomerId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"stripeCustomerId",void 0),a([e.Column("varchar",{name:"activationCreated",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"activationCreated",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"imei",void 0),a([e.Column("varchar",{name:"deviceId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"deviceColor",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceColor",void 0),a([e.Column("varchar",{name:"btSubscriptionId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"btSubscriptionId",void 0),a([e.Column("varchar",{name:"servicePlanId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"servicePlanId",void 0),a([e.Column("varchar",{name:"billingInterval",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"billingInterval",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"status",void 0),a([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"orderId",void 0),a([e.Column("varchar",{name:"deviceUpdatedAt",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceUpdatedAt",void 0),a([e.Column("varchar",{name:"deviceCreatedAt",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceCreatedAt",void 0),a([e.Column("varchar",{name:"importedDevice",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"importedDevice",void 0),a([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"trackerName",void 0),a([e.Column("varchar",{name:"trackerUse",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"trackerUse",void 0),a([e.Column("varchar",{name:"deviceStatus",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"deviceStatus",void 0),a([e.Column("varchar",{name:"planCode",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"planCode",void 0),a([e.Column("varchar",{name:"platformCode",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"platformCode",void 0),a([e.Column("varchar",{name:"platformName",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"platformName",void 0),a([e.Column("varchar",{name:"stripeCreatedAt",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"stripeCreatedAt",void 0),a([e.Column("varchar",{name:"stripeUpdatedAt",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"stripeUpdatedAt",void 0),a([e.Column("varchar",{name:"dateCaptured",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"dateCaptured",void 0),a([e.Column("text",{name:"cancelationReason",nullable:!0}),n("design:type",String)],zt.prototype,"cancelationReason",void 0),a([e.Column("varchar",{name:"cancelationCreated",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"cancelationCreated",void 0),a([e.Column("varchar",{name:"cancelationReactivated",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"cancelationReactivated",void 0),a([e.Column("varchar",{name:"clientId",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"clientId",void 0),a([e.Column("text",{name:"itemsForRecovery",nullable:!0}),n("design:type",String)],zt.prototype,"itemsForRecovery",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"platform",void 0),zt=a([e.Index("ixMagento2GpsbtSubscriptionId",["btSubscriptionId"],{}),e.Index("ixMagento2GpsImei",["imei"],{}),e.Entity("magento2Gps",{schema:"nova"})],zt);let Vt=class{magentoPlanCode;magentoBillingInterval;planAnnual;planId};a([e.Column("varchar",{primary:!0,name:"magentoPlanCode",length:100}),n("design:type",String)],Vt.prototype,"magentoPlanCode",void 0),a([e.Column("varchar",{primary:!0,name:"magentoBillingInterval",length:50}),n("design:type",String)],Vt.prototype,"magentoBillingInterval",void 0),a([e.Column("tinyint",{name:"planAnnual",width:1,transformer:new p}),n("design:type",Boolean)],Vt.prototype,"planAnnual",void 0),a([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],Vt.prototype,"planId",void 0),Vt=a([e.Index("ixMagento2PlanPlanId",["planId"],{}),e.Index("ixMagento2PlanPlanIdMagentoBillingIntervalMagentoPlanCode",["planId","magentoBillingInterval","magentoPlanCode"],{}),e.Entity("magento2Plan",{schema:"nova"})],Vt);let Gt=class{id;mcc;mnc;networkName;operatorName;countryCode;countryName};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Gt.prototype,"id",void 0),a([e.Column("smallint",{name:"mcc"}),n("design:type",Number)],Gt.prototype,"mcc",void 0),a([e.Column("smallint",{name:"mnc"}),n("design:type",Number)],Gt.prototype,"mnc",void 0),a([e.Column("varchar",{name:"networkName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"networkName",void 0),a([e.Column("varchar",{name:"operatorName",nullable:!0,length:100}),n("design:type",String)],Gt.prototype,"operatorName",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:50}),n("design:type",String)],Gt.prototype,"countryCode",void 0),a([e.Column("varchar",{name:"countryName",nullable:!0,length:100}),n("design:type",String)],Gt.prototype,"countryName",void 0),Gt=a([e.Entity("mobileNetwork",{schema:"nova"})],Gt);let Jt=class{imei;iccid;model;labelModel;partNo;serialNo;shipNum;workOrder;cartonNo;location};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Jt.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",length:50}),n("design:type",String)],Jt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],Jt.prototype,"model",void 0),a([e.Column("varchar",{name:"labelModel",length:50}),n("design:type",String)],Jt.prototype,"labelModel",void 0),a([e.Column("varchar",{name:"partNo",length:50}),n("design:type",String)],Jt.prototype,"partNo",void 0),a([e.Column("varchar",{name:"serialNo",length:50}),n("design:type",String)],Jt.prototype,"serialNo",void 0),a([e.PrimaryColumn("varchar",{name:"shipNum",length:50}),n("design:type",String)],Jt.prototype,"shipNum",void 0),a([e.Column("varchar",{name:"workOrder",length:50}),n("design:type",String)],Jt.prototype,"workOrder",void 0),a([e.Column("varchar",{name:"cartonNo",length:50}),n("design:type",String)],Jt.prototype,"cartonNo",void 0),a([e.Column("varchar",{name:"location",length:6}),n("design:type",String)],Jt.prototype,"location",void 0),Jt=a([e.Entity("orderShipmentInternational",{schema:"nova"})],Jt);let Ht=class{id;imei;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],Ht.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ht.prototype,"imei",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ht.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ht.prototype,"lon",void 0),a([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],Ht.prototype,"actualDate",void 0),a([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],Ht.prototype,"speed",void 0),a([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],Ht.prototype,"odometer",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],Ht.prototype,"createdAt",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],Ht.prototype,"messageId",void 0),a([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],Ht.prototype,"batteryPercentage",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ht.prototype,"clientId",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Ht.prototype,"address",void 0),a([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],Ht.prototype,"sendTime",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],Ht.prototype,"gpsUtcTime",void 0),a([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],Ht.prototype,"externalBatteryPercentage",void 0),a([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],Ht.prototype,"externalPowerVoltage",void 0),a([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],Ht.prototype,"azimuth",void 0),a([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],Ht.prototype,"motionDetected",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],Ht.prototype,"deleted",void 0),Ht=a([e.Index("ixuPositionMessageId",["messageId"],{unique:!0}),e.Index("ixPositionImei",["imei"],{}),e.Index("ixPositionClientId_ActualDate",["clientId","actualDate"],{}),e.Index("ixPositionClientId_Imei_ActualDate",["clientId","imei","actualDate"],{}),e.Entity("position",{schema:"nova"})],Ht);let Kt=class{imei;promotionId;clientId;marketPlaceId;asin;promotionType;promotionDiscount;promotionDiscountBillingCycles;promotionFreeServiceMonths;appliedAt};a([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],Kt.prototype,"imei",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Kt.prototype,"promotionId",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Kt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"marketPlaceId",length:25,nullable:!0,comment:"The marketplace of the device at the time the promotion was applied"}),n("design:type",String)],Kt.prototype,"marketPlaceId",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:25}),n("design:type",String)],Kt.prototype,"asin",void 0),a([e.Column("varchar",{name:"promotionType",length:25,comment:"The type of promotion: freeService or discount."}),n("design:type",String)],Kt.prototype,"promotionType",void 0),a([e.Column("decimal",{name:"promotionDiscount",nullable:!0,precision:19,scale:4,comment:"The discount value if the type is discount offered in US Dollars."}),n("design:type",Number)],Kt.prototype,"promotionDiscount",void 0),a([e.Column("int",{name:"promotionDiscountBillingCycles",nullable:!0,comment:"The number of billing cycles that the discount will be applied. Required when type is discount"}),n("design:type",Number)],Kt.prototype,"promotionDiscountBillingCycles",void 0),a([e.Column("int",{name:"promotionFreeServiceMonths",nullable:!0,comment:"The number of months that the service will be free. Required when type is freeService"}),n("design:type",Number)],Kt.prototype,"promotionFreeServiceMonths",void 0),a([e.Column("datetime",{name:"appliedAt",comment:"The date that the promotion was applied"}),n("design:type",Date)],Kt.prototype,"appliedAt",void 0),Kt=a([e.Entity("promotionHistory",{schema:"nova"})],Kt);let $t=class{id;countryCode;countryName;regionName;regionCode;regionType;regionLat;regionLong};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],$t.prototype,"id",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"countryCode",void 0),a([e.Column("varchar",{name:"countryName",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"countryName",void 0),a([e.Column("varchar",{name:"regionName",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"regionName",void 0),a([e.Column("varchar",{name:"regionCode",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"regionCode",void 0),a([e.Column("varchar",{name:"regionType",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"regionType",void 0),a([e.Column("decimal",{name:"regionLat",nullable:!0,precision:19,scale:10}),n("design:type",Number)],$t.prototype,"regionLat",void 0),a([e.Column("decimal",{name:"regionLong",nullable:!0,precision:19,scale:10}),n("design:type",Number)],$t.prototype,"regionLong",void 0),$t=a([e.Index("ix_countryName_regionName",["countryName","regionName"]),e.Index("ix_countryCode_regionCode",["countryCode","regionCode"]),e.Index("ix_countryName_regionCode",["countryName","regionCode"]),e.Entity("region",{schema:"nova"})],$t);let Xt=class{id;clientId;reportName;status;emailMessage;frequency;timeOfDay;daysOfWeek;monthlyOption;dayOfMonth;recipients;format;createdAt;updatedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Xt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Xt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"reportName",length:100}),n("design:type",String)],Xt.prototype,"reportName",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'Active'"}),n("design:type",String)],Xt.prototype,"status",void 0),a([e.Column("varchar",{name:"emailMessage",length:255,nullable:!0}),n("design:type",String)],Xt.prototype,"emailMessage",void 0),a([e.Column("varchar",{name:"frequency",length:10,nullable:!0}),n("design:type",String)],Xt.prototype,"frequency",void 0),a([e.Column("time",{name:"timeOfDay",nullable:!0}),n("design:type",String)],Xt.prototype,"timeOfDay",void 0),a([e.Column("json",{name:"daysOfWeek",nullable:!0}),n("design:type",Array)],Xt.prototype,"daysOfWeek",void 0),a([e.Column("varchar",{name:"monthlyOption",length:20,nullable:!0}),n("design:type",String)],Xt.prototype,"monthlyOption",void 0),a([e.Column("int",{name:"dayOfMonth",nullable:!0}),n("design:type",Number)],Xt.prototype,"dayOfMonth",void 0),a([e.Column("varchar",{name:"recipients",nullable:!0,length:255}),n("design:type",String)],Xt.prototype,"recipients",void 0),a([e.Column("varchar",{name:"format",length:10,nullable:!0}),n("design:type",String)],Xt.prototype,"format",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP",nullable:!0}),n("design:type",Date)],Xt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Xt.prototype,"updatedAt",void 0),Xt=a([e.Entity("reportScheduleConfiguration",{schema:"nova"})],Xt);let Yt=class{id;name;description;loginUrl;apn};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Yt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Yt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],Yt.prototype,"description",void 0),a([e.Column("varchar",{name:"loginUrl",nullable:!0,length:1e3}),n("design:type",String)],Yt.prototype,"loginUrl",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],Yt.prototype,"apn",void 0),Yt=a([e.Entity("serviceProvider",{schema:"nova"})],Yt);let Zt=class{id;productId;name;serviceProviderProductTypeId;serviceProviderProductNetworkId;mbIncluded;bundleCost};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Zt.prototype,"id",void 0),a([e.Column("varchar",{name:"productId",length:100}),n("design:type",String)],Zt.prototype,"productId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Zt.prototype,"name",void 0),a([e.Column("tinyint",{name:"serviceProviderProductTypeId",nullable:!0}),n("design:type",Number)],Zt.prototype,"serviceProviderProductTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductNetworkId",nullable:!0}),n("design:type",Number)],Zt.prototype,"serviceProviderProductNetworkId",void 0),a([e.Column("smallint",{name:"mbIncluded",nullable:!0}),n("design:type",Number)],Zt.prototype,"mbIncluded",void 0),a([e.Column("decimal",{name:"bundleCost",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Zt.prototype,"bundleCost",void 0),Zt=a([e.Index("ixServiceProviderProductServiceProviderProductNetworkId",["serviceProviderProductNetworkId"],{}),e.Index("ixServiceProviderProductServiceProviderProductTypeId",["serviceProviderProductTypeId"],{}),e.Entity("serviceProviderProduct",{schema:"nova"})],Zt);let ei=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ei.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ei.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],ei.prototype,"description",void 0),ei=a([e.Entity("serviceProviderProductNetwork",{schema:"nova"})],ei);let ti=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ti.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ti.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],ti.prototype,"description",void 0),ti=a([e.Entity("serviceProviderProductType",{schema:"nova"})],ti);let ii=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;realModel;po;outOfInventory;apn;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ii.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ii.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],ii.prototype,"iccid",void 0),a([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],ii.prototype,"carrier",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],ii.prototype,"phone",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ii.prototype,"deviceTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],ii.prototype,"serviceProviderProductId",void 0),a([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'"}),n("design:type",Boolean)],ii.prototype,"isValid",void 0),a([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],ii.prototype,"realModel",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],ii.prototype,"po",void 0),a([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'"}),n("design:type",Boolean)],ii.prototype,"outOfInventory",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],ii.prototype,"apn",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ii.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ii.prototype,"modifiedAt",void 0),ii=a([e.Index("ixImeiIccidCarrierCarrier",["carrier"],{}),e.Index("ixImeiIccidCarrierDeviceTypeId",["deviceTypeId"],{}),e.Index("ixImeiIccidCarrierIccid",["iccid"],{}),e.Index("ixImeiIccidCarrierImei",["imei"],{}),e.Index("ixImeiIccidCarrierModifiedAt",["modifiedAt"],{}),e.Index("ixImeiIccidCarrierProductId",["serviceProviderProductId"],{}),e.Entity("sim",{schema:"nova"})],ii);let ri=class{id;clientId;name;description;color;createdBy;createdAt;modifiedBy;modifiedAt;metadata;isSecurityGroup};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ri.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ri.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ri.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255,nullable:!0}),n("design:type",String)],ri.prototype,"description",void 0),a([e.Column("varchar",{name:"color",length:32,nullable:!0}),n("design:type",String)],ri.prototype,"color",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],ri.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ri.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],ri.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ri.prototype,"modifiedAt",void 0),a([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",Object)],ri.prototype,"metadata",void 0),a([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ri.prototype,"isSecurityGroup",void 0),ri=a([e.Index("ixTagClientIdName",["clientId","name"],{unique:!0}),e.Entity("tag",{schema:"nova"})],ri);let ai=class{id;taskScheduleId;taskSchedule;deviceStatus;imei;clientId;dueDate;dueOdometer;dueActiveHours;startDate;startingOdometer;startingActiveHours;status;createdAt;pastDueAt;completedAt;completionNotes;completionOdometer;completionActiveHours;completedBy;modifiedAt;modifiedBy;queuedAt;predictedDueDate;deletedAt;deletedBy;completionMetadata;includeTimeInCompletedAt;assignedTo;timeSpent;cost};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ai.prototype,"id",void 0),a([e.Column({type:"int",name:"taskScheduleId"}),n("design:type",Number)],ai.prototype,"taskScheduleId",void 0),a([e.ManyToOne((()=>Rt),{createForeignKeyConstraints:!1}),n("design:type",Object)],ai.prototype,"taskSchedule",void 0),a([e.OneToOne((()=>St),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"imei",referencedColumnName:"imei"}]),n("design:type",Object)],ai.prototype,"deviceStatus",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ai.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ai.prototype,"clientId",void 0),a([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],ai.prototype,"dueDate",void 0),a([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],ai.prototype,"dueOdometer",void 0),a([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],ai.prototype,"dueActiveHours",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],ai.prototype,"startDate",void 0),a([e.Column("double",{name:"startingOdometer",nullable:!0}),n("design:type",Number)],ai.prototype,"startingOdometer",void 0),a([e.Column("double",{name:"startingActiveHours",nullable:!0}),n("design:type",Number)],ai.prototype,"startingActiveHours",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'pending'"}),n("design:type",String)],ai.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ai.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"pastDueAt",nullable:!0}),n("design:type",Date)],ai.prototype,"pastDueAt",void 0),a([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],ai.prototype,"completedAt",void 0),a([e.Column("text",{name:"completionNotes",nullable:!0}),n("design:type",String)],ai.prototype,"completionNotes",void 0),a([e.Column("double",{name:"completionOdometer",nullable:!0}),n("design:type",Number)],ai.prototype,"completionOdometer",void 0),a([e.Column("double",{name:"completionActiveHours",nullable:!0}),n("design:type",Number)],ai.prototype,"completionActiveHours",void 0),a([e.Column("varchar",{name:"completedBy",length:50,nullable:!0}),n("design:type",String)],ai.prototype,"completedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ai.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],ai.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"queuedAt",nullable:!0}),n("design:type",Date)],ai.prototype,"queuedAt",void 0),a([e.Column("datetime",{name:"predictedDueDate",nullable:!0}),n("design:type",Date)],ai.prototype,"predictedDueDate",void 0),a([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],ai.prototype,"deletedAt",void 0),a([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],ai.prototype,"deletedBy",void 0),a([e.Column("json",{name:"completionMetadata",nullable:!0}),n("design:type",Object)],ai.prototype,"completionMetadata",void 0),a([e.Column("tinyint",{name:"includeTimeInCompletedAt",width:1,transformer:new p,nullable:!0}),n("design:type",Boolean)],ai.prototype,"includeTimeInCompletedAt",void 0),a([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],ai.prototype,"assignedTo",void 0),a([e.Column("double",{name:"timeSpent",nullable:!0}),n("design:type",Number)],ai.prototype,"timeSpent",void 0),a([e.Column("double",{name:"cost",nullable:!0}),n("design:type",Number)],ai.prototype,"cost",void 0),ai=a([e.Index("ixTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixTask_Imei",["imei"],{}),e.Index("ixTask_ClientId",["clientId"],{}),e.Index("ixTask_Status",["status"],{}),e.Entity("task",{schema:"nova"})],ai);let ni=class{id;tripGuid;imei;startDate;endDate;distance;startLat;startLon;endLat;endLon;createdAt;startAddress;endAddress;positionStart;positionEnd;tripCompletionStatusId;clientId;duration;tripType;startMessageId;endMessageId;startSendTimeMessage;endSendTimeMessage;deleted;startOdometer;endOdometer;startPositionId;endPositionId};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],ni.prototype,"id",void 0),a([e.Column("binary",{name:"tripGuid",length:16,transformer:re}),n("design:type",String)],ni.prototype,"tripGuid",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ni.prototype,"imei",void 0),a([e.Column("datetime",{name:"startDate"}),n("design:type",Date)],ni.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],ni.prototype,"endDate",void 0),a([e.Column("float",{name:"distance"}),n("design:type",Number)],ni.prototype,"distance",void 0),a([e.Column("decimal",{name:"startLat",precision:8,scale:6}),n("design:type",Number)],ni.prototype,"startLat",void 0),a([e.Column("decimal",{name:"startLon",precision:9,scale:6}),n("design:type",Number)],ni.prototype,"startLon",void 0),a([e.Column("decimal",{name:"endLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ni.prototype,"endLat",void 0),a([e.Column("decimal",{name:"endLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ni.prototype,"endLon",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ni.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"startAddress",length:255}),n("design:type",String)],ni.prototype,"startAddress",void 0),a([e.Column("varchar",{name:"endAddress",nullable:!0,length:255}),n("design:type",String)],ni.prototype,"endAddress",void 0),a([e.Column("varchar",{name:"positionStart",length:255}),n("design:type",String)],ni.prototype,"positionStart",void 0),a([e.Column("varchar",{name:"positionEnd",nullable:!0,length:255}),n("design:type",String)],ni.prototype,"positionEnd",void 0),a([e.Column("tinyint",{name:"tripCompletionStatusId",default:()=>"'1'"}),n("design:type",Number)],ni.prototype,"tripCompletionStatusId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ni.prototype,"clientId",void 0),a([e.Column("int",{name:"duration"}),n("design:type",Number)],ni.prototype,"duration",void 0),a([e.Column("tinyint",{name:"tripType"}),n("design:type",Number)],ni.prototype,"tripType",void 0),a([e.Column("binary",{name:"startMessageId",length:16,transformer:re}),n("design:type",String)],ni.prototype,"startMessageId",void 0),a([e.Column("binary",{name:"endMessageId",length:16,nullable:!0,transformer:re}),n("design:type",String)],ni.prototype,"endMessageId",void 0),a([e.Column("datetime",{name:"startSendTimeMessage",nullable:!0}),n("design:type",Date)],ni.prototype,"startSendTimeMessage",void 0),a([e.Column("datetime",{name:"endSendTimeMessage",nullable:!0}),n("design:type",Date)],ni.prototype,"endSendTimeMessage",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],ni.prototype,"deleted",void 0),a([e.Column("double",{name:"startOdometer",nullable:!0}),n("design:type",Number)],ni.prototype,"startOdometer",void 0),a([e.Column("double",{name:"endOdometer",nullable:!0}),n("design:type",Number)],ni.prototype,"endOdometer",void 0),a([e.Column("bigint",{name:"startPositionId",nullable:!0}),n("design:type",Number)],ni.prototype,"startPositionId",void 0),a([e.Column("bigint",{name:"endPositionId",nullable:!0}),n("design:type",Number)],ni.prototype,"endPositionId",void 0),ni=a([e.Index("ixuTripGuid",["tripGuid"],{unique:!0}),e.Index("ixTripClientId",["clientId"],{}),e.Index("ixTripImei",["imei"],{}),e.Index("ixTripStartDate",["startDate"],{}),e.Index("ixTripEndDate",["endDate"],{}),e.Index("ixCreatedAt",["createdAt"],{}),e.Index("ixTripClientIdImeiStartDate",["clientId","imei","startDate"],{}),e.Entity("trip",{schema:"nova"})],ni);let oi=class{id;name;description;statusId};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],oi.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],oi.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],oi.prototype,"description",void 0),a([e.Column("tinyint",{name:"statusId",width:1,default:()=>"'1'"}),n("design:type",Boolean)],oi.prototype,"statusId",void 0),oi=a([e.Entity("tripCompletionStatus",{schema:"nova"})],oi);let si=class{tripId;positionId};a([e.Column("bigint",{primary:!0,name:"tripId"}),n("design:type",String)],si.prototype,"tripId",void 0),a([e.Column("bigint",{primary:!0,name:"positionId"}),n("design:type",String)],si.prototype,"positionId",void 0),si=a([e.Entity("tripPosition",{schema:"nova"})],si);let li=class{imei;clientId;tripGuid;tripStartDate};a([e.Column("varchar",{primary:!0,name:"imei",length:15}),n("design:type",String)],li.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],li.prototype,"clientId",void 0),a([e.Column("binary",{name:"tripGuid",length:16,nullable:!0,transformer:re}),n("design:type",String)],li.prototype,"tripGuid",void 0),a([e.Column("datetime",{name:"tripStartDate",nullable:!0}),n("design:type",Date)],li.prototype,"tripStartDate",void 0),li=a([e.Entity("tripStatus",{schema:"nova"})],li);let di=class{id;createdAt;status;userId;legacyCreatedAt;clientId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],di.prototype,"id",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],di.prototype,"createdAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],di.prototype,"status",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],di.prototype,"userId",void 0),a([e.Column("datetime",{name:"legacyCreatedAt",nullable:!0}),n("design:type",Date)],di.prototype,"legacyCreatedAt",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],di.prototype,"clientId",void 0),di=a([e.Index("ixUserActivationUserId",["userId"],{}),e.Entity("userActivation",{schema:"nova"})],di);let ui=class{id;userActivation;userActivationId;device;deviceId;imei;model;billingInterval;deviceName;createdAt;modifiedAt;status;trackingReason;deviceColor;notificationByEmail;notificationBySms;planAnnual;dataSourceTypeId;subscriptionId;platform;eventType;planCode;servicePlan};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ui.prototype,"id",void 0),a([e.OneToOne((()=>di),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],ui.prototype,"userActivation",void 0),a([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],ui.prototype,"userActivationId",void 0),a([e.OneToOne((()=>le),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],ui.prototype,"device",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],ui.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ui.prototype,"imei",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"model",void 0),a([e.Column("varchar",{name:"billingInterval",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"billingInterval",void 0),a([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],ui.prototype,"deviceName",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ui.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ui.prototype,"modifiedAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],ui.prototype,"status",void 0),a([e.Column("varchar",{name:"trackingReason",nullable:!0,length:500}),n("design:type",String)],ui.prototype,"trackingReason",void 0),a([e.Column("varchar",{name:"deviceColor",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"deviceColor",void 0),a([e.Column("tinyint",{name:"notificationByEmail",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],ui.prototype,"notificationByEmail",void 0),a([e.Column("tinyint",{name:"notificationBySms",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],ui.prototype,"notificationBySms",void 0),a([e.Column("tinyint",{name:"planAnnual",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],ui.prototype,"planAnnual",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],ui.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"platform",void 0),a([e.Column("varchar",{name:"eventType",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"eventType",void 0),a([e.Column("varchar",{name:"planCode",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"planCode",void 0),a([e.Column("varchar",{name:"servicePlan",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"servicePlan",void 0),ui=a([e.Index("ixUserActivationDeviceCreatedAt",["createdAt"],{}),e.Index("ixUserActivationDeviceDeviceId",["deviceId"],{}),e.Index("ixUserActivationDeviceImei",["imei"],{}),e.Index("ixUserActivationDeviceActivationId",["userActivationId"],{}),e.Index("ixUserActivationDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userActivationDevice",{schema:"nova"})],ui);let ci=class{userId;eventId;eventName;eventValue;eventMetadata;createdAt;platform;ip;userAgent};a([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],ci.prototype,"userId",void 0),a([e.Column("binary",{primary:!0,name:"eventId",length:16}),n("design:type",Buffer)],ci.prototype,"eventId",void 0),a([e.Column("text",{name:"eventName"}),n("design:type",String)],ci.prototype,"eventName",void 0),a([e.Column("text",{name:"eventValue",nullable:!0}),n("design:type",String)],ci.prototype,"eventValue",void 0),a([e.Column("text",{name:"eventMetadata",nullable:!0}),n("design:type",String)],ci.prototype,"eventMetadata",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ci.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],ci.prototype,"platform",void 0),a([e.Column("text",{name:"ip",nullable:!0}),n("design:type",String)],ci.prototype,"ip",void 0),a([e.Column("text",{name:"userAgent",nullable:!0}),n("design:type",String)],ci.prototype,"userAgent",void 0),ci=a([e.Entity("userActivationEvent",{schema:"nova"})],ci);let pi=class{id;userId;firstName;lastName;email;phone;trackingReason;companyName;role;industry;devicesActivatingCategory;assetsCountRange;devicesActivatingCount;plan;usersInvitedCount;meetingScheduled;createdAt;modifiedAt;planAnnual;planId;spyEnvironment;jarvisScore;enrichmentCompanyDescription;jarvisEnrichmentCompanyEin;enrichmentCompanyEmployees;enrichmentCompanyIndustry;enrichmentCompanyLocation;enrichmentCompanyName;enrichmentCompanyRevenue;enrichmentPrivateDomain;enrichmentPublicTicker;enrichmentRole;enrichmentTags;jenrichmentTitle;enrichmentVerifiedEmployment};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],pi.prototype,"userId",void 0),a([e.Column("text",{name:"firstName"}),n("design:type",String)],pi.prototype,"firstName",void 0),a([e.Column("text",{name:"lastName"}),n("design:type",String)],pi.prototype,"lastName",void 0),a([e.Column("text",{name:"email"}),n("design:type",String)],pi.prototype,"email",void 0),a([e.Column("text",{name:"phone",nullable:!0}),n("design:type",String)],pi.prototype,"phone",void 0),a([e.Column("text",{name:"trackingReason",nullable:!0}),n("design:type",String)],pi.prototype,"trackingReason",void 0),a([e.Column("text",{name:"companyName",nullable:!0}),n("design:type",String)],pi.prototype,"companyName",void 0),a([e.Column("text",{name:"role",nullable:!0}),n("design:type",String)],pi.prototype,"role",void 0),a([e.Column("text",{name:"industry",nullable:!0}),n("design:type",String)],pi.prototype,"industry",void 0),a([e.Column("text",{name:"devicesActivatingCategory",nullable:!0}),n("design:type",String)],pi.prototype,"devicesActivatingCategory",void 0),a([e.Column("text",{name:"assetsCountRange",nullable:!0}),n("design:type",String)],pi.prototype,"assetsCountRange",void 0),a([e.Column("decimal",{name:"devicesActivatingCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],pi.prototype,"devicesActivatingCount",void 0),a([e.Column("text",{name:"plan",nullable:!0}),n("design:type",String)],pi.prototype,"plan",void 0),a([e.Column("decimal",{name:"usersInvitedCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],pi.prototype,"usersInvitedCount",void 0),a([e.Column("tinyint",{name:"meetingScheduled",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],pi.prototype,"meetingScheduled",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],pi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],pi.prototype,"modifiedAt",void 0),a([e.Column("text",{name:"planAnnual",nullable:!0}),n("design:type",String)],pi.prototype,"planAnnual",void 0),a([e.Column("text",{name:"planId",nullable:!0}),n("design:type",String)],pi.prototype,"planId",void 0),a([e.Column("text",{name:"spyEnvironment",nullable:!0}),n("design:type",String)],pi.prototype,"spyEnvironment",void 0),a([e.Column("int",{name:"jarvisScore",nullable:!0}),n("design:type",Number)],pi.prototype,"jarvisScore",void 0),a([e.Column("text",{name:"enrichmentCompanyDescription",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyDescription",void 0),a([e.Column("text",{name:"jarvisEnrichmentCompanyEin",nullable:!0}),n("design:type",String)],pi.prototype,"jarvisEnrichmentCompanyEin",void 0),a([e.Column("text",{name:"enrichmentCompanyEmployees",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyEmployees",void 0),a([e.Column("text",{name:"enrichmentCompanyIndustry",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyIndustry",void 0),a([e.Column("text",{name:"enrichmentCompanyLocation",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyLocation",void 0),a([e.Column("text",{name:"enrichmentCompanyName",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyName",void 0),a([e.Column("text",{name:"enrichmentCompanyRevenue",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentCompanyRevenue",void 0),a([e.Column("text",{name:"enrichmentPrivateDomain",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentPrivateDomain",void 0),a([e.Column("text",{name:"enrichmentPublicTicker",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentPublicTicker",void 0),a([e.Column("text",{name:"enrichmentRole",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentRole",void 0),a([e.Column("text",{name:"enrichmentTags",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentTags",void 0),a([e.Column("text",{name:"jenrichmentTitle",nullable:!0}),n("design:type",String)],pi.prototype,"jenrichmentTitle",void 0),a([e.Column("text",{name:"enrichmentVerifiedEmployment",nullable:!0}),n("design:type",String)],pi.prototype,"enrichmentVerifiedEmployment",void 0),pi=a([e.Index("ixuUserActivationMetricUserId",["userId"],{unique:!0}),e.Entity("userActivationMetric",{schema:"nova"})],pi);let mi=class{id;userId;platform;appVersion;feedback;createdAt;amazonReviewDate};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],mi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],mi.prototype,"userId",void 0),a([e.Column("varchar",{name:"platform",length:25}),n("design:type",String)],mi.prototype,"platform",void 0),a([e.Column("varchar",{name:"appVersion",length:20}),n("design:type",String)],mi.prototype,"appVersion",void 0),a([e.Column("varchar",{name:"feedback",nullable:!0,length:2e3}),n("design:type",String)],mi.prototype,"feedback",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],mi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"amazonReviewDate",nullable:!0}),n("design:type",Date)],mi.prototype,"amazonReviewDate",void 0),mi=a([e.Index("ixUserAppFeedbackUserId",["userId"],{}),e.Entity("userAppFeedback",{schema:"nova"})],mi);let gi=class{id;userId;userName;userEmail;deviceOs;deviceManufacturer;deviceModel;stage;appVersion;createdAt;errorMessage;errorFirstReceivedAt;errorReceivedAt;deviceJailbroken;deviceOsVersion;deviceFreeMemory;deviceTotalMemory;deviceCharging;deviceBatteryLevel;deviceNetworkAccess;appActiveScreen;appInForeground;appDurationInForeground;appBundleId;incidentUrl;errorId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],gi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],gi.prototype,"userId",void 0),a([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],gi.prototype,"userName",void 0),a([e.Column("varchar",{name:"userEmail",nullable:!0,length:255}),n("design:type",String)],gi.prototype,"userEmail",void 0),a([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],gi.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"deviceManufacturer",nullable:!0,length:100}),n("design:type",String)],gi.prototype,"deviceManufacturer",void 0),a([e.Column("varchar",{name:"deviceModel",nullable:!0,length:100}),n("design:type",String)],gi.prototype,"deviceModel",void 0),a([e.Column("varchar",{name:"stage",length:25}),n("design:type",String)],gi.prototype,"stage",void 0),a([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],gi.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],gi.prototype,"createdAt",void 0),a([e.Column("text",{name:"errorMessage",nullable:!0}),n("design:type",String)],gi.prototype,"errorMessage",void 0),a([e.Column("datetime",{name:"errorFirstReceivedAt",nullable:!0}),n("design:type",Date)],gi.prototype,"errorFirstReceivedAt",void 0),a([e.Column("datetime",{name:"errorReceivedAt",nullable:!0}),n("design:type",Date)],gi.prototype,"errorReceivedAt",void 0),a([e.Column("tinyint",{name:"deviceJailbroken",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],gi.prototype,"deviceJailbroken",void 0),a([e.Column("varchar",{name:"deviceOsVersion",nullable:!0,length:20}),n("design:type",String)],gi.prototype,"deviceOsVersion",void 0),a([e.Column("int",{name:"deviceFreeMemory",nullable:!0}),n("design:type",Number)],gi.prototype,"deviceFreeMemory",void 0),a([e.Column("int",{name:"deviceTotalMemory",nullable:!0}),n("design:type",Number)],gi.prototype,"deviceTotalMemory",void 0),a([e.Column("tinyint",{name:"deviceCharging",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],gi.prototype,"deviceCharging",void 0),a([e.Column("smallint",{name:"deviceBatteryLevel",nullable:!0}),n("design:type",Number)],gi.prototype,"deviceBatteryLevel",void 0),a([e.Column("varchar",{name:"deviceNetworkAccess",nullable:!0,length:100}),n("design:type",String)],gi.prototype,"deviceNetworkAccess",void 0),a([e.Column("varchar",{name:"appActiveScreen",nullable:!0,length:50}),n("design:type",String)],gi.prototype,"appActiveScreen",void 0),a([e.Column("tinyint",{name:"appInForeground",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],gi.prototype,"appInForeground",void 0),a([e.Column("int",{name:"appDurationInForeground",nullable:!0}),n("design:type",Number)],gi.prototype,"appDurationInForeground",void 0),a([e.Column("varchar",{name:"appBundleId",nullable:!0,length:500}),n("design:type",String)],gi.prototype,"appBundleId",void 0),a([e.Column("varchar",{name:"incidentUrl",nullable:!0,length:1e3}),n("design:type",String)],gi.prototype,"incidentUrl",void 0),a([e.Column("varchar",{name:"errorId",nullable:!0,length:100}),n("design:type",String)],gi.prototype,"errorId",void 0),gi=a([e.Index("ixUserAppIncidentCreatedAt",["createdAt"],{}),e.Index("ixUserAppIncidentErrorId",["errorId"],{}),e.Index("ixUserAppIncidentUserId",["userId"],{}),e.Index("ixuUserAppIncidentUserIdErrorId",["userId","errorId"],{unique:!0}),e.Entity("userAppIncident",{schema:"nova"})],gi);let yi=class{clientId;userId;boundaryId;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],yi.prototype,"clientId",void 0),a([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],yi.prototype,"userId",void 0),a([e.PrimaryColumn("int",{name:"boundaryId"}),n("design:type",Number)],yi.prototype,"boundaryId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],yi.prototype,"createdAt",void 0),yi=a([e.Index("ixUserAuthorizedBoundaryUserIdBoundaryId",["userId","boundaryId"],{}),e.Index("ixUserAuthorizedBoundaryBoundaryIdUserId",["boundaryId","userId"],{}),e.Entity("userAuthorizedBoundary",{schema:"nova"})],yi);let vi=class{clientId;userId;boundaryId};a([e.ViewColumn({name:"clientId"}),n("design:type",Number)],vi.prototype,"clientId",void 0),a([e.ViewColumn({name:"userId",transformer:re}),n("design:type",String)],vi.prototype,"userId",void 0),a([e.ViewColumn({name:"boundaryId"}),n("design:type",Number)],vi.prototype,"boundaryId",void 0),vi=a([e.ViewEntity({name:"user_authorized_boundary_security_view",schema:"nova",synchronize:!1,expression:"\n SELECT uab.clientId, uab.userId, uab.boundaryId\n FROM userAuthorizedBoundary uab\n LEFT JOIN entityTag rt\n ON uab.boundaryId = rt.entityId\n AND rt.entityType = 'Boundary' \n AND rt.isSecurityGroup = TRUE\n LEFT JOIN entityTag ut \n ON uab.userId = ut.userId \n AND ut.entityType = 'User' \n AND ut.isSecurityGroup = TRUE\n WHERE (ut.id IS NULL OR ut.tagId = rt.tagId)\n "})],vi);let hi=class{clientId;userId;imei;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],hi.prototype,"clientId",void 0),a([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],hi.prototype,"userId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],hi.prototype,"imei",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],hi.prototype,"createdAt",void 0),hi=a([e.Index("ixUserAuthorizedDeviceUserIdImei",["userId","imei"],{}),e.Index("ixUserAuthorizedDeviceImeiUserId",["imei","userId"],{}),e.Entity("userAuthorizedDevice",{schema:"nova"})],hi);let fi=class{clientId;imei;userId};a([e.ViewColumn({name:"clientId"}),n("design:type",Number)],fi.prototype,"clientId",void 0),a([e.ViewColumn({name:"imei"}),n("design:type",String)],fi.prototype,"imei",void 0),a([e.ViewColumn({name:"userId",transformer:re}),n("design:type",String)],fi.prototype,"userId",void 0),fi=a([e.ViewEntity({name:"user_authorized_device_security_view",schema:"nova",synchronize:!1,expression:"\n SELECT uad.clientId, uad.imei, uad.userId\n FROM userAuthorizedDevice uad\n LEFT JOIN entityTag rt \n ON uad.imei = rt.imei \n AND rt.entityType = 'Device' \n AND rt.isSecurityGroup = TRUE\n LEFT JOIN entityTag ut \n ON uad.userId = ut.userId \n AND ut.entityType = 'User' \n AND ut.isSecurityGroup = TRUE\n WHERE (ut.id IS NULL OR ut.tagId = rt.tagId)\n "})],fi);let Ii=class{id;userId;clientId;userSecurityRoleName;email;status;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ii.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ii.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ii.prototype,"clientId",void 0),a([e.Column("varchar",{name:"userSecurityRoleName",length:50}),n("design:type",String)],Ii.prototype,"userSecurityRoleName",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],Ii.prototype,"email",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],Ii.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ii.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ii.prototype,"modifiedAt",void 0),Ii=a([e.Index("ixUserDataDeletionRequestUserId",["userId"],{}),e.Entity("userDataDeletionRequest",{schema:"nova"})],Ii);let Ci=class{id;deviceBehaviorId;clientId;userId;imei;behaviorName;behaviorParams;status;createdAt;modifiedAt;extraParams;commandTaskId};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Ci.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceBehaviorId"}),n("design:type",Number)],Ci.prototype,"deviceBehaviorId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ci.prototype,"clientId",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ci.prototype,"userId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ci.prototype,"imei",void 0),a([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],Ci.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Ci.prototype,"behaviorParams",void 0),a([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],Ci.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Ci.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ci.prototype,"modifiedAt",void 0),a([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],Ci.prototype,"extraParams",void 0),a([e.Column("binary",{name:"commandTaskId",length:16,nullable:!0}),n("design:type",Buffer)],Ci.prototype,"commandTaskId",void 0),Ci=a([e.Index("ixUserDeviceBehaviorTaskImei",["imei"],{}),e.Index("ixUserDeviceBehaviorTaskClientId",["clientId"],{}),e.Index("ixUserDeviceBehaviorTaskDeviceBehaviorId",["deviceBehaviorId"],{}),e.Index("ixUserDeviceBehaviorTaskModifiedAt",["modifiedAt"],{}),e.Entity("userDeviceBehaviorTask",{schema:"nova"})],Ci);var bi=Object.freeze({__proto__:null}),Si=Object.freeze({__proto__:null}),Ri=Object.freeze({__proto__:null}),Di=Object.freeze({__proto__:null}),wi=Object.freeze({__proto__:null}),Ai=Object.freeze({__proto__:null}),Ti=Object.freeze({__proto__:null}),Ni=Object.freeze({__proto__:null}),Bi=Object.freeze({__proto__:null}),Ui=Object.freeze({__proto__:null});const Ei=["filters.clientId","filters.ssoDomain"],Pi=["filters.clientId"],Mi=["values.movementTripThreshold","values.stopTripThreshold","values.mapUpdateMode","values.maxUsersAllowed","values.ssoDomain","values.ssoMetadata","values.assetProfileStatusLabels"],Oi=["clientId"],xi=["enterprise","maintenanceModule","billingMethod","customerSegment"],ki=["filters.clientId"],Li=["values.enterprise","values.maintenanceModule","values.billingMethod","values.customerSegment"],Fi=["clientId","userActivationId","tokenUrl","fleetUrl","requestParams"];var Qi=Object.freeze({__proto__:null,oneRequiredCreateCustomerAttributeParamsAttributes:xi,oneRequiredGetClientConfigurationParamsAttributes:Ei,oneRequiredUpdateClientConfigurationParamsAttributes:Mi,oneRequiredUpdateCustomerAttributeParamsAttributes:Li,requireCreateClientIngestorConfigurationParamsAttributes:Fi,requiredCreateCustomerAttributeParamsAttributes:Oi,requiredUpdateClientConfigurationParamsAttributes:Pi,requiredUpdateCustomerAttributeParamsAttributes:ki}),qi=Object.freeze({__proto__:null}),Wi=Object.freeze({__proto__:null}),_i=Object.freeze({__proto__:null}),ji=Object.freeze({__proto__:null}),zi=Object.freeze({__proto__:null});const Vi=["clientId","deviceTypeId","iccid","name","color","icon","status","forward","description","dataSourceTypeId","assetCategoryId","usageRegion","btmac","assignedTo"],Gi=["imei","iccid","deviceTypeId","serviceProviderProductId","carrier"],Ji=["clientId","imei","assignedTo"];var Hi=Object.freeze({__proto__:null,oneRequiredUpdateDeviceParamsValue:Vi,requiredAddDeviceChangesHistoryParams:Ji,requiredImeiIccidCarrierFields:Gi}),Ki=Object.freeze({__proto__:null});const $i=["clientId","createdBy","tagId","entityType","entityId"],Xi=["entityType","entityId","tagId","clientId","deletedBy"],Yi=["filters.clientId"],Zi=["clientId","entityType","deletedBy"],er=["tagIds","entityIds"],tr=["filters.clientId","filters.entityId","filters.entityType","values.enforcedBy","values.tagIds"],ir=["filters.id"];var rr,ar,nr=Object.freeze({__proto__:null,oneRequiredBulkDeleteParamsAttributes:er,requiredBulkDeleteParamsAttributes:Zi,requiredCreateEntityTagParamsAttributes:$i,requiredDeleteEntityTagParamsAttributes:Xi,requiredEnforceEntityTagsByEntityParamsAttributes:tr,requiredGetEntityTagByIdParamsAttributes:ir,requiredSearchEntityTagsParamsAttributes:Yi});!function(e){e.BB="0",e.MCU="1",e.BLE="2",e.MODEM="7"}(rr||(rr={})),function(e){e.Queued="Queued",e.QueuedWaitingForConfig="QueuedWaitingForConfig",e.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed",e.Expired="Expired"}(ar||(ar={}));var or,sr=Object.freeze({__proto__:null,get FirmwareUpgradeTaskStatus(){return ar},get UpgradeType(){return rr}}),lr=Object.freeze({__proto__:null}),dr=Object.freeze({__proto__:null});!function(e){e.FATAL="fatal",e.ERROR="error",e.WARN="warn",e.INFO="info",e.DEBUG="debug",e.TRACE="trace"}(or||(or={}));var ur=Object.freeze({__proto__:null,get LogLevel(){return or}}),cr=Object.freeze({__proto__:null}),pr=Object.freeze({__proto__:null});const mr=["values.roleId","values.devicesAccess","values.boundariesAccess","values.minAccessDate"],gr=["userId","imei"],yr=["userId","boundaryId"],vr=["filters.clientId","filters.imeisList"],hr=["filters.clientId","filters.boundaryIdList"];var fr=Object.freeze({__proto__:null,oneRequiredUserRoleParamsAttributes:mr,requiredCreateUserAuthorizedBoundaryParamsAttributes:yr,requiredCreateUserAuthorizedDeviceParamsAttributes:gr,requiredGetUserIdsByClientIdAndAuthorizedBoundariesParamsAttributes:hr,requiredGetUserIdsByClientIdAndAuthorizedDevicesParamsAttributes:vr});const Ir=["createdBy","clientId","name"],Cr=["createdBy","clientId","tags"],br=["filters.tagId","filters.clientId","values.modifiedBy"],Sr=["clientId","tagId","deletedBy"],Rr=["filters.clientId"],Dr=["filters.clientId"],wr=["filters.userId","filters.userNumberId"];var Ar=Object.freeze({__proto__:null,oneRequiredSearchTagsByUserParamsAttributes:wr,requiredBulkCreateTagParamsAttributes:Cr,requiredCreateTagParamsAttributes:Ir,requiredDeleteTagParamsAttributes:Sr,requiredSearchTagsByUserParamsAttributes:Dr,requiredSearchTagsParamsAttributes:Rr,requiredUpdateTagParamsAttributes:br});const Tr=["filters.clientId","filters.from","filters.to"],Nr=["filters.imei"];var Br=Object.freeze({__proto__:null,requiredCreateTripParamsAttributes:["tripGuid","imei","startDate","distance","startLat","startLon","startAddress","positionStart","tripCompletionStatusId","clientId","duration","tripType","startMessageId"],requiredGetTripsParamsAttributes:Tr,requiredGetUserTripConfigurationParamsAttributes:Nr,requiredUpdateTripEndValuesParamsAttributes:["filters.tripGuid","values.endDate","values.endLat","values.endLon","values.endAddress","values.positionEnd","values.endMessageId","values.distance","values.duration","values.tripType","values.tripCompletionStatusId"]});const Ur=["filters.id","filters.numberId"];var Er=Object.freeze({__proto__:null,oneRequiredGetUserByIdParams:Ur}),Pr=Object.freeze({__proto__:null}),Mr=Object.freeze({__proto__:null}),Or=Object.freeze({__proto__:null}),xr=Object.freeze({__proto__:null}),kr=Object.freeze({__proto__:null}),Lr=Object.freeze({__proto__:null}),Fr=Object.freeze({__proto__:null}),Qr=Object.freeze({__proto__:null}),qr=Object.freeze({__proto__:null,Acumatica:bi,AlertTypes:Ri,Alerts:Si,AppFeatures:Di,BLEMesh:Ti,BLEMeshConfiguration:Ni,Billing:wi,Blacklist:Ai,Boundaries:Bi,ClientAlertConfiguration:Ui,Clients:Qi,Countries:qi,DataExports:Wi,Deactivations:_i,DeviceBehaviors:ji,DevicePairings:zi,DeviceStatus:Ki,Devices:Hi,EntitiesTags:nr,Enums:H,Firmwares:sr,LatestUserAppInfo:lr,LiveLinks:dr,Logger:ur,NotificationRecipients:cr,Positions:pr,Security:fr,Tags:Ar,Trips:Br,UserActivations:Pr,UserAppFeedback:Mr,UserAppIncidents:Or,UserConfigurations:xr,UserDataDeletionRequests:kr,UserInvitations:Lr,UserRatingRequests:Fr,UserRegistrationAttempts:Qr,Users:Er});const Wr={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>e.trim())):null},_r={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>Number(e.trim()))).filter((e=>!isNaN(e))):null};let jr=class{id;numberId;inviterClientId;inviterUserId;inviteeEmail;inviteeSecurityRoleId;statusId;createdAt;modifiedAt;inviteeUserId;trackerImeis;trackerAccess;minAccessDate;boundaries;boundaryAccess;tasksAccess;generateDefaults(){this.id||(this.id=t.v4()),this.createdAt||(this.createdAt=new Date),this.modifiedAt||(this.modifiedAt=new Date),this.trackerAccess||(this.trackerAccess="full"),this.boundaryAccess||(this.boundaryAccess="full"),this.inviteeSecurityRoleId||(this.inviteeSecurityRoleId=v.Collaborator),this.statusId||(this.statusId=C.Pending)}updateModifiedAt(){this.modifiedAt=new Date}};a([e.Column("binary",{primary:!0,name:"id",length:16,transformer:re}),n("design:type",String)],jr.prototype,"id",void 0),a([e.Column("int",{name:"numberId",unique:!0}),e.Generated("increment"),n("design:type",Number)],jr.prototype,"numberId",void 0),a([e.Column("int",{name:"inviterClientId"}),n("design:type",Number)],jr.prototype,"inviterClientId",void 0),a([e.Column("binary",{name:"inviterUserId",length:16,transformer:re}),n("design:type",String)],jr.prototype,"inviterUserId",void 0),a([e.Column("varchar",{name:"inviteeEmail",length:255}),n("design:type",String)],jr.prototype,"inviteeEmail",void 0),a([e.Column("tinyint",{name:"inviteeSecurityRoleId"}),n("design:type",Number)],jr.prototype,"inviteeSecurityRoleId",void 0),a([e.Column("tinyint",{name:"statusId"}),n("design:type",Number)],jr.prototype,"statusId",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],jr.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt"}),n("design:type",Date)],jr.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"inviteeUserId",length:16,transformer:re,nullable:!0}),n("design:type",String)],jr.prototype,"inviteeUserId",void 0),a([e.Column("mediumtext",{name:"trackerImeis",nullable:!0,transformer:Wr}),n("design:type",Array)],jr.prototype,"trackerImeis",void 0),a([e.Column("text",{name:"trackerAccess",nullable:!0}),n("design:type",String)],jr.prototype,"trackerAccess",void 0),a([e.Column("datetime",{name:"minAccessDate",nullable:!0}),n("design:type",Date)],jr.prototype,"minAccessDate",void 0),a([e.Column("text",{name:"boundaries",nullable:!0,transformer:_r}),n("design:type",Array)],jr.prototype,"boundaries",void 0),a([e.Column("text",{name:"boundaryAccess",nullable:!0}),n("design:type",String)],jr.prototype,"boundaryAccess",void 0),a([e.Column("text",{name:"tasksAccess",nullable:!0}),n("design:type",String)],jr.prototype,"tasksAccess",void 0),a([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],jr.prototype,"generateDefaults",null),a([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],jr.prototype,"updateModifiedAt",null),jr=a([e.Index("ixUserInvtationInviteeEmail",["inviteeEmail"],{}),e.Index("ixUserInvtationInviterClientId",["inviterClientId"],{}),e.Index("ixUserInvtationInviteUserId",["inviterUserId"],{}),e.Index("ixUserInvtationInviteeSecurityRoleId",["inviteeSecurityRoleId"],{}),e.Index("ixNumberId",["numberId"],{}),e.Entity("userInvitation",{schema:"nova"})],jr);let zr=class{id;userId;clientId;deviceManufacturer;deviceOs;deviceOsVersion;appVersion;requestDate;amazonRequestDate;deviceIdentifierKey};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],zr.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],zr.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],zr.prototype,"clientId",void 0),a([e.Column("varchar",{name:"deviceManufacturer",length:500}),n("design:type",String)],zr.prototype,"deviceManufacturer",void 0),a([e.Column("varchar",{name:"deviceOs",length:50}),n("design:type",String)],zr.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"deviceOsVersion",length:20}),n("design:type",String)],zr.prototype,"deviceOsVersion",void 0),a([e.Column("varchar",{name:"appVersion",length:10}),n("design:type",String)],zr.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"requestDate",nullable:!0}),n("design:type",Date)],zr.prototype,"requestDate",void 0),a([e.Column("datetime",{name:"amazonRequestDate",nullable:!0}),n("design:type",Date)],zr.prototype,"amazonRequestDate",void 0),a([e.Column("varchar",{name:"deviceIdentifierKey",nullable:!0,length:255}),n("design:type",String)],zr.prototype,"deviceIdentifierKey",void 0),zr=a([e.Index("ixUserRatingRequestAmazonRequestDate",["amazonRequestDate"],{}),e.Index("ixUserRatingRequestClientId",["clientId"],{}),e.Index("ixUserRatingRequestUserId",["userId"],{}),e.Index("ixUserRatingRequestRequestDate",["requestDate"],{}),e.Index("ixUserRatingRequestUserId_RequestDate",["userId","requestDate"],{}),e.Entity("userRatingRequest",{schema:"nova"})],zr);let Vr=class{id;firstName;lastName;email;phoneNumber;phoneCode;phoneCodeCountryId;companyName;street;state;postalCode;country;pin;imei;deviceType;deviceName;orderId;trackingReason;userName;plan;billingFrequency;planId;subscriptionSource;subscriptionId;platform;status;createdAt;lastUpdatedAt;city;clientId;countryCode;tempUserId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Vr.prototype,"id",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Vr.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Vr.prototype,"lastName",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"email",void 0),a([e.Column("varchar",{name:"phoneNumber",nullable:!0,length:20}),n("design:type",String)],Vr.prototype,"phoneNumber",void 0),a([e.Column("varchar",{name:"phoneCode",nullable:!0,length:10}),n("design:type",String)],Vr.prototype,"phoneCode",void 0),a([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:10}),n("design:type",String)],Vr.prototype,"phoneCodeCountryId",void 0),a([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"companyName",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"street",void 0),a([e.Column("varchar",{name:"state",nullable:!0,length:100}),n("design:type",String)],Vr.prototype,"state",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:20}),n("design:type",String)],Vr.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:100}),n("design:type",String)],Vr.prototype,"country",void 0),a([e.Column("int",{name:"pin",nullable:!0}),n("design:type",Number)],Vr.prototype,"pin",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Vr.prototype,"imei",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"deviceName",void 0),a([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"orderId",void 0),a([e.Column("varchar",{name:"trackingReason",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"trackingReason",void 0),a([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"userName",void 0),a([e.Column("varchar",{name:"plan",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"plan",void 0),a([e.Column("varchar",{name:"billingFrequency",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"billingFrequency",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionSource",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"subscriptionSource",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Vr.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Vr.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Vr.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Vr.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"lastUpdatedAt",nullable:!0}),n("design:type",Date)],Vr.prototype,"lastUpdatedAt",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"city",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Vr.prototype,"clientId",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],Vr.prototype,"countryCode",void 0),a([e.Column("binary",{name:"tempUserId",nullable:!0,length:16}),n("design:type",Buffer)],Vr.prototype,"tempUserId",void 0),Vr=a([e.Index("ixUserRegistrationAttemptTempUserId",["tempUserId"],{}),e.Entity("userRegistrationAttempt",{schema:"nova"})],Vr);let Gr=class{connectionId;clientId;userId;host;createdAt};a([e.PrimaryColumn("varchar",{name:"connectionId",length:36}),n("design:type",String)],Gr.prototype,"connectionId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Gr.prototype,"clientId",void 0),a([e.Column("binary",{name:"userId",length:16,transformer:re}),n("design:type",String)],Gr.prototype,"userId",void 0),a([e.Column("varchar",{name:"host",length:255}),n("design:type",String)],Gr.prototype,"host",void 0),a([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Gr.prototype,"createdAt",void 0),Gr=a([e.Index("ixWebsocketConnectionUserId",["userId"]),e.Index("ixWebsocketConnectionClientIdUserIdHost",["clientId","userId","host"]),e.Index("ixWebsocketConnectionCreatedAt",["createdAt"]),e.Entity("websocketConnection",{schema:"nova"})],Gr);var Jr=Object.freeze({__proto__:null,get AcumaticaAmazonProduct(){return o},get AcumaticaImeiIccidData(){return s},get AcumaticaOrderShipmentDetails(){return l},get AcumaticaShipment(){return d},get AcumaticaShipmentAmazon(){return u},get AempToken(){return c},get Alert(){return g},get AlertType(){return m},get AppFeatureType(){return y},get AsinPromotion(){return Z},get AssetCategory(){return ee},get AssetProfile(){return Te},get AssetProfileCategory(){return we},get AssetProfileCustomField(){return te},get AssetProfileMedia(){return ie},get AssetProfileNote(){return De},get AssetProfileType(){return Ae},get AvalaraExemptCert(){return Be},get AvalaraQueue(){return Ue},get BLEMesh(){return Pe},get BLEMeshConfiguration(){return $e},get BeaconBleMesh(){return Me},get Billing(){return xe},get BillingCustomerAmazon(){return ke},get BillingCustomerBraintree(){return Le},get BillingDeviceHistory(){return Fe},get BillingDeviceTypePlan(){return qe},get BillingHubspotPaymentLog(){return We},get BillingKlarnaCustomer(){return _e},get BillingKlarnaOrder(){return je},get BillingPlanFeatures(){return ze},get BillingPlans(){return Qe},get BillingStatusHistoryBraintree(){return Ve},get BillingSubscriptionAmazon(){return Ge},get BillingSubscriptionBraintree(){return Je},get Blacklist(){return He},get BlacklistType(){return Ke},get Boundary(){return Xe},get BoundaryEvent(){return Ye},get CellTower(){return Ze},get Client(){return ce},get ClientAlertConfiguration(){return ye},get ClientAlertRecipient(){return ge},get ClientAppFeature(){return et},get ClientConfiguration(){return tt},get ClientDeviceIcon(){return oe},get ClientDeviceSetting(){return it},get ClientIngestorConfiguration(){return rt},get ClientType(){return ae},get Country(){return pe},get CustomerAttribute(){return ne},get DataExport(){return at},get DataSourceType(){return nt},get Deactivation(){return ot},get DeactivationReason(){return st},get Device(){return le},get DeviceBehavior(){return lt},get DeviceBleMesh(){return Ee},get DeviceBleMeshUpdateTask(){return dt},get DeviceCameraMedia(){return mt},get DeviceCameraMediaEventType(){return ut},get DeviceCameraMediaStreamingData(){return gt},get DeviceCameraMediaSyncStatus(){return yt},get DeviceCameraRequestedPictureData(){return ct},get DeviceCameraRequestedVideoData(){return pt},get DeviceChangesHistory(){return vt},get DeviceCustomConfiguration(){return de},get DeviceEventsTriggerConfiguration(){return ht},get DeviceHistory(){return ft},get DeviceModelListener(){return It},get DevicePairing(){return Ct},get DevicePromotion(){return K},get DeviceReplacement(){return bt},get DeviceStatus(){return St},get DeviceTask(){return Dt},get DeviceType(){return se},get DeviceTypeFeature(){return wt},get DeviceTypeFirmware(){return At},get DeviceTypePromotion(){return $},get EmailDomain(){return Tt},get EntityTag(){return Nt},get EntityType(){return Bt},get Feature(){return Ut},get FirmwareAutoUpgradeBlacklist(){return Et},get FirmwareUpgradeTask(){return Pt},get HistoricalBillingPlan(){return Mt},get IccidStatus(){return Ot},get ImeiIccidCarrier(){return xt},get ImeiIccidHistory(){return kt},get ImeiIccidImport(){return Lt},get Industry(){return Ft},get LatestPosition(){return Qt},get LatestUserAppInfo(){return qt},get LiveLink(){return _t},get LiveLinkMedia(){return Wt},get M2Sync(){return jt},get Magento2Gps(){return zt},get Magento2Plan(){return Vt},get MarketplacePromotion(){return X},get MobileNetwork(){return Gt},get NotificationRecipient(){return ve},get OrderShipmentInternational(){return Jt},get Organization(){return ue},get Plan(){return Oe},get Position(){return Ht},get Promotion(){return Y},get PromotionHistory(){return Kt},get Region(){return $t},get ReportScheduleConfiguration(){return Xt},get SecurityRole(){return Ce},get ServiceProvider(){return Yt},get ServiceProviderProduct(){return Zt},get ServiceProviderProductNetwork(){return ei},get ServiceProviderProductType(){return ti},get Sim(){return ii},get Tag(){return ri},get Task(){return ai},get TaskSchedule(){return Rt},get Trip(){return ni},get TripCompletionStatus(){return oi},get TripPosition(){return si},get TripStatus(){return li},get User(){return Re},get UserActivation(){return di},get UserActivationDevice(){return ui},get UserActivationEvent(){return ci},get UserActivationMetric(){return pi},get UserAlertComplain(){return me},get UserAlertConfiguration(){return he},get UserAlertNotificationsConfig(){return fe},get UserAppFeedback(){return mi},get UserAppIncident(){return gi},get UserAuthorizedBoundary(){return yi},get UserAuthorizedBoundarySecurityView(){return vi},get UserAuthorizedDevice(){return hi},get UserAuthorizedDeviceSecurityView(){return fi},get UserConfiguration(){return Ie},get UserDataDeletionRequest(){return Ii},get UserDeviceBehaviorTask(){return Ci},get UserInvitation(){return jr},get UserRatingRequest(){return zr},get UserRegistrationAttempt(){return Vr},get UserSecurityRole(){return Se},get WebsocketConnection(){return Gr}});const Hr=["Device","Billing"];let Kr=class{afterRemove(e){const t=e.metadata.name,i=`ENTITY OF TYPE ${t} REMOVED`;Hr.includes(t)&&console.error(i,{entityId:e.entityId,entity:e.entity,databaseEntity:e.databaseEntity})}};Kr=a([e.EventSubscriber()],Kr);var $r=Object.freeze({__proto__:null,get AllEntitiesSubscriber(){return Kr}});const Xr=["commit","start transaction","select version()"];class Yr{logger;logging;constructor(e,t){this.logger=e,this.logging=null!=t&&t}serializeParameters(e){return e.map((e=>Buffer.isBuffer(e)?`X'${e.toString("hex")}'`:e))}logQuery(e,t,i){try{if(!this.logging||this.logging instanceof Array&&!this.logging.includes("query"))return;const i=e.toLowerCase();for(const e of Xr)if(i.includes(e))return;this.logger?.trace({query:e,parameters:this.serializeParameters(t)},"SQL QUERY")}catch{}}logQueryError(e,t,i,r){this.logger?.error({query:t,parameters:this.serializeParameters(i),error:e},"SQL QUERY WITH ERROR")}logQuerySlow(e,t,i,r){this.logger?.warn({query:t,parameters:this.serializeParameters(i),time:e},"SQL QUERY SLOW")}logSchemaBuild(e,t){this.logger?.trace({message:e},"SQL SCHEMA BUILD")}logMigration(e,t){this.logger?.trace({message:e},"SQL MIGRATION: ")}log(e,t,i){"warn"===e?this.logger?.warn({message:t},"SQL LOG:"):"info"===e?this.logger?.info({message:t},"SQL LOG:"):this.logger?.trace({message:t},"SQL LOG:")}}class Zr{dataSource;logger;constructor(t,i,r){this.logger=i;const a=[];for(const e in Jr){const t=Jr[e];a.push(t)}const n=[];for(const e in $r){const t=$r[e];n.push(t)}const o={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new e.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new Yr(this.logger,t.logging),entities:a,subscribers:n,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...o,...t,replication:{master:{...o,...t},slaves:r?[{...o,...r}]:[{...o,...t}],defaultMode:t.replicationMode??"master"}})}async connect(){this.dataSource.isInitialized||await this.dataSource.initialize()}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,t){return this.dataSource.query(e,t,null)}async createQueryBuilder(e,t){return this.dataSource.createQueryBuilder(e,t,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const t=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:t},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(t)}async safeQuery(e,t,i){try{await this.connect();return await e(this,i)}catch(e){throw this.logger.error({error:e},t?t+" ":"Error while executing query"),e}finally{i&&await i.release(),await this.disconnect()}}async safeQuery2(e,t,i){try{this.dataSource.isInitialized?this.logger.info("nova-orm reusing connection"):(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,i)}catch(e){throw this.logger.error({error:e},t?t+" ":"Error while executing query"),e}finally{i&&await i.release()}}async safeQuery3(e,t,i,{replicationMode:r,tag:a}={}){let n;try{await this.connect(),r?(this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),n=this.dataSource.createQueryRunner(r)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const a=this.dataSource.createQueryBuilder(e,t,n);return await i(a)}catch(e){throw this.logger.error({error:e},a?a+" ":"Error while executing query"),e}finally{n&&await n.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}}class ea{fatal=(e,t,...i)=>{this.log(or.FATAL,e,t,...i)};error=(e,t,...i)=>{this.log(or.FATAL,e,t,...i)};warn=(e,t,...i)=>{this.log(or.WARN,e,t,...i)};info=(e,t,...i)=>{this.log(or.INFO,e,t,...i)};debug=(e,t,...i)=>{this.log(or.DEBUG,e,t,...i)};trace=(e,t,...i)=>{this.log(or.TRACE,e,t,...i)};log=(e,t,i,...r)=>{switch(e){case or.FATAL:case or.ERROR:"string"==typeof t?console.error(t,...r):console.error(i,t,...r);break;default:"string"==typeof t?console.log(t,...r):console.log(i,t,...r)}}}class ta{novaDataSourceConfig;replicaNovaDataSourceConfig;logger;useBeta;constructor(e,t,i,r=!1){this.novaDataSourceConfig=e,this.replicaNovaDataSourceConfig=i,this.logger=t??new ea,this.useBeta=r}}class ia{useBeta;dataSource;logger;constructor(e){this.useBeta=e.useBeta??!1,this.dataSource=e.dataSource,this.logger=e.logger??new ea}}const ra=e=>{if(!e)return null;if(!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e))return null;try{return Buffer.from(e.replace(/-/g,""),"hex")}catch(e){return null}},aa=e=>{if(!e)return null;const t=e.toString("hex"),i=/^(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})$/.exec(t);return i?`${i[1]}-${i[2]}-${i[3]}-${i[4]}-${i[5]}`:null};const na=async(e,t,i)=>{const r=e.getRepository(Ye),a={deviceId:i,boundaryId:t.boundaryId,userId:ra(t.userId),inDate:t.eventType===P.Enter?t.sendTime:null,inLat:t.eventType===P.Enter?t.lat:null,inLon:t.eventType===P.Enter?t.lon:null,inAddress:t.eventType===P.Enter?t.address:null,outDate:t.eventType===P.Exit?t.sendTime:null,outLat:t.eventType===P.Exit?t.lat:null,outLon:t.eventType===P.Exit?t.lon:null,outAddress:t.eventType===P.Exit?t.address:null},n=await r.insert(a);return n?.raw.affectedRows>0},oa=(e,t)=>{const i=e.getTime(),r=t.getTime();return Math.abs(r-i)/1e3},sa=async(e,t,i)=>{if(!(t?.imei&&t?.boundaryId&&t?.userId&&t?.sendTime&&t?.lat&&t?.lon&&t?.address&&t?.eventType))return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - missing required parameters"),!1;const r=ra(t.userId);return r?e.safeQuery((async e=>{const a=e.getRepository(le),n=await a.findOne({where:{imei:t.imei}});if(!n)return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - device not found"),!1;const o=e.getRepository(Ye);if(!await o.findOne({where:{deviceId:n.id,boundaryId:t.boundaryId,userId:r}}))return await na(e,t,n.id);const s=await(async(e,t,i)=>{let r=null;const a=e.getRepository(Ye).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:ra(t.userId)});return r=t.eventType===P.Enter?(await a.andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","DESC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await a.andWhere("boundaryEvent.outDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","DESC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,n.id),l=await(async(e,t,i)=>{let r=null;const a=e.getRepository(Ye).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:ra(t.userId)});return r=t.eventType===P.Enter?(await a.andWhere("boundaryEvent.inDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","ASC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await a.andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","ASC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,n.id);i.trace({previousEventDate:s,nextEventDate:l},"BoundariesRepository::processBoundaryEvent - previousEventDate, nextEventDate");const d=await(async(e,t,i,r,a)=>{let n=null;const o=e.getRepository(Ye).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:ra(t.userId)});return t.eventType===P.Enter?(o.andWhere("boundaryEvent.inDate IS NULL").andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}),a&&o.andWhere("boundaryEvent.outDate <= :nextEventDate",{nextEventDate:a}),o.orderBy("boundaryEvent.outDate","ASC")):(o.andWhere("boundaryEvent.outDate IS NULL").andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}),r&&o.andWhere("boundaryEvent.inDate >= :previousEventDate",{previousEventDate:r}),r||a?o.orderBy("boundaryEvent.inDate","ASC"):o.orderBy("boundaryEvent.inDate","DESC")),n=await o.limit(1).getOne(),n})(e,t,n.id,s,l);if(i.trace({existingOrphanEventId:d?.id},"BoundariesRepository::processBoundaryEvent - existingOrphanEventId"),null!=d){return(await o.update({id:d.id},{inDate:t.eventType===P.Enter?t.sendTime:void 0,inLat:t.eventType===P.Enter?t.lat:void 0,inLon:t.eventType===P.Enter?t.lon:void 0,inAddress:t.eventType===P.Enter?t.address:void 0,outDate:t.eventType===P.Exit?t.sendTime:void 0,outLat:t.eventType===P.Exit?t.lat:void 0,outLon:t.eventType===P.Exit?t.lon:void 0,outAddress:t.eventType===P.Exit?t.address:void 0,modifiedAt:new Date,inOutDuration:t.eventType===P.Enter?oa(t.sendTime,d.outDate):oa(d.inDate,t.sendTime)})).affected>0}return await na(e,t,n.id)}),"BoundariesRepository::processBoundaryEvent"):(i.warn({params:t},"BoundariesRepository::processBoundaryEvent - userId should be a valid uuid"),!1)};const la=async(e,t,i,r,a,n)=>{const o=r?[{id:null,clientAlertConfigurationId:t,userId:null,roleId:null,isEnabled:r.isEnabled??!0,appNotification:r.appNotification??!1,emailNotification:r.emailNotification??!1,pushNotification:r.pushNotification??!1,smsNotification:r.smsNotification??!1}]:[],s=n?.map((e=>({id:null,clientAlertConfigurationId:t,userId:null,roleId:e.roleId,isEnabled:e.isEnabled,appNotification:e.appNotification??!1,emailNotification:e.emailNotification??!1,pushNotification:e.pushNotification??!1,smsNotification:e.smsNotification??!1,includeAllUsers:!1})))??[];o.push(...s);const l=a?.map((e=>({id:null,clientAlertConfigurationId:t,userId:ra(e.userId),roleId:null,isEnabled:e.isEnabled,appNotification:e.appNotification??!1,emailNotification:e.emailNotification??!1,pushNotification:e.pushNotification??!1,smsNotification:e.smsNotification??!1,includeAllUsers:!1})))??[];o.push(...l),await ua(e,t,i,o);const d=e.getRepository(ge);if(await d.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!o.length)return!0;const u=[];for(let e=0;e<o.length;e+=50)u.push(o.slice(e,e+50));for(const e of u){const t=await d.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},da=async(e,t,i,r)=>{const a=e.getRepository(ve);if(await a.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!r?.length)return!0;const n=new Date,o=r?.map((e=>({clientAlertConfigurationId:t,clientId:i,isEnabled:e.isEnabled,isUserProfile:!1,notificationType:"email"===e.type?1:2,recipient:e.recipient,createdAt:n}))),s=[];for(let e=0;e<o.length;e+=50)s.push(o.slice(e,e+50));for(const e of s){const t=await a.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},ua=async(e,t,i,r)=>{const a=await(async(e,t,i)=>{const r=t.find((e=>null==e.userId&&null==e.roleId)),a=e.getRepository(Re);if(r)return(await a.createQueryBuilder("user").where("clientId = :clientId",{clientId:i}).getMany()).map((e=>aa(e.id)));const n=new Set;t.filter((e=>null!=e.userId)).forEach((e=>{n.add(aa(e.userId))}));const o=t.filter((e=>null!=e.roleId)).map((e=>e.roleId));o.length>0&&(await a.createQueryBuilder("user").innerJoin(Se,"userSecurityRole","userSecurityRole.userId = user.id").where("user.clientId = :clientId",{clientId:i}).andWhere("userSecurityRole.securityRoleId IN (:...roleIds)",{roleIds:o}).getMany()).forEach((e=>n.add(aa(e.id))));return Array.from(n)})(e,r,i),n=e.getRepository(fe).createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t});a.length&&n.andWhere("userId NOT IN (:...userIds)",{userIds:a.map((e=>ra(e)))}),await n.execute()};const ca=(e,t)=>{const i=t.split(".");let r=e;for(const e of i){if(null==r[e])return null;r=r[e]}return r},pa=(e,t)=>!e||!t||t.some((t=>null==ca(e,t))),ma=(e,t)=>!e?.length||!t||e.some((e=>pa(e,t))),ga=(e,t)=>!e||!t||t.every((t=>null==ca(e,t)));const ya=async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.alpha2Code)return i.warn({params:t},"CountriesRepository::getCountry - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(pe).createQueryBuilder("country");i&&r.setQueryRunner(i),t.filters.id&&(r=r.andWhere("country.id = :id",{id:t.filters.id})),t.filters.alpha2Code&&(r=r.andWhere("country.alpha2Code = :alpha2Code",{alpha2Code:t.filters.alpha2Code}));return await r.getOne()}),"CountriesRepository::getCountry",r)};const va="minute",ha=/[+-]\d\d(?::?\d\d)?/g,fa=/([+-]|\d\d)/g;r.extend(((e,t,i)=>{const r=t.prototype;i.utc=function(e){return new t({date:e,utc:!0,args:arguments})},r.utc=function(e){const t=i(this.toDate(),{locale:this.$L,utc:!0});return e?t.add(this.utcOffset(),va):t},r.local=function(){return i(this.toDate(),{locale:this.$L,utc:!1})};const a=r.parse;r.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),a.call(this,e)};const n=r.init;r.init=function(){if(this.$u){const{$d:e}=this;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else n.call(this)};const o=r.utcOffset;r.utcOffset=function(e,t){const{u:i}=this.$utils();if(i(e))return this.$u?0:i(this.$offset)?o.call(this):this.$offset;if("string"==typeof e&&(e=function(e=""){const t=e.match(ha);if(!t)return null;const[i,r,a]=`${t[0]}`.match(fa)||["-",0,0],n=60*+r+ +a;return 0===n?0:"+"===i?n:-n}(e),null===e))return this;const r=Math.abs(e)<=16?60*e:e;let a=this;if(t)return a.$offset=r,a.$u=0===e,a;if(0!==e){const e=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();a=this.local().add(r+e,va),a.$offset=r,a.$x.$localOffset=e}else a=this.utc();return a};const s=r.format;r.format=function(e){const t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return s.call(this,t)},r.valueOf=function(){const e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},r.isUTC=function(){return!!this.$u},r.toISOString=function(){return this.toDate().toISOString()},r.toString=function(){return this.toDate().toUTCString()};const l=r.toDate;r.toDate=function(e){return"s"===e&&this.$offset?i(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};const d=r.diff;r.diff=function(e,t,r){if(e&&this.$u===e.$u)return d.call(this,e,t,r);const a=this.local(),n=i(e).local();return d.call(a,n,t,r)}}));const Ia=r,Ca=()=>Ia.utc().toDate(),ba=async(e,t,i)=>t?.deviceTypeId&&t?.deviceIdentifier?e.safeQuery2((async e=>{const i=e.getRepository(se),r=await i.createQueryBuilder().where("id = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).getOne();return r?`${r.identifierType}#${t.deviceIdentifier}`:null}),"DevicesRepository::generateDeviceIdentifierKey"):(i.warn({params:t},"DevicesRepository::generateDeviceIdentifierKey missing required parameters"),null);const Sa=(new Date).getTime()-new Date(2019,0,1).getTime(),Ra=36e5,Da=[8,9,13,20,31,32],wa=(e,t)=>{let i=0;return i=e>t?0:0===e?1:e/t,i},Aa=(e,t)=>{const{speed:i,deviceTypeId:r}=e,a=Number(i)<2;if((e=>!!(e?.clientDeviceSetting?.fixedStatus||e.clientDeviceSetting?.movingPingFrequency&&e.clientDeviceSetting?.movingPingFrequency>0))(t)){const{fixedStatus:e,movingPingFrequency:i,stoppedPingFrequency:r}=t.clientDeviceSetting;return e?"ON"===e?Sa:0:a?1e3*i*1.2:1e3*r*2}switch(r){case 8:case 9:return 864e5;default:return a?108e5:3e5}},Ta=(e,t)=>{const i=[];if(!e||!t)return i;const{deviceTypeId:r}=t,a={...e,deviceTypeId:r};{const e=((e,t)=>{const i={name:"cellularNetwork"};try{const r=Aa(e,t),a=(new Date).getTime(),n=a-r,o=new Date(e.created).getTime();i.ok=o>=n,i.msg=`${e.deviceTypeId}`;const s=Math.abs(a-o);i.confidence=wa(s,r)}catch(e){i.msg=JSON.stringify(e)}return i})(a,t);i.push(e);const r=((e,t,i)=>{const r={name:"gpsNetwork"};try{if(i){let i=new Date(0);if(e.gpsUTCTime){const t=Number(e.gpsUTCTime.substring(0,4)),r=Number(e.gpsUTCTime.substring(4,6))-1,a=Number(e.gpsUTCTime.substring(6,8)),n=Number(e.gpsUTCTime.substring(8,10)),o=Number(e.gpsUTCTime.substring(10,12)),s=Number(e.gpsUTCTime.substring(12));i=new Date(t,r,a,n,o,s)}const a=new Date(e.sendTime),n=Aa(e,t),o=i.getTime(),s=a.getTime(),l=Math.abs(s-o);r.ok=l<n,r.confidence=wa(l,n)}else r.ok=!1,r.confidence=1}catch(e){r.msg=JSON.stringify(e)}return r})(a,t,!!e.ok);i.push(r);const{batteryPercentage:n}=a;if(void 0!==n){const e=(e=>{const t={name:"batteryCharge"};try{const i=Number(e.batteryPercentage);t.ok=1==!!i,t.confidence=i}catch(e){t.msg=JSON.stringify(e)}return t})(a);i.push(e)}}return i},Na=e=>{const{logger:t,deviceStatus:i,withConnectionStatusInfo:r,withOnlineStatus:a}=e;try{if(i?.device?.deviceType?.readOnly)return;r&&(i.data.connectionStatus=Ta(i.data,i.device)),a&&(i.data.isOnline=(e=>{let t=126e5;Da.some((t=>t==e.deviceTypeId))&&(t=9e7),e?.restFrequency&&1e3*e?.restFrequency>t&&(t=1e3*e.restFrequency+Ra);const i=new Date(e.sendTime);return`${(new Date).getTime()-i.getTime()<t}`})(i.data))}catch(e){t.error(e,"Error while extending device status properties")}};const Ba=["deviceTypeId","featureKey"],Ua=["deviceTypeId","featureKey"];const Ea=async(e,t,i)=>0===t?.length||ma(t,$i)?(i.warn({paramsArray:t},"EntityTagsRepository::bulkCreateEntityTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(Nt),r=t.map((e=>({...e,userId:e.userId?ra(e.userId):null,createdAt:Ca()})));return await i.save(r)??[]}),"EntityTagsRepository::bulkCreateEntityTag error"),Pa=async(e,t,i)=>pa(t,Zi)||ga(t,er)?(i.warn({params:t},"EntityTagsRepository::bulkDeleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{let i=e.getRepository(Nt).createQueryBuilder().where("clientId = :clientId",{clientId:t.clientId}).andWhere("entityType = :entityType",{entityType:t.entityType});t.tagIds?.length&&(i=i.andWhere("tagId IN (:...tagIds)",{tagIds:t.tagIds})),t.entityIds?.length&&(i=i.andWhere("entityId IN (:...entityIds)",{entityIds:t.entityIds}));return(await i.delete().execute()).affected>0}),"EntityTagsRepository::bulkDeleteEntityTag");const Ma=["key","name"];const Oa=async(e,t,i)=>{if((e=>!(e?.filters?.firmwareId||e?.filters?.taskId||e?.filters?.statuses?.length||e?.filters?.imeis?.length))(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareUpgradeTasks incorrect params"),null;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Pt).createQueryBuilder("firmwareUpgradeTask");i&&r.setQueryRunner(i),r=await(async(e,t)=>(e?.filters?.imeis?.length&&(t=t.andWhere("firmwareUpgradeTask.imei IN (:...imeis)",{imeis:e.filters.imeis})),t))(t,r),r=((e,t)=>(e?.filters?.statuses&&(t=t.andWhere("firmwareUpgradeTask.status IN (:...statuses)",{statuses:e.filters.statuses})),t))(t,r),r=((e,t)=>(e?.filters?.firmwareId&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId = :deviceTypeFirmwareId",{deviceTypeFirmwareId:e.filters.firmwareId})),e?.filters?.firmwareIds?.length&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId IN (:...deviceTypeFirmwareIds)",{deviceTypeFirmwareIds:e.filters.firmwareIds})),t))(t,r),r=((e,t)=>(e?.filters?.taskId&&(t=t.andWhere("firmwareUpgradeTask.id = :id",{id:ra(e.filters.taskId)})),t))(t,r),r=((e,t)=>(e?.projectionOptions?.withDeviceFirmware&&(t=t.leftJoinAndSelect("firmwareUpgradeTask.deviceTypeFirmware","deviceTypeFirmware")),t))(t,r),r=((e,t)=>(e?.projectionOptions?.withDevice&&(t=t.leftJoinAndMapOne("firmwareUpgradeTask.device",le,"device","firmwareUpgradeTask.imei = device.imei"),e?.projectionOptions?.deviceWithDeviceType&&(t=t.leftJoinAndMapOne("device.deviceType",se,"deviceType","device.deviceTypeId = deviceType.id"))),t))(t,r),r=((e,t)=>(e?.filters?.startDate&&e?.filters?.endDate&&e?.filters?.endDate>e?.filters?.startDate&&(t=t.andWhere("firmwareUpgradeTask.modifiedAt between :modifiedFrom and :modifiedTo",{modifiedFrom:e.filters.startDate,modifiedTo:e.filters.endDate})),t))(t,r),r=((e,t)=>(!0!==e?.filters?.postUpgradeCompleted&&!1!==e?.filters?.postUpgradeCompleted||(t=t.andWhere("firmwareUpgradeTask.postUpgradeCompleted = :postUpgradeCompleted",{postUpgradeCompleted:e.filters.postUpgradeCompleted})),t))(t,r),r=r.orderBy("firmwareUpgradeTask.modifiedAt","DESC"),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100);return await r.getMany()}),"FirmwaresRepository::getFirmwareUpgradeTasks",r)},xa=async(e,t,i)=>{if((e=>!(e?.filters?.firmwareId||e?.filters?.taskId||e?.filters?.statuses?.length||e?.filters?.imeis?.length))(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareUpgradeTasksCount incorrect params"),0;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Pt).createQueryBuilder("firmwareUpgradeTask");i&&r.setQueryRunner(i),r=await(async(e,t)=>(e?.filters?.imeis?.length&&(t=t.andWhere("firmwareUpgradeTask.imei IN (:...imeis)",{imeis:e.filters.imeis})),t))(t,r),r=((e,t)=>(e?.filters?.statuses&&(t=t.andWhere("firmwareUpgradeTask.status IN (:...statuses)",{statuses:e.filters.statuses})),t))(t,r),r=((e,t)=>(e?.filters?.firmwareId&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId = :deviceTypeFirmwareId",{deviceTypeFirmwareId:e.filters.firmwareId})),t))(t,r),r=((e,t)=>(e?.filters?.taskId&&(t=t.andWhere("firmwareUpgradeTask.id = :id",{id:ra(e.filters.taskId)})),t))(t,r);return await r.getCount()}),"FirmwaresRepository::getFirmwareUpgradeTasksCount",r)};const ka=async(e,t,i)=>{if(!t?.id||!t?.imei)return!1;const r=e.getRepository(Qt);try{const{id:e,deleted:i,...a}=t,n=r.createQueryBuilder();if((await n.insert().into(Qt).values({...a,positionId:e}).orIgnore().execute()).raw.affectedRows>0)return!0;return(await n.update(Qt).set({...a,positionId:e}).where("imei = :imei",{imei:t.imei}).andWhere("positionId < :positionId",{positionId:t.id}).execute()).affected>0}catch(e){return i.warn(e,"PositionsRepository::upsertLatestPosition error"),!1}},La=e=>({imei:e.imei,createdAt:e.createdAt,actualDate:e.actualDate,sendTime:e.sendTime,messageId:aa(e.messageId),lat:e.lat,lon:e.lon,azimuth:e.azimuth??0,address:e.address,speed:e.speed,odometer:e.odometer,batteryPercentage:e.batteryPercentage,externalPowerVoltage:e.externalPowerVoltage,externalBatteryPercentage:e.externalBatteryPercentage,totalCount:e.totalCount});const Fa=["name","description","type","startDate","status"],Qa=["filters.id"],qa=["values.name","values.description","values.type","values.discount","values.discountBillingCycles","values.freeServiceMonths","values.startDate","values.endDate","values.status","values.bannerText","values.trackerText"],Wa=["filters.id","filters.marketplaceId","filters.asin","filters.imei","filters.deviceTypeId","filters.status"],_a=["marketplaceId","promotionId"],ja=["deviceTypeId","promotionId"],za=["promotionId","marketplaceId"],Va=["promotionId","deviceTypeId"],Ga=["filters.promotionId","filters.deviceTypeId"],Ja=["filters.promotionId","filters.marketplaceId"],Ha=["imei","promotionId","promotionType","appliedAt"],Ka=(e,t)=>{const i=e,r=e,a=i.type??r.values.type;if(a===M.Discount){return(i.discount??r.values.discount)<=0}if(a===M.FreeService){return(i.freeServiceMonths??r.values.freeServiceMonths)<=0}return t.warn({params:e},"PromotionRepository::invalidPromotion incorrect promotion type"),!1};const $a=(e,t,i)=>{const r=[];let a=[];for(const n of e)a.push(i(n)),a.length===t&&(r.push(a),a=[]);return a.length>0&&r.push(a),r};const Xa=async(e,t,i)=>{if(ga(t,Ur))return i.warn({params:t},"UsersRepository::getUserById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,r)=>{let a=e.getRepository(Re).createQueryBuilder("user");if(r&&(a=a.setQueryRunner(r)),t.filters.id){const e=ra(t?.filters?.id);if(!e?.length)return i.warn({params:t},"UsersRepository::getUserById - user id should be a valid UUID"),null;a=a.where("user.id = :id",{id:e})}t.filters.numberId&&(a=a.andWhere("user.numberId = :numberId",{numberId:t.filters.numberId})),t.projectionOptions?.withSecurityRole&&(a=a.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole"));return await a.getOne()}),"UsersRepository::getUserById",r)},Ya=e=>{if(!e)return!1;for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(null!=i){if("object"!=typeof i)return!0;if(Ya(i))return!0}}return!1};const Za=(e,t,i,r)=>{if(!e||!t)return e;for(const a of i){const i=t[a.filterName],n=a.targetFieldName;if(void 0!==i&&n&&a.comparisonOperator)if(null!==i)switch(a.comparisonOperator){case"RANGE":const t=i.minValue,o=i.maxValue;null!=t&&(e=e.andWhere(`${r}.${n} >= :${n}MinValue`,{[`${n}MinValue`]:t})),null!=o&&(e=e.andWhere(`${r}.${n} <= :${n}MaxValue`,{[`${n}MaxValue`]:o}));break;case"LIKE":e=e.andWhere(`LOWER(${r}.${n}) LIKE LOWER(:${n})`,{[n]:`%${i}%`});break;case"=":e=e.andWhere(`${r}.${n} = :${n}`,{[n]:i});break;case"IN":e=e.andWhere(`${r}.${n} IN (:...${n})`,{[n]:i});break;default:throw new Error(`Unknown comparison operator: ${a.comparisonOperator}`)}else e=e.andWhere(`${r}.${n} IS NULL`)}return e},en=[{targetFieldName:"clientId",filterName:"clientId",comparisonOperator:"="},{targetFieldName:"repeats",filterName:"repeats",comparisonOperator:"="},{targetFieldName:"createdBy",filterName:"createdBy",comparisonOperator:"="},{targetFieldName:"modifiedBy",filterName:"modifiedBy",comparisonOperator:"="},{targetFieldName:"deletedBy",filterName:"deletedBy",comparisonOperator:"="},{targetFieldName:"status",filterName:"statusList",comparisonOperator:"IN"},{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"},{targetFieldName:"notes",filterName:"notes",comparisonOperator:"LIKE"},{targetFieldName:"dueDate",filterName:"dueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueOdometer",filterName:"dueOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueActiveHours",filterName:"dueActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalDays",filterName:"intervalDaysFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartDate",filterName:"intervalStartDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalOdometer",filterName:"intervalOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartingOdometer",filterName:"intervalStartingOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalActiveHours",filterName:"intervalActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartingActiveHours",filterName:"intervalStartingActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"createdAt",filterName:"createdAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"modifiedAt",filterName:"modifiedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedAt",filterName:"deletedAtFilter",comparisonOperator:"RANGE"}],tn=[{targetFieldName:"id",filterName:"taskId",comparisonOperator:"="},{targetFieldName:"taskScheduleId",filterName:"taskScheduleId",comparisonOperator:"="},{targetFieldName:"imei",filterName:"imeiList",comparisonOperator:"IN"},{targetFieldName:"clientId",filterName:"clientId",comparisonOperator:"="},{targetFieldName:"dueDate",filterName:"dueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueOdometer",filterName:"dueOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueActiveHours",filterName:"dueActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"startDate",filterName:"startDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"startingOdometer",filterName:"startingOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"startingActiveHours",filterName:"startingActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"status",filterName:"statusList",comparisonOperator:"IN"},{targetFieldName:"createdAt",filterName:"createdAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"pastDueAt",filterName:"pastDueAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"completedAt",filterName:"completedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"completionNotes",filterName:"completionNotes",comparisonOperator:"LIKE"},{targetFieldName:"completionOdometer",filterName:"completionOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"completionActiveHours",filterName:"completionActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"completedBy",filterName:"completedBy",comparisonOperator:"LIKE"},{targetFieldName:"modifiedAt",filterName:"modifiedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"modifiedBy",filterName:"modifiedBy",comparisonOperator:"LIKE"},{targetFieldName:"queuedAt",filterName:"queuedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"predictedDueDate",filterName:"predictedDueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedAt",filterName:"deletedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedBy",filterName:"deletedBy",comparisonOperator:"LIKE"}],rn=[{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"}],an=async(e,t,i)=>{if(!Ya(t?.filters))return i.warn({params:t},"TasksRepository::getTaskSchedules missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Rt).createQueryBuilder("taskSchedule");i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(Dt,"dt","taskSchedule.id = dt.taskScheduleId").andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Za(r,t.filters,en,"taskSchedule"),t.filters.authorizedImeis?.length&&(r=r.andWhere("\n NOT EXISTS (\n SELECT 1\n FROM deviceTask dt1\n WHERE dt1.taskScheduleId = taskSchedule.id\n AND dt1.imei NOT IN (:authorizedDevices)\n )\n ",{authorizedDevices:t.filters.authorizedImeis})),t.filters.imeiList?.length&&(r=r.groupBy("taskSchedule.id"));const a=t.sortOptions?.sortField??"id",n=t.sortOptions?.sortOrder??"DESC";r=r.orderBy(`taskSchedule.${a}`,n);const o=await r.limit(t?.pagingOptions?.pageSize??100).offset((t?.pagingOptions?.pageSize??100)*(t?.pagingOptions?.pageIndex??0)).getMany();if(t.projectionOptions?.numberOfDevicesToGet>0&&o?.length>0){const i=await(async(e,t,i)=>{if(!e.length)return[];const r=e.map((e=>({id:e,deviceTasks:[],deviceCount:0}))),a=i.getRepository(Dt),n=a.createQueryBuilder("deviceTask").where("deviceTask.taskScheduleId IN (:...taskSchedulesIds)",{taskSchedulesIds:e}).andWhere(`(deviceTask.taskScheduleId, deviceTask.imei) in (\n select taskScheduleId, imei from \n (\n select dt.*, ROW_NUMBER() over (partition by dt.taskScheduleId order by dt.taskScheduleId) as row_rank\n from deviceTask dt \n ) sub\n where sub.row_rank <= ${t}\n )`),o=await n.getMany(),s=a.createQueryBuilder("deviceTask"),l=await s.select("deviceTask.taskScheduleId as taskScheduleId").addSelect("COUNT(deviceTask.taskScheduleId)","deviceCount").where("deviceTask.taskScheduleId IN (:...taskSchedulesIds)",{taskSchedulesIds:e}).groupBy("deviceTask.taskScheduleId").getRawMany();for(const e of r)e.deviceTasks=o.filter((t=>t.taskScheduleId===e.id)),e.deviceCount=l.find((t=>t.taskScheduleId===e.id))?.deviceCount??0;return r})(o.map((e=>e.id)),t.projectionOptions.numberOfDevicesToGet,e);for(const e of o){const t=i.filter((t=>t.id===e.id));e.deviceTasks=t.length?t[0].deviceTasks:[],e.totalDevicesCount=t.length?t[0].deviceCount:0}}return o}),"TasksRepository::getTaskSchedules",r)};const nn=(e,t,i,r,a)=>{if(null!=t[a]){const n={};n[a]=t[a],e.andWhere(`${i} ${r} :${a}`,n)}};const on=async(e,t,i)=>{const r=e.getRepository(Se).createQueryBuilder("userSecurityRole");i&&r.setQueryRunner(i);return await r.innerJoin(Re,"user","user.id = userSecurityRole.userId and user.clientId = userSecurityRole.clientId").where("userId = :userId",{userId:t}).getMany()},sn=async(e,t,i,r)=>{const a=e.getRepository(fe).createQueryBuilder();r&&a.setQueryRunner(r);return await a.where("userId = :userId and clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{userId:t,clientAlertConfigurationIds:i.map((e=>e.id))}).getMany()},ln=async(e,t,i,r)=>{let a=e.getRepository(ye).createQueryBuilder("clientAlertConfiguration").distinct(!0);r&&a.setQueryRunner(r),a=a.innerJoin(Re,"user","user.clientId = clientAlertConfiguration.clientId and user.id = :userId",{userId:t}).leftJoin(ge,"clientAlertRecipient","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertRecipient.userId IS NULL AND clientAlertRecipient.roleId IS NULL").orWhere("clientAlertRecipient.userId IS NOT NULL and clientAlertRecipient.userId = :userId",{userId:t}),i.length>0&&a.orWhere("clientAlertRecipient.roleId IS NOT NULL and clientAlertRecipient.roleId IN (:...roleIds)",{roleIds:i.map((e=>e.securityRoleId))});return await a.getMany()},dn=async(e,t,i)=>{if(!t.length)return[];const r=e.getRepository(ge).createQueryBuilder();i&&r.setQueryRunner(i);return await r.where("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t}).getMany()};const un=async(e,t,i)=>{if(!t?.filters?.clientId||!t?.filters?.status&&!t?.filters?.roleId)return i.warn({params:t},"UsersRepository::getUsersWithRoles - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Re).createQueryBuilder("user").innerJoin(Se,"userSecurityRole","userSecurityRole.userId = user.id").innerJoin(Ce,"securityRole","securityRole.id = userSecurityRole.securityRoleId").where("user.clientId = :clientId",{clientId:t.filters.clientId});i&&(r=r.setQueryRunner(i)),t.filters.roleId&&(r=r.andWhere("securityRole.id = :roleId",{roleId:t.filters.roleId})),t.filters.status&&(r=r.andWhere("user.status = :status",{status:t.filters.status})),r=r.addSelect("securityRole.name","role").addSelect("securityRole.id","roleId");return(await r.getRawMany()).map((e=>((e,t="")=>{if(!e)return null;const i={};return Object.keys(e).forEach((r=>{const a=new RegExp(`^${t}`),n=r.replace(a,"");i[n]=e[r]})),i})(e,"user_")))}),"UsersRepository::getUsersWithRoles",r)},cn=async(e,t,i)=>{let r=await ya(t,{filters:{alpha2Code:e}},i);return r||(r=await ya(t,{filters:{alpha2Code:"US"}},i)),r?.id};var pn=Object.freeze({__proto__:null,AcumaticaRepository:class extends ta{async getAcumaticaImeiIccidData(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaImeiIccidData started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imei&&!t?.filters?.imeiList?.length&&null==t.filters.excludeNullAsin&&null==t.filters.excludeNullCountyCode&&!t.filters.excludeCountries?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaImeiIccidData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData");return i&&r.setQueryRunner(i),t.filters.imeiList?.length?r.where("acumaticaImeiIccidData.imei IN (:...imeiList)",{imeiList:t.filters.imeiList}):t.filters.imei&&r.where("acumaticaImeiIccidData.imei = :imei",{imei:t.filters.imei}),t.filters.excludeNullAsin&&r.andWhere("acumaticaImeiIccidData.asin IS NOT NULL"),t.filters.excludeNullCountyCode&&r.andWhere("acumaticaImeiIccidData.countryCode IS NOT NULL"),t.filters.excludeCountries?.length&&r.andWhere("acumaticaImeiIccidData.countryCode NOT IN (:...excludeCountries)",{excludeCountries:t.filters.excludeCountries}),t.sortOptions?.sortField&&r.orderBy(`acumaticaImeiIccidData.${t.sortOptions.sortField}`,"ASC"===t.sortOptions.sortOrder?"ASC":"DESC"),await r.getMany()}),"AcumaticaRepository::getAcumaticaImeiIccidData",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaImeiIccidData result"),i}async getAcumaticaShipmentAmazon(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaShipmentAmazon started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.shipmentIds?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaShipmentAmazon - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(u).createQueryBuilder().where("LOWER(shipmentId) IN (:...shipmentIds)",{shipmentIds:t.filters.shipmentIds.map((e=>e.toLowerCase()))});return i&&r.setQueryRunner(i),await r.getMany()}),"AcumaticaRepository::getAcumaticaShipmentAmazon",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaShipmentAmazon result"),i}async getLastAcumaticaShipmentDetails(e){this.logger.trace(e,"AcumaticaRepository::getLastAcumaticaShipmentDetails started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"AcumaticaRepository::getLastAcumaticaShipmentDetails - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData").innerJoin(le,"device","device.imei = acumaticaImeiIccidData.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId}).orderBy("acumaticaImeiIccidData.shipDate","DESC").limit(1);i&&r.setQueryRunner(i);const a=await r.getOne();return a?{imei:a.imei,iccid:a.iccid,shipmentDate:new Date(a.shipDate),orderType:"AZ",reviewUrl:null,productUrl:null}:null}),"AcumaticaRepository::getLastAcumaticaShipmentDetails",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getLastAcumaticaShipmentDetails result"),i}async getAcumaticaShipmentDetails(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaShipmentDetails started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imeiList?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaShipmentDetails - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(l),a=r.createQueryBuilder("acumaticaOrderShipmentDetails").where("acumaticaOrderShipmentDetails.imei IN (:imeiList)",{imeiList:t.filters.imeiList}).select(["acumaticaOrderShipmentDetails.imei as imei","acumaticaOrderShipmentDetails.iccid as iccid","acumaticaOrderShipmentDetails.orderType as orderType","acumaticaOrderShipmentDetails.shipmentDate as shipmentDate","NULL as reviewUrl","NULL as productUrl"]).getQueryAndParameters(),n=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData").leftJoin(o,"acumaticaAmazonProduct","acumaticaAmazonProduct.asin = acumaticaImeiIccidData.asin").where("acumaticaImeiIccidData.imei IN (:imeiList)",{imeiList:t.filters.imeiList}).select(["acumaticaImeiIccidData.imei as imei","acumaticaImeiIccidData.iccid as iccid","'AZ' as orderType","acumaticaImeiIccidData.shipDate as shipmentDate","acumaticaAmazonProduct.reviewUrl as reviewUrl","acumaticaAmazonProduct.productUrl as productUrl"]).getQueryAndParameters(),d=[...a[1],...n[1]],u=`(${a[0]}) UNION (${n[0]})`;return(i?await i.query(u,d):await r.query(u,d)).map((e=>({imei:e.imei,iccid:e.iccid,shipmentDate:e.shipmentDate instanceof Date?e.shipmentDate:new Date(e.shipmentDate),orderType:e.orderType,reviewUrl:e.reviewUrl,productUrl:e.productUrl})))}),"AcumaticaRepository::getAcumaticaShipmentDetails",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaShipmentDetails result"),i}async getOrderShipmentInternational(e){this.logger.trace(e,"AcumaticaRepository::getOrderShipmentInternational started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imei)return i.warn({params:t},"AcumaticaRepository::getOrderShipmentInternational - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Jt).createQueryBuilder("orderShipmentInternational").where("LOWER(orderShipmentInternational.imei) = LOWER(:imei)",{imei:t.filters.imei});return i&&r.setQueryRunner(i),await r.getMany()}),"AcumaticaRepository::getOrderShipmentInternational",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getOrderShipmentInternational result"),i}},AempTokenRepository:class extends ta{async getAempTokens(e){this.logger.trace(e,"AempTokenRepository::getAempTokens started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.token)return i.warn({params:t},"AempTokenRepository::getAempTokens - missing required parameters"),[];const r=ra(t?.filters?.token);if(t?.filters?.token&&!r?.length)return i.warn({params:t},"AempTokenRepository::getClientIdForToken - token should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(c).createQueryBuilder("AempToken");return i&&(a=a.setQueryRunner(i)),t?.filters?.clientId&&(a=a.andWhere("AempToken.clientId = :clientId",{clientId:t?.filters?.clientId})),t?.filters?.token&&(a=a.andWhere("AempToken.token = :token",{token:r})),await a.getMany()}),"AempTokenRepository::getAempTokens",a)})(t,e,this.logger);return this.logger.trace(i,"AempTokenRepository::getAempTokens result"),i}async createAempToken(e){this.logger.trace(e,"AempTokenRepository::createAempToken started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.clientId||!t?.token)return i.warn({params:t},"AempTokenRepository::createAempToken - missing required parameters"),null;const r=ra(t?.token);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(c),a=new Date,n={id:t?.id,clientId:t?.clientId,token:r,createdAt:a,updatedAt:a,expiresAt:t?.expiresAt};return await i.save(n)}),"AempTokenRepository::createAempToken"):(i.warn({params:t},"AempTokenRepository::createAempToken - token should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"AempTokenRepository::createAempToken result"),i}async deleteAempTokens(e){this.logger.trace(e,"AempTokenRepository::deleteAempTokens started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.clientId&&!t?.filters?.token)return i.warn({params:t},"AempTokenRepository::deleteAempTokens - missing required parameters"),null;const r=ra(t?.filters?.token);return t?.filters?.token&&!r?.length?(i.warn({params:t},"AempTokenRepository::deleteAempTokens - token should be a valid UUID"),null):e.safeQuery((async e=>{let i=e.getRepository(c).createQueryBuilder().delete();return t.filters.id&&(i=i.andWhere("id = :id",{id:t.filters.id})),t.filters.clientId&&(i=i.andWhere("clientId = :clientId",{clientId:t.filters.clientId})),t.filters.token&&(i=i.andWhere("token = :token",{token:r})),(await i.execute()).affected>0}),"AempTokenRepository::deleteAempTokens")})(t,e,this.logger);return this.logger.trace({result:i},"AempTokenRepository::deleteAempTokens result"),i}},AlertRepository:class extends ta{async createAlert(e){this.logger.trace(e,"AlertRepository::createAlert started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.clientId&&0!==t.clientId&&t?.alertTypeId&&0!==t.alertTypeId&&t?.messageId&&t?.imei&&t?.sendTime))return null;try{await e.connect();const i=e.getRepository(g),r=new Date,a={id:t.id,alertTypeId:t.alertTypeId,value:t.value,userId:ra(t.userId),messageId:ra(t.messageId),imei:t.imei,sendTime:t.sendTime,lat:t.lat,lon:t.lon,address:t.address,clientId:t.clientId,isBuffer:t.isBuffer,isNotification:t.isNotification,gpsUtcTime:t.gpsUtcTime,relevantAddress:t.relevantAddress,gpsMessageId:ra(t.gpsMessageId),cellTowerRelevantAddress:t.cellTowerRelevantAddress,createdAt:t.createdAt??r,userAlertConfigurationId:t.userAlertConfigurationId,clientAlertConfigurationId:t.clientAlertConfigurationId};return await i.save(a)}catch(e){throw i.error(e,"AlertRepository::createAlert error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::createAlert result"),i}async createAlerts(e){this.logger.trace(e,"AlertRepository::createAlerts started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const i=e.getRepository(g),r=[];return t.forEach((e=>{if(!(e?.clientId&&0!==e.clientId&&e?.alertTypeId&&0!==e.alertTypeId&&e?.messageId&&e?.imei&&e?.sendTime))return null;const t=new Date,i={id:e.id,alertTypeId:e.alertTypeId,value:e.value,userId:ra(e.userId),messageId:ra(e.messageId),imei:e.imei,sendTime:e.sendTime,lat:e.lat,lon:e.lon,address:e.address,clientId:e.clientId,isBuffer:e.isBuffer,isNotification:e.isNotification,gpsUtcTime:e.gpsUtcTime,relevantAddress:e.relevantAddress,gpsMessageId:ra(e.gpsMessageId),cellTowerRelevantAddress:e.cellTowerRelevantAddress,createdAt:e.createdAt??t,userAlertConfigurationId:e.userAlertConfigurationId,clientAlertConfigurationId:e.clientAlertConfigurationId,deleted:!1};r.push(i)})),await i.save(r)}catch(e){throw i.error(e,"AlertRepository::createAlert error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::createAlerts result"),i}async getAlertsReportByUser(e){this.logger.trace(e,"AlertRepository::getAlertsReportByUserId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"AlertRepository::getAlertsReportByUser - missing required parameters"),[];const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"AlertRepository::getAlertsReportByUser - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository(g).createQueryBuilder("a").setQueryRunner(a).innerJoin("a.alertType","aty").where("a.userId = :userId",{userId:ra(t.filters.userId)}).andWhere("a.deleted = 0");t.filters.isTestEnvironment?i.andWhere("( aty.stage = :stage_test or aty.stage = :stage )",{stage:"prod",stage_test:"test"}):i.andWhere("aty.stage = :stage",{stage:"prod"}),t.filters.imeis?.length&&i.andWhere("a.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.clientId&&i.andWhere("a.clientId = :clientId",{clientId:t.filters.clientId});let r=t.filters.alertTypeIds;if(!r?.length&&t.filters.alertTypeNames?.length){const i=e.getRepository(m),a=await i.createQueryBuilder("aty").where("LOWER(aty.name) IN (:...alertTypeNames)",{alertTypeNames:t.filters.alertTypeNames.map((e=>e.toLowerCase()))}).select("aty.id").getMany();a?.length&&(r=a.map((e=>e.id)))}r?.length&&i.andWhere("a.alertTypeId IN (:alertTypeIds)",{alertTypeIds:r}),t.filters.boundaryId&&i.andWhere("a.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.sendTimeFrom&&i.andWhere("a.sendTime >= :sendTimeFrom",{sendTimeFrom:t.filters.sendTimeFrom}),t.filters.sendTimeTo&&i.andWhere("a.sendTime <= :sendTimeTo",{sendTimeTo:t.filters.sendTimeTo}),t.filters.createdFrom&&i.andWhere("a.createdAt >= :createdFrom",{createdFrom:t.filters.createdFrom}),t.filters.createdTo&&i.andWhere("a.createdAt <= :createdTo",{createdTo:t.filters.createdTo});const n=i.clone().select("COUNT(a.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixAlertUserId_Imei_AlertTypeId_SendTime"),n.useIndex("ixAlertUserId_Imei_AlertTypeId_SendTime")):r?.length&&(i.useIndex("ixAlertUserId_AlertTypeId_SendTime"),n.useIndex("ixAlertUserId_AlertTypeId_SendTime")),i.innerJoin(`(${n.getQuery()})`,"sub"),t.sortOptions?.sortField&&i.orderBy(t.sortOptions.sortField,t.sortOptions.sortOrder),await i.select(["a.id as id","a.alertTypeId as alertTypeId","aty.name as alertTypeName","a.value as value","a.createdAt as createdAt","a.userId as userId","a.clientId as clientId","a.messageId as messageId","a.boundaryId as boundaryId","a.imei as imei","a.sendTime as sendTime","a.lat as lat","a.lon as lon","a.address as address","a.isBuffer as isBuffer","a.isNotification as isNotification","a.gpsMessageId as gpsMessageId","a.gpsUTCTime as gpsUTCTime","aty.stage as stage","sub.totalCount as totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()}catch(e){throw i.error(e,"AlertRepository::getAlertsReportByUserId error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::getAlertsReportByUserId result"),i}async createUserAlertComplain(e){this.logger.trace(e,"AlertRepository::createUserAlertComplain started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>t?.clientId&&0!==t.clientId&&t?.alertTypeId&&0!==t.alertTypeId&&t?.userId&&t?.email&&t?.reason?e.safeQuery((async e=>{const i=e.getRepository(me),r=new Date,a={alertTypeId:t.alertTypeId,userId:ra(t.userId),clientId:t.clientId,createdAt:t.createdAt??r,email:t.email,reason:t.reason};return await i.save(a)}),"AlertRepository::createUserAlertComplain"):null)(t,e);return this.logger.trace(i,"AlertRepository::createUserAlertComplain result"),i}},AlertTypesRepository:class extends ta{async getAlertTypes(e){this.logger.trace(e,"AlertTypesRepository::getAlertTypes started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(m).createQueryBuilder("alertType");return i&&(r=r.setQueryRunner(i)),t?.filters?.includeBeta||(r=r.where("alertType.stage = 'prod'")),await r.getMany()}),"AlertTypesRepository::getAlertTypes",i)})(t,e);return this.logger.trace(i,"AlertTypesRepository::getAlertTypes result"),i}},AppFeaturesRepository:class extends ta{async createAppFeatureType(e){this.logger.trace("AppFeaturesRepository::createAppFeatureType started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.description&&t?.name?e.safeQuery((async e=>{const i=e.getRepository(y),r={...t,statusId:t.statusId??1};return await i.save(r)}),"AppFeaturesRepository::createAppFeatureType"):(i.warn({params:t},"AppFeaturesRepository::createAppFeatureType - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::createAppFeatureType result"),i}async createClientAppFeature(e){this.logger.trace("AppFeaturesRepository::createClientAppFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.appFeatureTypeId&&t.entityId?e.safeQuery((async e=>{const i=e.getRepository(et),r={...t,statusId:t.statusId??1};return await i.save(r)}),"AppFeaturesRepository::createClientAppFeature"):(i.warn({params:t},"AppFeaturesRepository::createClientAppFeature - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::createClientAppFeature result"),i}async getClientAppFeatures(e){this.logger.trace("AppFeaturesRepository::getClientAppFeatures started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.clientId||t?.filters?.appFeatureTypeId||t.filters?.entityId||t.filters?.statusId))return i.warn({params:t},"AppFeaturesRepository::getClientAppFeatures - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(et).createQueryBuilder("clientAppFeature");return i&&(r=r.setQueryRunner(i)),t.projectionOptions?.withAppFeatureType&&(r=r.leftJoinAndSelect("clientAppFeature.appFeatureType","appFeatureType")),t.filters.clientId&&(r=r.andWhere("clientAppFeature.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.appFeatureTypeId&&(r=r.andWhere("clientAppFeature.appFeatureTypeId = :appFeatureTypeId",{appFeatureTypeId:t.filters.appFeatureTypeId})),t.filters.entityId&&(r=r.andWhere("clientAppFeature.entityId = :entityId",{entityId:t.filters.entityId})),t.filters.statusId&&(r=r.andWhere("clientAppFeature.statusId = :statusId",{statusId:t.filters.statusId})),await r.getMany()}),"AppFeaturesRepository::getClientAppFeatures",r)})(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::getClientAppFeatures result"),i}},AssetCategoriesRepository:class extends ta{async getAssetCategories(e){this.logger.trace("AssetCategoriesRepository::getAssetCategories started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams({queryOptions:{forceUseReplica:t}});return e.safeQuery((async(e,t)=>{const i=e.getRepository(ee).createQueryBuilder("assetCategory");return t&&i.setQueryRunner(t),await i.getMany()}),"AssetcategoriesRepository::getAssetCategories",i)})(t,e);return this.logger.trace(i,"AssetCategoriesRepository::getAssetCategories result"),i}},BLEMeshConfigurationRepository:class extends ta{async getBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::getBLEMeshConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imeiMain&&!t?.filters?.btmacMain)return i.warn({params:t},"BLEMeshConfigurationRepository::getBLEMeshConfiguration missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository($e).createQueryBuilder("bleMeshConfiguration");return i&&r.setQueryRunner(i),t.filters.imeiMain&&(r=r.where("bleMeshConfiguration.imeiMain = :imeiMain",{imeiMain:t.filters.imeiMain})),t.filters.btmacMain&&(r=r.andWhere("bleMeshConfiguration.btmacMain = :btmacMain",{btmacMain:t.filters.btmacMain})),await r.getMany()}),"BLEMeshConfigurationRepository::getDevicePairings",r)})(t,e,this.logger);return this.logger.trace(i,"BLEMeshConfigurationRepository::getBLEMeshConfiguration result"),i}async createBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::createBLEMeshConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeiMain&&t?.btmacMain&&t?.bleMac?e.safeQuery((async e=>{const i=e.getRepository($e),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"BLEMeshConfigurationRepository::createBLEMeshConfigurationParams"):(i.warn({params:t},"BLEMeshConfigurationRepository::createBLEMeshConfigurationParams missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshConfigurationRepository::createBLEMeshConfiguration result"),i}async updateBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::updateBLEMeshConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.imeiMain||t?.values?.bleMac||t?.values?.btmacMain||t?.values?.connectionType)?e.safeQuery((async e=>{const i=e.getRepository($e),r=new Date,a=i.createQueryBuilder().update($e).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await a.execute()).affected>0}),"BLEMeshConfigurationRepository::updateBLEMeshConfiguration"):(i.warn({params:t},"BLEMeshConfigurationRepository::updateBLEMeshConfiguration missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshConfigurationRepository::updateBLEMeshConfiguration result"),i}async deleteBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::deleteBLEMeshConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository($e).createQueryBuilder().delete().where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"BLEMeshConfiguration::deleteBLEMeshConfiguration"):(i.warn({params:t},"BLEMeshConfiguration::deleteBLEMeshConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshConfigurationRepository::deleteBLEMeshConfiguration result"),i}},BLEMeshRepository:class extends ta{async createBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::createBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.name&&t?.lat&&t?.lon&&t.clientId&&t.address?e.safeQuery((async e=>{const i=e.getRepository(Pe),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"BLEMeshRepository::createBLEMesh"):(i.warn({params:t},"BLEMeshRepository::createBLEMesh missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::createBLEMesh result"),i}async getBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId||t?.filters?.bleMeshIds?.length?e.safeQuery((async(e,i)=>{let r=e.getRepository(Pe).createQueryBuilder("bleMesh");i&&r.setQueryRunner(i),t.filters.clientId&&(r=r.andWhere("bleMesh.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.bleMeshIds?.length&&(r=r.andWhere("bleMesh.id IN (:...bleMeshIds)",{bleMeshIds:t.filters.bleMeshIds})),t?.projectionOptions?.withBeacons&&(r=r.leftJoinAndSelect("bleMesh.beacons","beacon")),t?.projectionOptions?.withDevices&&(r=r.leftJoinAndSelect("bleMesh.devices","deviceMesh").leftJoinAndSelect("deviceMesh.device","deviceInMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{bleMeshes:o,totalCount:s}}),"BLEMeshRepository::getBLEMesh"):(i.warn({params:t},"BLEMeshRepository::getBLEMesh missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getBLEMesh result"),i}async addBeaconBLEMeshes(t){this.logger.trace(t,"BLEMeshRepository::addBeaconsToBLEMesh started with params");const i=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.beacons?.length&&!i?.beacons?.some((e=>!e.bleMac))&&i.clientId?t.safeQuery((async t=>{const r=t.getRepository(Me),a=new Date,n=await r.find({where:{bleMac:e.In(i.beacons.map((e=>e.bleMac)))}});return await r.save(i.beacons.map((e=>{const t=n.find((t=>t.bleMac===e.bleMac));return{...e,id:t?.id??void 0,createdAt:a,clientId:i.clientId,bleMeshId:i.bleMeshId??null}})))}),"BLEMeshRepository::addBeaconsToBLEMesh"):(r.warn({params:i},"BLEMeshRepository::addBeaconsToBLEMesh missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::addBeaconsToBLEMesh result"),r}async addDevicesToBLEMesh(t){this.logger.trace(t,"BLEMeshRepository::addDevicesToBLEMesh started with params");const i=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.imeis?.length&&i.clientId&&i.bleMeshId?t.safeQuery((async t=>{const a=t.getRepository(Ee),n=new Date,o=t.getRepository(le),s=await o.find({where:{clientId:i.clientId,imei:e.In(i.imeis)}});return await a.save(i.imeis.map((e=>{const t=s.find((t=>t.imei===e));return null==t?(r.warn({imei:e},"BLEMeshRepository::addDevicesToBLEMesh - device not found"),null):{deviceId:t.id,bleMeshId:i.bleMeshId,clientId:i.clientId,status:i.status,createdAt:n,modifiedAt:n}})).filter((e=>null!=e)))}),"BLEMeshRepository::addDevicesToBLEMesh"):(r.warn({params:i},"BLEMeshRepository::addDevicesToBLEMesh missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::addDevicesToBLEMesh result"),r}async removeBeaconsFromBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeBeaconsFromBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.bleMacs?.length&&t?.bleMeshId&&t.clientId?e.safeQuery((async e=>{const i=e.getRepository(Me).createQueryBuilder().update(Me).set({bleMeshId:null}).where("bleMeshId = :bleMeshId",{bleMeshId:t.bleMeshId}).andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("bleMac IN (:...beaconBleMacs)",{beaconBleMacs:t.bleMacs});return(await i.execute()).affected>0}),"BLEMeshRepository::removeBeaconsFromBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeBeaconsFromBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBeaconsFromBLEMesh result"),i}async removeBeaconBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::removeBeaconBLEMeshes started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.bleMacs?.length&&t.clientId?e.safeQuery((async e=>{let i=e.getRepository(Me).createQueryBuilder().delete();return i=i.andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("bleMac IN (:...beaconBleMacs)",{beaconBleMacs:t.bleMacs}),(await i.execute()).affected>0}),"BLEMeshRepository::removeBeaconBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::removeBeaconBLEMeshes missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBeaconBLEMeshes result"),i}async removeDevicesFromBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeDevicesFromBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeis?.length&&t?.bleMeshId&&t.clientId?e.safeQuery((async e=>{let i=e.getRepository(Ee).createQueryBuilder().delete();return i=i.andWhere("clientId = :clientId",{clientId:t.clientId}).where("deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)",{imeis:t.imeis,clientId:t.clientId}).andWhere("bleMeshId = :bleMeshId",{bleMeshId:t.bleMeshId}),(await i.execute()).affected>0}),"BLEMeshRepository::removeDevicesFromBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeDevicesFromBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeDevicesFromBLEMesh result"),i}async updateBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.name||t?.values?.lat||t?.values?.lon||t?.values?.address)?e.safeQuery((async e=>{const i=e.getRepository(Pe),r=new Date;return(await i.createQueryBuilder().update(Pe).set({address:t.values.address,lat:t.values.lat,lon:t.values.lon,name:t.values.name,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"BLEMeshRepository::updateBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateBLEMesh result"),i}async updateDevicesBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateDevicesBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.imeis?.length&&t.filters.clientId&&t?.values?.status?e.safeQuery((async e=>{const i=e.getRepository(Ee),r=new Date;return(await i.createQueryBuilder().update(Ee).set({status:t.values.status,modifiedAt:r}).where("deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)",{imeis:t.filters.imeis,clientId:t.filters.clientId}).andWhere("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"BLEMeshRepository::updateDevicesBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateDevicesBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateDevicesBLEMesh result"),i}async removeBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t.clientId?e.safeQuery((async e=>{const i=e.getRepository(Pe).createQueryBuilder().delete().andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("id = :bleMeshId",{bleMeshId:t.id});return(await i.execute()).affected>0}),"BLEMeshRepository::removeBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBLEMesh result"),i}async getDeviceBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getDeviceBLEMeshes started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery((async(e,i)=>{let r=e.getRepository(Ee).createQueryBuilder("deviceBLEMesh");i&&r.setQueryRunner(i),r=r.andWhere("deviceBLEMesh.clientId = :clientId",{clientId:t.filters.clientId}),(t.filters.imeis||t?.projectionOptions?.withDevice)&&(r=r.leftJoinAndSelect("deviceBLEMesh.device","device")),t.filters.imeis&&(r=r.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.status&&(r=r.andWhere("deviceBLEMesh.status = :deviceBLEMeshStatus",{deviceBLEMeshStatus:t.filters.status})),(t?.projectionOptions?.withBLEMeshes||t?.projectionOptions?.withBeacons)&&(r=r.leftJoinAndSelect("deviceBLEMesh.bleMesh","bleMesh")),t?.projectionOptions?.withBeacons&&(r=r.leftJoinAndSelect("bleMesh.beacons","beacon"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{deviceBLEMeshes:o,totalCount:s}}),"BLEMeshRepository::getDeviceBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getDeviceBLEMeshes missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getDeviceBLEMeshes result"),i}async getBeaconBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getBeaconBLEMeshes started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery((async(e,i)=>{let r=e.getRepository(Me).createQueryBuilder("beaconBleMesh");i&&r.setQueryRunner(i),r=r.andWhere("beaconBleMesh.clientId = :clientId",{clientId:t.filters.clientId}),t?.filters?.bleMeshIds?.length&&(r=r.andWhere("beaconBleMesh.bleMeshId IN (:...bleMeshIds)",{bleMeshIds:t.filters.bleMeshIds})),t?.filters?.bleMacs?.length&&(r=r.andWhere("beaconBleMesh.bleMac IN (:...bleMacs)",{bleMacs:t.filters.bleMacs})),t?.projectionOptions?.withBLEMeshes&&(r=r.leftJoinAndSelect("beaconBleMesh.bleMesh","bleMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{beaconBLEMeshes:o,totalCount:s}}),"BLEMeshRepository::getBeaconBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getBeaconBLEMeshes missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getBeaconBLEMeshes result"),i}async createDeviceBLEMeshUpdateTask(t){this.logger.trace(t,"BLEMeshRepository::createDeviceBLEMeshUpdateTask started with params");const i=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.clientId&&i?.updateTasks?.length&&!i?.updateTasks?.some((e=>!e.imei||!e.behaviorName||!e.behaviorParams))?t.safeQuery((async t=>{const a=t.getRepository(dt),n=new Date,o=t.getRepository(Ee),s=await o.find({relations:["device"],where:{clientId:i.clientId,device:{imei:e.In(i.updateTasks.map((e=>e.imei)))}}});return await a.save(i.updateTasks.map((e=>{const t=s.find((t=>t.device.imei===e.imei));return null==t?(r.warn({imei:e},"BLEMeshRepository::createDeviceBLEMeshUpdateTask - device not found"),null):{id:mn.uuidStringToBinaryBuffer(e.id),deviceId:t.device.id,deviceBleMeshId:t.id,clientId:i.clientId,status:e.status,behaviorName:e.behaviorName,behaviorParams:e.behaviorParams,createdAt:n,modifiedAt:n}})).filter((e=>null!=e)))}),"BLEMeshRepository::createDeviceBLEMeshUpdateTask"):(r.warn({params:i},"BLEMeshRepository::createDeviceBLEMeshUpdateTask missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::createDeviceBLEMeshUpdateTask result"),r}async getDeviceBLEMeshUpdateTasks(e){this.logger.trace(e,"BLEMeshRepository::getDeviceBLEMeshUpdateTasks started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId||t?.filters?.ids?.length?e.safeQuery((async(e,i)=>{let r=e.getRepository(dt).createQueryBuilder("deviceBLEMeshUpdTask");i&&r.setQueryRunner(i),t?.filters?.clientId&&(r=r.andWhere("deviceBLEMeshUpdTask.clientId = :clientId",{clientId:t.filters.clientId})),t?.filters?.ids&&(r=r.andWhere("deviceBLEMeshUpdTask.id IN (:...ids)",{ids:t.filters.ids.map((e=>mn.uuidStringToBinaryBuffer(e)))})),(t.filters.imeis||t?.projectionOptions?.withDevice)&&(r=r.leftJoinAndSelect("deviceBLEMeshUpdTask.device","device")),t.filters.imeis&&(r=r.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.status&&(r=r.andWhere("deviceBLEMeshUpdTask.status = :deviceBLEMeshUpdTaskStatus",{deviceBLEMeshUpdTaskStatus:t.filters.status})),t?.projectionOptions?.withDeviceBLEMesh&&(r=r.leftJoinAndSelect("deviceBLEMeshUpdTask.deviceBleMesh","deviceBleMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.orderBy("deviceBLEMeshUpdTask.modifiedAt","DESC"),r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{updateTasks:o,totalCount:s}}),"BLEMeshRepository::getDeviceBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getDeviceBLEMeshUpdateTask missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getDeviceBLEMeshUpdateTasks result"),i}async updateDevicesBLEMeshUpdateTask(e){this.logger.trace(e,"BLEMeshRepository::updateDevicesBLEMeshUpdateTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.status?e.safeQuery((async e=>{const i=e.getRepository(dt),r=new Date;return(await i.createQueryBuilder().update(dt).set({status:t.values.status,modifiedAt:r}).where("id = :id",{id:mn.uuidStringToBinaryBuffer(t.filters.id)}).execute()).affected>0}),"BLEMeshRepository::updateDevicesBLEMeshUpdateTask"):(i.warn({params:t},"BLEMeshRepository::updateDevicesBLEMeshUpdateTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateDevicesBLEMeshUpdateTask result"),i}async updateBeaconBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateBeaconBLEMesh started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.bleMac&&t.filters.clientId&&t?.values?.name?e.safeQuery((async e=>{const i=e.getRepository(Me);return(await i.createQueryBuilder().update(Me).set({name:t.values.name}).where("bleMac = :bleMac",{bleMac:t.filters.bleMac}).andWhere("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"BLEMeshRepository::updateBeaconBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateBeaconBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateBeaconBLEMesh result"),i}},BillingRepository:class extends ta{async getBillings(e){this.logger.trace(e,"BillingRepository::getBillings started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.imei||t?.filters?.clientId||t?.filters?.subscriptionId||t?.filters?.status))return i.warn({params:t},"BillingRepository::getBillings - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(xe).createQueryBuilder("billing");return i&&r.setQueryRunner(i),t.projectionOptions?.withClient&&(r=r.innerJoinAndSelect("billing.client","client")),t.projectionOptions?.withPlan&&(r=r.leftJoinAndSelect("billing.plan","plan")),t.filters.imei&&(r=r.andWhere("billing.imei = :imei",{imei:t.filters.imei})),t.filters.clientId&&(r=r.andWhere("billing.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.subscriptionId&&(r=r.andWhere("billing.subscriptionId = :subscriptionId",{subscriptionId:t.filters.subscriptionId})),t.filters.status&&(r=r.andWhere("billing.status = :status",{status:t.filters.status})),await r.getMany()}),"BillingRepository::getBillings",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillings result"),i}async createBilling(e){this.logger.trace(e,"BillingRepository::createBilling started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id||t?.deviceId||t?.clientId||t?.subscriptionId||t?.imei||t?.planId||t?.platform||t?.status||t?.subscriptionValue||t?.subscriptionPeriodMonths||t?.subscriptionValueMonthly?e.safeQuery((async e=>{const i=e.getRepository(xe),r=new Date,a={id:t.id,deviceId:t.deviceId,imei:t.imei,planId:t.planId,subscriptionId:t.subscriptionId,platform:t.platform,status:t.status,subscriptionValue:t.subscriptionValue,subscriptionPeriodMonths:t.subscriptionPeriodMonths,subscriptionValueMonthly:t.subscriptionValueMonthly,clientId:t.clientId,createdAt:r,updatedAt:r};return await i.save(a)}),"BillingRepository::createBilling"):(i.warn({params:t},"BillingRepository::createBilling - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBilling result"),i}async updateBilling(e){this.logger.trace(e,"BillingRepository::updateBilling started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.imei&&(t?.values?.deviceId||t?.values?.clientId||t?.values?.subscriptionId||t?.values?.planId||t?.values?.platform||t?.values?.status||t?.values?.subscriptionValue||t?.values?.subscriptionPeriodMonths||t?.values?.subscriptionValueMonthly)?e.safeQuery((async e=>{const i=e.getRepository(xe),r=new Date;return(await i.createQueryBuilder().update(xe).set({deviceId:t.values.deviceId,clientId:t.values.clientId,subscriptionId:t.values.subscriptionId,planId:t.values.planId,platform:t.values.platform,status:t.values.status,subscriptionValue:t.values.subscriptionValue,subscriptionPeriodMonths:t.values.subscriptionPeriodMonths,subscriptionValueMonthly:t.values.subscriptionValueMonthly,updatedAt:r}).where("imei = :imei",{imei:t.filters.imei}).execute()).affected>0}),"BillingRepository::updateBilling"):(i.warn({params:t},"BillingRepository::updateBilling - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::updateBilling result"),i}async getClientIdFromBraintreeCustomer(e){this.logger.trace(e,"BillingRepository::getClientIdFromBraintreeCustomer started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.customerId)return i.warn({params:t},"BillingRepository::getClientIdFromBraintreeCustomer - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(xe).createQueryBuilder("billing").innerJoin(Je,"billingSubscriptionBraintree","billing.subscriptionId = billingSubscriptionBraintree.subscriptionId").where("billingSubscriptionBraintree.customerId = :customerId",{customerId:t.filters.customerId}).select("distinct billing.clientId","clientId").limit(1);i&&r.setQueryRunner(i);const a=await r.getRawOne();return a?.clientId??null}),"BillingRepository::getClientIdFromBraintreeCustomer",r)})(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::getClientIdFromBraintreeCustomer result"),i}async getBillingCustomerBraintreeById(e){this.logger.trace(e,"BillingRepository::getBillingCustomerBraintreeById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"BillingRepository::getBillingCustomerBraintreeById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Le).createQueryBuilder("billingCustomerBraintree").where("billingCustomerBraintree.id = :id",{id:t.filters.id}).limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getBillingCustomerBraintreeById",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingCustomerBraintreeById result"),i}async updateBillingCustomerBraintree(e){this.logger.trace(e,"BillingRepository::updateBillingCustomerBraintree started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.firstName||t?.values?.lastName||t?.values?.company||t?.values?.email||t?.values?.phone||t?.values?.churnStatus)?e.safeQuery((async e=>{const i=e.getRepository(Le),r=new Date;return(await i.createQueryBuilder().update(Le).set({firstName:t.values.firstName,lastName:t.values.lastName,company:t.values.company,email:t.values.email,phone:t.values.phone,churnStatus:t.values.churnStatus,updatedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"BillingRepository::updateBillingCustomerBraintree"):(i.warn({params:t},"BillingRepository::updateBillingCustomerBraintree - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::updateBillingCustomerBraintree result"),i}async upsertBillingCustomerBraintree(e){this.logger.trace(e,"BillingRepository::upsertBillingCustomerBraintree started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&(t?.firstName||t?.lastName||t?.company||t?.email||t?.phone)?e.safeQuery((async e=>{const i=e.getRepository(Le),r=await i.findOne({where:{id:t.id}}),a=new Date,n={id:t.id,firstName:t.firstName,lastName:t.lastName,company:t.company,email:t.email,phone:t.phone,churnStatus:r?.churnStatus,createdAt:r?.createdAt??a,updatedAt:a},o=await i.upsert(n,{conflictPaths:["id"]});return o?.raw?.affectedRows>0?await i.findOne({where:{id:t.id}}):null}),"BillingRepository::upsertBillingCustomerBraintree"):(i.warn({params:t},"BillingRepository::upsertBillingCustomerBraintree - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingCustomerBraintree result"),i}async createBillingStatusHistoryBraintree(e){this.logger.trace(e,"BillingRepository::createBillingStatusHistoryBraintree started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId&&t?.subscriptionHistories?.length?e.safeQuery((async e=>{const i=e.getRepository(Ve),r=(await i.createQueryBuilder("billingStatusHistoryBraintree").where("billingStatusHistoryBraintree.subscriptionId = :subscriptionId",{subscriptionId:t.subscriptionId}).andWhere("billingStatusHistoryBraintree.timestamp IN (:...timestamps)",{timestamps:t.subscriptionHistories.map((e=>e.timestamp))}).select("billingStatusHistoryBraintree.timestamp","timestamp").getRawMany()).map((e=>e.timestamp)),a=[];for(const e of t.subscriptionHistories)r.find((t=>t===e.timestamp))||a.push({...e,subscriptionId:t.subscriptionId});return await i.save(a)}),"BillingRepository::createBillingStatusHistoryBraintree"):(i.warn({params:t},"BillingRepository::createBillingStatusHistoryBraintree - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingStatusHistoryBraintree result"),i}async createBillingDeviceHistory(e){this.logger.trace(e,"BillingRepository::createBillingDeviceHistory started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id||t?.clientId||t?.deviceId||t?.subscriptionId||t?.imei||t?.planId||t?.platform||t?.status?e.safeQuery((async e=>{const i=e.getRepository(Fe),r=new Date,a={id:t.id,deviceId:t.deviceId,clientId:t.clientId,imei:t.imei,planId:t.planId,subscriptionId:t.subscriptionId,platform:t.platform,status:t.status,createdAt:r};return await i.save(a)}),"BillingRepository::createBillingDeviceHistory"):(i.warn({params:t},"BillingRepository::createBillingDeviceHistory - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingDeviceHistory result"),i}async getUserByBraintreeCustomerId(e){this.logger.trace(e,"BillingRepository::getUserByBraintreeCustomerId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.customerId)return i.warn({params:t},"BillingRepository::getUserByBraintreeCustomerId - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Re).createQueryBuilder("user").innerJoin(Le,"billingCustomerBraintree","LOWER(TRIM(billingCustomerBraintree.email)) = LOWER(TRIM(user.email))").innerJoin(Je,"billingSubscriptionBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoin(xe,"billing","billing.subscriptionId = billingSubscriptionBraintree.subscriptionId").where("billingCustomerBraintree.id = :id",{id:t.filters.customerId}).orderBy("billingCustomerBraintree.createdAt","ASC").limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getUserByBraintreeCustomerId",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getUserByBraintreeCustomerId result"),i}async getBillingSubscriptionsBraintree(e){this.logger.trace(e,"BillingRepository::getBillingSubscriptionsBraintree started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.subscriptionId&&!t?.filters?.clientId)return i.warn({params:t},"BillingRepository::getBillingSubscriptionsBraintree - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Je).createQueryBuilder("billingSubscriptionBraintree");return i&&r.setQueryRunner(i),t?.filters?.subscriptionId&&(r=r.andWhere("billingSubscriptionBraintree.subscriptionId = :subscriptionId",{subscriptionId:t.filters.subscriptionId})),t?.filters?.clientId&&(r=r.innerJoin(xe,"billing","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").andWhere("billing.clientId = :clientId",{clientId:t.filters.clientId})),await r.getMany()}),"BillingRepository::getBillingSubscriptionsBraintree",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingSubscriptionsBraintree result"),i}async getChurnStatusByClientId(e){this.logger.trace(e,"BillingRepository::getChurnStatusByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"BillingRepository::getChurnStatusByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(xe).createQueryBuilder("billing").where("billing.clientId = :clientId",{clientId:t.filters.clientId}).innerJoinAndSelect(Je,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoinAndSelect(Le,"billingCustomerBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoinAndSelect(Ve,"billingStatusHistoryBraintree","billingStatusHistoryBraintree.subscriptionId = billingSubscriptionBraintree.subscriptionId").groupBy("billingCustomerBraintree.id, billingSubscriptionBraintree.status, billingSubscriptionBraintree.subscriptionId, billing.subscriptionPeriodMonths, billingCustomerBraintree.churnStatus, billingSubscriptionBraintree.nextBillingDate").select(["billingCustomerBraintree.id as braintreeCustomerId","billingSubscriptionBraintree.status as braintreeSubscriptionStatus","billingSubscriptionBraintree.subscriptionId as subscriptionId","billingCustomerBraintree.churnStatus as churnStatus","billingSubscriptionBraintree.nextBillingDate as nextBillingDate","MAX(billingStatusHistoryBraintree.timestamp) as lastStatusUpdate","billing.subscriptionPeriodMonths as subscriptionPeriodMonths"]).distinct();return i&&r.setQueryRunner(i),await r.getRawMany()}),"BillingRepository::getChurnStatusByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getChurnStatusByClientId result"),i}async upsertBillingSubscriptionBraintree(e){this.logger.trace(e,"BillingRepository::upsertBillingSubscriptionBraintree started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId?e.safeQuery((async e=>{const i=e.getRepository(Je),r=new Date,a={...t,createdAt:t.createdAt??r},n=await i.upsert(a,{conflictPaths:["subscriptionId"]});return n?.raw?.affectedRows>0}),"BillingRepository::upsertBillingSubscriptionBraintree"):(i.warn({params:t},"BillingRepository::upsertBillingSubscriptionBraintree - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::upsertBillingSubscriptionBraintree result"),i}async getCanceledImeis(e){this.logger.trace(e,"BillingRepository::getCanceledImeis started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.minCancellationDate||!t?.filters?.maxCancellationDate||!t?.filters?.canceledIn||null==t?.filters?.excludeB2B||null==t?.filters?.excludeTest)return i.warn({params:t},"BillingRepository::getCanceledImeis - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(xe).createQueryBuilder("billing").innerJoin(Je,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoin(xt,"imeiIccidCarrier","imeiIccidCarrier.imei = billing.imei").innerJoin(le,"device","device.imei = billing.imei").innerJoin(ce,"client","client.id = device.clientId").leftJoin(ne,"customerAttribute","client.id = customerAttribute.clientId").innerJoin(Ot,"iccidStatus","iccidStatus.iccid = imeiIccidCarrier.iccid").where("iccidStatus.processing = :processing",{processing:!1}).andWhere("billingSubscriptionBraintree.updatedAt > :minCancellationDate",{minCancellationDate:t.filters.minCancellationDate}).andWhere("billingSubscriptionBraintree.updatedAt < :maxCancellationDate",{maxCancellationDate:t.filters.maxCancellationDate}).andWhere("billingSubscriptionBraintree.status = :subscriptionStatus",{subscriptionStatus:"Canceled"}).andWhere("billingSubscriptionBraintree.nextBillingDate < Date(:nextBillingDate)",{nextBillingDate:new Date});switch(i&&r.setQueryRunner(i),t.filters.canceledIn){case"carrier":r=r.andWhere("iccidStatus.status = :iccidStatus",{iccidStatus:"active"});break;case"device":r=r.andWhere("device.status = :deviceStatus",{deviceStatus:"A"});break;default:r=r.andWhere("(iccidStatus.status = :iccidStatus OR device.status = :deviceStatus)",{iccidStatus:"active",deviceStatus:"A"})}return t.filters.excludeB2B&&(r=r.andWhere("(customerAttribute.enterprise is null OR customerAttribute.enterprise = :enterprise)",{enterprise:!1})),t.filters.excludeTest&&(r=r.andWhere("client.clientTypeId != :testClientTypeId",{testClientTypeId:b.test})),(await r.orderBy("billingSubscriptionBraintree.updatedAt","ASC").limit(t.pagingOptions?.pageSize??100).select(["billing.imei as imei","imeiIccidCarrier.iccid as iccid","client.id as clientId","client.clientTypeId as clientTypeId","client.email as email","billing.subscriptionId as subscriptionId","billingSubscriptionBraintree.createdAt as createdAt","billingSubscriptionBraintree.updatedAt as updatedAt","billingSubscriptionBraintree.status as status","imeiIccidCarrier.carrier as carrier","customerAttribute.enterprise as isEnterpriseCustomer"]).getRawMany()).map((e=>({...e,isEnterpriseCustomer:1===e.isEnterpriseCustomer})))}),"BillingRepository::getCanceledImeis",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getCanceledImeis result"),i}async getCanceledImeisMatchingMagentoData(e){this.logger.trace(e,"BillingRepository::getCanceledImeis started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.minCancellationDate||!t?.filters?.maxCancellationDate||!t?.filters?.canceledIn||null==t?.filters?.excludeB2B||null==t?.filters?.excludeTest)return i.warn({params:t},"BillingRepository::getCanceledImeisMatchingMagentoData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(xe);let a="";switch(t.filters.canceledIn){case"carrier":a=" AND iccidStatus.status = 'active' ";break;case"device":a=" AND device.status = 'A' ";break;default:a=" AND (iccidStatus.status = 'active' OR device.status = 'A') "}const n=`SELECT \n billing.imei, \n imeiIccidCarrier.iccid,\n client.id as clientId,\n client.clientTypeId,\n client.email,\n billing.subscriptionId,\n billingSubscriptionBraintree.createdAt,\n billingSubscriptionBraintree.updatedAt,\n billingSubscriptionBraintree.status,\n imeiIccidCarrier.carrier,\n customerAttribute.enterprise as isEnterpriseCustomer\n FROM \n billing \n INNER JOIN \n billingSubscriptionBraintree ON billing.subscriptionId = billingSubscriptionBraintree.subscriptionId\n INNER JOIN \n imeiIccidCarrier ON imeiIccidCarrier.imei = billing.imei\n INNER JOIN \n device ON device.imei = billing.imei\n INNER JOIN \n client ON client.id = device.clientId\n LEFT JOIN\n customerAttribute ON customerAttribute.clientId = client.id\n INNER JOIN \n iccidStatus ON iccidStatus.iccid = imeiIccidCarrier.iccid\n WHERE \n iccidStatus.processing = false AND\n billingSubscriptionBraintree.updatedAt > ? AND\n billingSubscriptionBraintree.updatedAt < ? AND\n billingSubscriptionBraintree.status = 'Canceled' AND \n billingSubscriptionBraintree.nextBillingDate < Date(?) AND \n client.id NOT IN (128, 686142) AND\n (\n EXISTS (SELECT 1\n FROM magento2Gps magento2Gps1\n INNER JOIN billingSubscriptionBraintree billingSubscriptionBraintree2 \n ON billingSubscriptionBraintree2.subscriptionId = magento2Gps1.btSubscriptionId\n WHERE magento2Gps1.imei = billing.imei\n AND billingSubscriptionBraintree2.subscriptionId = billing.subscriptionId\n AND billingSubscriptionBraintree2.subscriptionStart = (\n SELECT MAX(bsb.subscriptionStart)\n FROM billingSubscriptionBraintree bsb\n WHERE bsb.subscriptionId = magento2Gps1.btSubscriptionId\n )\n ) \n OR \n NOT EXISTS (SELECT 1 FROM magento2Gps magento2Gps2 WHERE magento2Gps2.imei = billing.imei) \n OR \n EXISTS (SELECT 1 FROM magento2Gps magento2Gps3 WHERE magento2Gps3.imei = billing.imei AND magento2Gps3.btSubscriptionId IS NULL)) \n ${a}\n ${t.filters.excludeB2B?"AND customerAttribute.enterprise != true ":""}\n ${t.filters.excludeTest?`AND client.clientTypeId != ${b.test} `:""}\n ORDER BY billingSubscriptionBraintree.updatedAt ASC\n LIMIT ?`;return(i?await i.query(n,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100]):await r.query(n,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100])).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,clientTypeId:e.clientTypeId,email:e.email,subscriptionId:e.subscriptionId,createdAt:e.createdAt,updatedAt:e.updatedAt,status:e.status,carrier:e.carrier,isEnterpriseCustomer:1===e.isEnterpriseCustomer})))}),"BillingRepository::getCanceledImeisMatchingMagentoData",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getCanceledImeisMatchingMagentoData result"),i}async getMagentoPlan(e){this.logger.trace(e,"BillingRepository::getMagentoPlan started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(null==t?.filters?.annual||!t?.filters?.code)return i.warn({params:t},"BillingRepository::getMagentoPlan - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Vt).createQueryBuilder("plan").where("plan.planAnnual = :planAnnual",{planAnnual:t.filters.annual}).andWhere("plan.magentoPlanCode = :magentoPlanCode",{magentoPlanCode:t.filters.code}).limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getMagentoPlan",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getMagentoPlan result"),i}async createBillingHubspotPaymentLog(e){this.logger.trace(e,"BillingRepository::createBillingHubspotPaymentLog started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.amountPaid?e.safeQuery((async e=>{const i=e.getRepository(We),r={id:t.id,amountPaid:t.amountPaid,owner:t.owner,bankOfIssuer:t.bankOfIssuer,billingAddress:t.billingAddress,billingAddressCity:t.billingAddressCity,billingAddressCountry:t.billingAddressCountry,billingAddressLine1:t.billingAddressLine1,billingAddressLine2:t.billingAddressLine2,billingAddressState:t.billingAddressState,billingAddressZip:t.billingAddressZip,createdByUserId:t.createdByUserId,currencyCode:t.currencyCode,customer:t.customer,grossAmount:t.grossAmount,lastFourDigits:t.lastFourDigits,lineItemDiscountAmount:t.lineItemDiscountAmount,netAmount:t.netAmount,objectCreateDateTime:t.objectCreateDateTime,objectId:t.objectId,objectLastModifiedDateTime:t.objectLastModifiedDateTime,orderDiscountAmount:t.orderDiscountAmount,orderDiscountCode:t.orderDiscountCode,orderDiscountPercentage:t.orderDiscountPercentage,ownerAssignedDateTime:t.ownerAssignedDateTime,paymentDateTime:t.paymentDateTime,paymentId:t.paymentId,paymentMethod:t.paymentMethod,paymentSourceName:t.paymentSourceName,paymentType:t.paymentType,processingFees:t.processingFees,refunded:t.refunded,shippingAddress:t.shippingAddress,shippingAddressCity:t.shippingAddressCity,shippingAddressCountry:t.shippingAddressCountry,shippingAddressLine1:t.shippingAddressLine1,shippingAddressLine2:t.shippingAddressLine2,shippingAddressState:t.shippingAddressState,shippingAddressZip:t.shippingAddressZip,source:t.source,sourceId:t.sourceId,sourceUrl:t.sourceUrl,status:t.status,statusUpdatedOn:t.statusUpdatedOn,totalDiscountAmount:t.totalDiscountAmount,totalFees:t.totalFees,totalTaxes:t.totalTaxes,updatedByUserId:t.updatedByUserId};return await i.save(r)}),"BillingRepository::createBillingHubspotPaymentLog"):(i.warn({params:t},"BillingRepository::createBillingHubspotPaymentLog - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingHubspotPaymentLog result"),i}async upsertBillingPlans(e){this.logger.trace(e,"BillingRepository::upsertBillingPlan started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.planId||t?.targetCustomer||t?.code||t?.status||t?.platform||t?.billingFrequency||t?.contractLength||t?.name||t?.price||t?.createdAt||t?.updatedAt?e.safeQuery((async e=>{const i=e.getRepository(Qe),r={planId:t.planId,targetCustomer:t.targetCustomer,code:t.code,status:t.status,platform:t.platform,billingFrequency:t.billingFrequency,contractLength:t.contractLength,numberOfBillingCycles:t.numberOfBillingCycles??null,description:t.description??null,name:t.name,price:t.price,trialDuration:t.trialDuration??null,trialDurationUnit:t.trialDurationUnit??null,trialPeriod:!!t.trialPeriod&&t.trialPeriod,createdAt:t.createdAt,updatedAt:t.updatedAt,addOns:t.addOns??[],discounts:t.discounts??[],startDate:t.startDate??null,endDate:t.endDate??null},a=await i.upsert(r,{conflictPaths:["planId"]});return a?.raw?.affectedRows>0?await i.findOne({where:{planId:t.planId}}):null}),"BillingRepository::upsertBillingPlan"):(i.warn({params:t},"BillingRepository::upsertBillingPlan - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingPlan result"),i}async upsertBillingDeviceTypePlan(e){this.logger.trace(e,"BillingRepository::upsertBillingDeviceTypePlan started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId||t?.planId||t?.status?e.safeQuery((async e=>{const i=e.getRepository(qe);if(await i.createQueryBuilder("billingDeviceTypePlan").where("billingDeviceTypePlan.deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).andWhere("billingDeviceTypePlan.planId = :planId",{planId:t.planId}).getOne())return(await i.createQueryBuilder().update(qe).set({status:t.status}).where("deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).andWhere("planId = :planId",{planId:t.planId}).execute()).affected>0?await i.findOne({where:{deviceTypeId:t.deviceTypeId,planId:t.planId}}):null;{const e={deviceTypeId:t.deviceTypeId,planId:t.planId,deviceTypeModel:t.deviceTypeModel,deviceType:t.deviceType??null,createdAt:t.createdAt,status:t.status};return(await i.createQueryBuilder().insert().into(qe).values([e]).execute()).identifiers.length>0?await i.findOne({where:{deviceTypeId:t.deviceTypeId,planId:t.planId}}):null}}),"BillingRepository::upsertBillingDeviceTypePlan"):(i.warn({params:t},"BillingRepository::upsertBillingDeviceTypePlan - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingDeviceTypePlan result"),i}async getBillingDeviceTypePlans(e){this.logger.trace(e,"BillingRepository::getBillingDeviceTypePlans started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.planId)return i.warn({params:t},"BillingRepository::getBillingDeviceTypePlans - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(qe).createQueryBuilder("billingDeviceTypePlan");return i&&r.setQueryRunner(i),r.where("billingDeviceTypePlan.planId = :planId",{planId:t.planId}).getMany()}),"BillingRepository::getBillingDeviceTypePlans",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingDeviceTypePlans result"),i}async getBillingPlans(t){this.logger.trace(t,"BillingRepository::getBillingPlans started with params");const i=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>{if(!(i?.deviceTypeId||i?.targetCustomer||i?.status||i?.date))return r.warn({params:i},"BillingRepository::getBillingPlans - missing required parameters"),[];const a=i?.status.split(","),n=i?.targetCustomer.split(","),o=t.createQueryRunnerFromParams(i);return t.safeQuery((async(t,r)=>{let o=t.getRepository(qe).createQueryBuilder("billingDeviceTypePlan").innerJoinAndSelect(Qe,"billingPlans","billingPlans.planId = billingDeviceTypePlan.planId").innerJoinAndSelect(se,"deviceType","deviceType.id = billingDeviceTypePlan.deviceTypeId").where("billingDeviceTypePlan.deviceTypeId = :deviceTypeId",{deviceTypeId:i.deviceTypeId}).andWhere("billingDeviceTypePlan.status IN (:...status)",{status:a}).andWhere("billingPlans.status IN (:...status)",{status:a}).andWhere("billingPlans.targetCustomer IN (:...targetCustomer)",{targetCustomer:n}).andWhere(new e.Brackets((e=>{e.where("billingPlans.startDate is null").orWhere("billingPlans.endDate is null"),e.orWhere("billingPlans.startDate <= :date",{date:i.date}).andWhere("billingPlans.endDate >= :date",{date:i.date})}))).select(["billingDeviceTypePlan.deviceTypeId as deviceTypeId","billingDeviceTypePlan.planId as planId","billingDeviceTypePlan.deviceType as deviceType","billingDeviceTypePlan.deviceTypeModel as deviceTypeModel","billingPlans.targetCustomer as targetCustomer","billingPlans.code as plan","billingPlans.platform as platform","billingPlans.billingFrequency as billingFrequency","billingPlans.contractLength as contractLength","billingPlans.description as description","billingPlans.name as title","billingPlans.price as price","billingPlans.createdAt as createdAt","billingPlans.addOns as addOns","billingPlans.discounts as discounts","billingPlans.startDate as startDate","deviceType.pictureUrl as imageUrl","deviceType.name as productName"]);r&&o.setQueryRunner(r);const s=i?.sortField??"billingFrequency",l=i?.sortOrder??"ASC";return o=o.orderBy(`billingPlans.${s}`,l),await o.getRawMany()}),"BillingRepository::getBillingPlans",o)})(i,t,this.logger);return this.logger.trace(r,"BillingRepository::getBillingPlans result"),r}async getBraintreePastDueSubscriptions(e){this.logger.trace(e,"BillingRepository::getBraintreePastDueSubscriptions started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.numberOfPastDueDays)return i.warn({params:t},"BillingRepository::getBraintreePastDueSubscriptions - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>await i.query("SELECT \n final.subscriptionId,\n final.timestamp\n FROM (\n SELECT \n t.subscriptionId,\n t.timestamp,\n t.status,\n ROW_NUMBER() OVER (PARTITION BY t.subscriptionId ORDER BY t.timestamp) AS first_pastdue\n FROM (\n SELECT \n bshb.subscriptionId,\n bshb.timestamp,\n bshb.status,\n ROW_NUMBER() OVER (PARTITION BY bshb.subscriptionId ORDER BY bshb.timestamp DESC) - \n ROW_NUMBER() OVER (PARTITION BY bshb.subscriptionId, bshb.status ORDER BY bshb.timestamp DESC) AS difference\n FROM \n billingStatusHistoryBraintree bshb\n WHERE \n EXISTS (\n SELECT 1\n FROM billingSubscriptionBraintree bsb\n WHERE bshb.subscriptionId = bsb.subscriptionId \n AND bsb.status = 'Past Due'\n ) \n AND bshb.timestamp > '2000-01-01'\n ) t\n WHERE \n t.difference = 0 \n AND t.status = 'Past Due'\n ) final\n WHERE \n DATE(final.timestamp) <= DATE_SUB(CURRENT_DATE, INTERVAL ? DAY)\n AND final.first_pastdue = 1\n ORDER BY \n final.subscriptionId, final.timestamp DESC",[t.filters.numberOfPastDueDays])),"BillingRepository::getBillingSubscriptionsBraintree",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBraintreePastDueSubscriptions result"),i}},BlacklistRepository:class extends ta{async getBlacklists(e){this.logger.trace(e,"BlacklistRepository::getBlacklists started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.blacklistType&&!t?.filters?.value)return i.warn({params:t},"BlacklistRepository::getBlacklists - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(He).createQueryBuilder("blacklist").innerJoin(Ke,"blacklistType","blacklistType.id = blacklist.blacklistTypeId").where("blacklist.blacklistTypeId = :blacklistType",{blacklistType:t.filters.blacklistType}).andWhere("LOWER(blacklist.value) = LOWER(:value)",{value:t.filters.value});return i&&r.setQueryRunner(i),await r.getMany()}),"BlacklistRepository::getBlacklists",r)})(t,e,this.logger);return this.logger.trace(i,"BlacklistRepository::getBlacklists result"),i}async upsertBlacklist(e){this.logger.trace(e,"BlacklistRepository::upsertBlacklist started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.blacklistTypeId&&t?.value&&t?.createdBy?e.safeQuery((async e=>{const i=e.getRepository(He),r=await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}),a=new Date,n={...r,blacklistTypeId:t.blacklistTypeId,value:t.value,notes:t.notes,createdBy:r?r.createdBy:t.createdBy,createdAt:r?r.createdAt:a,modifiedBy:r?t.createdBy:null,modifiedAt:r?a:null},o=await i.upsert(n,{conflictPaths:["blacklistTypeId","value"]});return o?.raw?.affectedRows>0?await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}):null}),"BlacklistRepository::upsertBlackList"):(i.warn({params:t},"BlacklistRepository::upsertBlackList - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BlacklistRepository::upsertBlacklist result"),i}async updateBlacklist(e){this.logger.trace(e,"BlacklistRepository::updateBlacklist started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.blacklistTypeId&&t?.filters?.value&&t?.values?.blacklistTypeId&&t?.values?.value?e.safeQuery((async e=>{const i=e.getRepository(He),r=new Date;return(await i.createQueryBuilder().update(He).set({blacklistTypeId:t.values.blacklistTypeId,value:t.values.value,notes:t.values.notes,modifiedBy:t.values.modifiedBy,modifiedAt:r}).where("blacklistTypeId = :blacklistTypeId",{blacklistTypeId:t.filters.blacklistTypeId}).andWhere("value = :value",{value:t.filters.value}).execute()).affected>0}),"BlacklistRepository::updateBlackList"):(i.warn({params:t},"BlacklistRepository::updateBlackList - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BlacklistRepository::updateBlacklist result"),i}async deleteBlacklist(e){this.logger.trace(e,"BlacklistRepository::deleteBlacklist started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.blacklistTypeId&&t?.filters?.value?e.safeQuery((async e=>{const i=e.getRepository(He);return(await i.createQueryBuilder().delete().where("blacklistTypeId = :blacklistTypeId",{blacklistTypeId:t.filters.blacklistTypeId}).andWhere("value = :value",{value:t.filters.value}).execute()).affected>0}),"BlacklistRepository::deleteBlackList"):(i.warn({params:t},"BlacklistRepository::deleteBlackList - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BlacklistRepository::deleteBlacklist result"),i}},BoundariesRepository:class extends ta{async getBoundariesByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"BoundariesRepository::getBoundariesByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Xe),a=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},n=r.createQueryBuilder("boundary").where(a);i&&n.setQueryRunner(i),t.filters.tagIdList?.length&&n.innerJoin(Nt,"entityTag","entityTag.entityId = boundary.id \n AND entityTag.entityType = 'Boundary'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList});let o=await n.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Nt);o=await Promise.all(o.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Boundary"}).innerJoin(ri,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return o}),"BoundariesRepository::getBoundariesByClientId",r)})(t,e,this.logger);return this.logger.trace({result:i.map((e=>e.id))},"BoundariesRepository::getBoundariesByClientId result"),i}async getBoundariesIdsByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesIdsByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"BoundariesRepository::getBoundariesIdsByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Xe),a=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},n=r.createQueryBuilder("boundary").where(a);return i&&n.setQueryRunner(i),(await n.select("id").getRawMany()).map((e=>e.id))}),"BoundariesRepository::getBoundariesIdsByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"BoundariesRepository::getBoundariesIdsByClientId result"),i}async getBoundaryById(e){this.logger.trace(e,"BoundariesRepository::getBoundaryById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.boundaryId)return i.warn({params:t},"BoundariesRepository::getBoundaryById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Xe).createQueryBuilder("boundary").where("boundary.id = :boundaryId",{boundaryId:t.filters.boundaryId});return i&&r.setQueryRunner(i),await r.where("id = :id",{id:t.filters.boundaryId}).getOne()}),"BoundariesRepository::getBoundaryById",r)})(t,e,this.logger);return this.logger.trace({result:{...i,geometry:void 0}},"BoundariesRepository::getBoundaryById result"),i}async createBoundary(e){this.logger.trace(e,"BoundariesRepository::createBoundary started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&0!==t.clientId&&t?.name&&t?.type&&t?.location&&t?.geometry?e.safeQuery((async e=>{const i=e.getRepository(Xe),r=new Date;let a=parseFloat(t.buffer);Number.isNaN(a)&&(a=0);const n=Math.max(a,50),o=t.radiusDisplayUnit||"m",s=t.color||"#e74c3c",l=t.status>0&&t.status<4?t.status:f.Active,d={id:t.boundaryId,name:t.name,type:t.type,buffer:`${n}`,radiusDisplayUnit:o,clientId:t.clientId,createdAt:r,modifiedAt:r,createdBy:t.createdBy,modifiedBy:t.createdBy,location:t.location,color:s,geometry:t.geometry,isUserCreated:t.isUserCreated??!0,status:l,area:t.area,dataSourceTypeId:t.dataSourceTypeId};return await i.save(d)}),"BoundariesRepository::createBoundary"):(i.warn({params:t},"BoundariesRepository::createBoundary - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:{...i,geometry:void 0}},"BoundariesRepository::createBoundary result"),i}async updateBoundary(e){this.logger.trace(e,"BoundariesRepository::updateBoundary started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.boundaryId)return i.warn({params:t},"BoundariesRepository::updateBoundary - missing required parameters"),!1;const r=t?.values?.status>0&&t?.values?.status<4?t.values.status:void 0;let a=t?.values?.buffer;if(a){const e=parseFloat(t.values.buffer);Number.isNaN(e)&&(a=void 0)}return t?.values?.name||t?.values?.type||t?.values?.location||a||t?.values?.radiusDisplayUnit||t?.values?.color||t?.values?.geometry||r||t?.values?.area?e.safeQuery((async e=>{const i=e.getRepository(Xe),n=new Date;return(await i.createQueryBuilder().update(Xe).set({name:t.values.name,type:t.values.type,modifiedBy:t.values.modifiedBy,location:t.values.location,buffer:a,radiusDisplayUnit:t.values.radiusDisplayUnit,color:t.values.color,geometry:t.values.geometry,status:r,modifiedAt:n}).where("id = :id",{id:t.filters.boundaryId}).execute()).affected>0}),"BoundariesRepository::updateBoundary"):(i.warn({params:t},"BoundariesRepository::updateBoundary - missing required parameters"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::updateBoundary result"),i}async deleteBoundary(e){this.logger.trace(e,"BoundariesRepository::deleteBoundary started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.boundaryId?e.safeQuery((async e=>{const i=e.getRepository(Xe),r=new Date;return(await i.createQueryBuilder().update(Xe).set({status:f.Deleted,modifiedBy:t.values.modifiedBy,modifiedAt:r}).where("id = :id",{id:t.filters.boundaryId}).execute()).affected>0}),"BoundariesRepository::deleteBoundary"):(i.warn({params:t},"BoundariesRepository::deleteBoundary - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::deleteBoundary result"),i}async getBoundariesReport(e){this.logger.trace(e,"BoundariesRepository::getBoundariesReport started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - missing required parameters"),[];const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(Ye).createQueryBuilder("boundaryEvent").innerJoin(le,"device","device.id = boundaryEvent.deviceId").innerJoin(Xe,"boundary","boundary.id = boundaryEvent.boundaryId").where("boundaryEvent.userId = :userId",{userId:r}).andWhere("device.status = :deviceStatus",{deviceStatus:h.Active}).andWhere("boundaryEvent.deleted = 0");i&&a.setQueryRunner(i),t.filters.boundaryId&&a.andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.boundaryName&&a.andWhere("boundary.name LIKE :boundaryName",{boundaryName:`%${t.filters.boundaryName}%`}),t.filters.imeis?.length&&a.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.boundaryInStartDate&&a.andWhere("boundaryEvent.inDate >= :boundaryInStartDate",{boundaryInStartDate:t.filters.boundaryInStartDate}),t.filters.boundaryInEndDate&&a.andWhere("boundaryEvent.inDate <= :boundaryInEndDate",{boundaryInEndDate:t.filters.boundaryInEndDate}),t.filters.boundaryOutStartDate&&a.andWhere("boundaryEvent.outDate >= :boundaryOutStartDate",{boundaryOutStartDate:t.filters.boundaryOutStartDate}),t.filters.boundaryOutEndDate&&a.andWhere("boundaryEvent.outDate <= :boundaryOutEndDate",{boundaryOutEndDate:t.filters.boundaryOutEndDate}),t.filters.minDuration&&a.andWhere("((boundaryEvent.inOutDuration IS NOT NULL AND boundaryEvent.inOutDuration >= :minDuration) OR \n (boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL AND \n UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate) >= :minDuration\n ))",{minDuration:t.filters.minDuration}),t.filters.maxDuration&&a.andWhere("((boundaryEvent.inOutDuration IS NOT NULL AND boundaryEvent.inOutDuration <= :maxDuration) OR \n (boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL AND \n UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate) <= :maxDuration\n ))",{maxDuration:t.filters.maxDuration});const n=a.clone().select("COUNT(boundaryEvent.id)","totalCount");if(a.innerJoin(`(${n.getQuery()})`,"sub"),t.sortOptions?.sortField){let e=null;switch(t.sortOptions.sortField){case"inDateTime":e="boundaryEvent.inDate";break;case"outDateTime":e="boundaryEvent.outDate";break;case"inOutDuration":e='CASE WHEN boundaryEvent.inOutDuration IS NOT NULL \n THEN boundaryEvent.inOutDuration \n WHEN boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL \n THEN UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, "+00:00")) - UNIX_TIMESTAMP(boundaryEvent.inDate) \n ELSE NULL\n END';break;case"name":e="boundary.name"}a.orderBy(e||"boundaryEvent.inDate",t.sortOptions.sortOrder||"DESC")}return(await a.select(["device.id AS deviceId","device.imei AS imei","device.name AS deviceName","boundary.id AS boundaryId","boundary.name AS boundaryName","boundaryEvent.inDate AS inDate","boundaryEvent.inLat AS inLat","boundaryEvent.inLon AS inLon","boundaryEvent.inAddress AS inAddress","boundaryEvent.outDate AS outDate","boundaryEvent.outLat AS outLat","boundaryEvent.outLon AS outLon","boundaryEvent.outAddress AS outAddress","CASE \n WHEN boundaryEvent.inOutDuration IS NOT NULL\n THEN boundaryEvent.inOutDuration\n WHEN boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL \n THEN UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate)\n ELSE NULL\n END AS duration","sub.totalCount AS totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()).map((e=>({deviceId:e.deviceId,imei:e.imei,deviceName:e.deviceName,boundaryId:e.boundaryId,boundaryName:e.boundaryName,inDate:e.inDate,inLat:e.inLat,inLon:e.inLon,inAddress:e.inAddress,outDate:e.outDate,outLat:e.outLat,outLon:e.outLon,outAddress:e.outAddress,inOutDuration:e.duration,totalCount:e.totalCount})))}),"BoundariesRepository::getBoundariesReport",a)})(t,e,this.logger);return this.logger.trace(i,"BoundariesRepository::getBoundariesReport result"),i}async processBoundaryEvent(e){this.logger.trace(e,"BoundariesRepository::processBoundaryEvent started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await sa(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::processBoundaryEvent result"),i}async upsertBoundaryEvent(e){this.logger.trace(e,"BoundariesRepository::upsertBoundaryEvent started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.id&&t?.boundaryId&&t?.deviceId&&t?.imei))return i.warn({params:t},"BoundariesRepository::upsertBoundaryEvent missing required parameters"),!1;const r=ra(t.userId);return e.safeQuery((async e=>{const i=e.getRepository(Ye),a=new Date,n={...t,userId:r,createdAt:t.createdAt??a,modifiedAt:t.modifiedAt??a},o=await i.upsert(n,{conflictPaths:["id"]});return o?.raw?.affectedRows>0}),"BoundariesRepository::upsertBoundaryEvent")})(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::upsertBoundaryEvent result"),i}},ClientAlertConfigurationRepository:class extends ta{async getClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientAlertConfigurationRepository::getClientAlertConfigurations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ye).createQueryBuilder("clientAlertConfiguration").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),t.filters.alertTypeId&&(r=r.andWhere("clientAlertConfiguration.alertTypeId = :alertTypeId",{alertTypeId:t.filters.alertTypeId})),t.filters.statusList?.length&&(r=r.andWhere("clientAlertConfiguration.status IN (:...statusList)",{statusList:t.filters.statusList})),t.filters.configurationIdList&&(r=r.andWhere("clientAlertConfiguration.id IN (:...configurationIdList)",{configurationIdList:t.filters.configurationIdList})),t.projectionOptions?.withInternalRecipients&&(r=r.leftJoinAndSelect("clientAlertConfiguration.internalRecipients","internalRecipients")),t.projectionOptions?.withExternalRecipients&&(r=r.leftJoinAndSelect("clientAlertConfiguration.externalRecipients","externalRecipients","externalRecipients.clientId = clientAlertConfiguration.clientId")),t.filters.tagIdList?.length&&r.innerJoin(Nt,"entityTag","entityTag.entityId = clientAlertConfiguration.id \n AND entityTag.entityType = 'ClientAlertConfiguration'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),await r.getMany()}),"ClientAlertConfigurationRepository::getClientAlertConfigurations",r)})(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::getClientAlertConfigurations result"),i}async createClientAlertConfiguration(e){this.logger.trace(e,"ClientAlertConfigurationRepository::createClientAlertConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.alertTypeId&&t?.name&&t?.description?e.safeQuery((async e=>{const i=e.getRepository(ye),r={id:t.id,clientId:t.clientId,alertTypeId:t.alertTypeId,name:t.name,description:t.description,status:t.status||"active",alertValue:t.alertValue,alertMetadata:t.alertMetadata,filter:t.filter,readOnly:t.readOnly||!1,createdBy:t.createdBy,modifiedBy:t.createdBy};return await i.save(r)}),"ClientAlertConfigurationRepository::createClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::createClientAlertConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::createClientAlertConfiguration result"),i}async updateClientAlertConfiguration(e){this.logger.trace(e,"ClientAlertConfigurationRepository::updateClientAlertConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(t?.filters?.clientId||t?.filters?.clientAlertConfigurationId)&&(t?.values?.status||t?.values?.alertValue||t?.values?.alertMetadata||t?.values?.filter||t?.values?.name||t?.values?.description||null!=t?.values?.readOnly)?e.safeQuery((async e=>{const i=e.getRepository(ye).createQueryBuilder().update(ye).set({alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata,readOnly:t?.values?.readOnly,filter:t?.values?.filter,name:t?.values?.name,description:t?.values?.description,status:t?.values?.status,modifiedBy:t?.values?.modifiedBy??void 0}).where("clientId = :clientId",{clientId:t.filters.clientId}).andWhere("id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});return(await i.execute()).affected>0}),"ClientAlertConfigurationRepository::updateClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::updateClientAlertConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::updateClientAlertConfiguration result"),i}async deleteClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::deleteClientAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.clientAlertConfigurationIds?.length?e.safeQuery((async e=>{const i=e.getRepository(ye).createQueryBuilder().update(ye).set({status:"deleted"}).where("clientId = :clientId",{clientId:t.filters.clientId}).andWhere("id IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t.filters.clientAlertConfigurationIds});return(await i.execute()).affected>0}),"ClientAlertConfigurationRepository::deleteClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::deleteClientAlertConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::deleteClientAlertConfigurations result"),i}async getClientAlertRecipients(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertRecipients started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId||!t.filters.clientAlertConfigurationId)return i.warn({params:t},"ClientAlertConfigurationRepository::getClientAlertRecipients - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r={internalRecipients:[],externalRecipients:[]},a=e.getRepository(ge).createQueryBuilder("clientAlertRecipient").innerJoin(ye,"clientAlertConfiguration","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("clientAlertConfiguration.id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});i&&a.setQueryRunner(i);const n=await a.getMany();r.internalRecipients=n;const o=e.getRepository(ve),s=await o.find({where:{clientId:t.filters.clientId,clientAlertConfigurationId:t.filters.clientAlertConfigurationId}});return r.externalRecipients=s,r}),"ClientAlertConfigurationRepository::getClientAlertRecipients",r)})(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::getClientAlertRecipients result"),i}async setClientAlertRecipients(e){this.logger.trace(e,"ClientAlertConfigurationRepository::setClientAlertRecipients started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.clientAlertConfigurationId?e.safeQuery((async e=>{const i=e.getRepository(ye);return!!await i.findOne({where:{id:t.filters.clientAlertConfigurationId,clientId:t.filters.clientId}})&&(!!await la(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.globalAccountConfig,t.values.userIdRecipients,t.values.roleIdRecipients)&&await da(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.externalRecipients))}),"ClientAlertConfigurationRepository::setClientAlertRecipients"):(i.error("ClientAlertConfigurationRepository::setClientAlertRecipients - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::setClientAlertRecipients result"),i}async isUserAllowedForAlertConfig(e){this.logger.trace(e,"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.clientAlertConfigurationId||!t?.userId)return i.warn({params:t},"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig - missing required parameters"),!1;const r=ra(t?.userId);return r?e.safeQuery((async e=>{const i=e.getRepository(ge),a=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!a?.length)return!1;const n=a?.find((e=>null==e.userId&&null==e.roleId));if(n)return!0;const o=a?.filter((e=>null!=e.userId)),s=o?.find((e=>e.userId.equals(r)));if(s)return!0;const l=a.filter((e=>null!=e.roleId)).map((e=>e.roleId));if(l.length>0){const t=e.getRepository(Se),i=await t.createQueryBuilder("securityRole").where("securityRole.userId = :userId",{userId:r}).getMany();for(const e of i)if(l.includes(e.securityRoleId))return!0}return!1}),"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig"):(i.warn({userId:t?.userId},"UserConfigurationsRepository::isUserAllowedForAlertConfig - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig result"),i}async getUsersDataForClientAlertConfig(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientAlertConfigurationId&&t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(ge),r=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!r?.length)return[];const a=r?.find((e=>null==e.userId&&null==e.roleId));if(a)return(await e.getRepository(Re).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A'",{clientId:t.clientId}).getMany()).map((e=>({userId:aa(e.id),email:e.email,phone:e.telephone})));const n=new Set;r.filter((e=>null!=e.userId)).forEach((e=>{n.add(e.userId)}));const o=r.filter((e=>null!=e.roleId));o.length>0&&(await e.getRepository(Se).createQueryBuilder("securityRole").where("securityRole.clientId = :clientId",{clientId:t.clientId}).andWhere("securityRole.securityRoleId IN (:...roleIds)",{roleIds:o.map((e=>e.roleId))}).select("securityRole.userId as userId").getRawMany()).map((e=>e.userId)).forEach((e=>{n.add(e)}));const s=[],l=Array.from(n);if(l?.length){const i=await e.getRepository(Re).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A' and user.id in (:...userIds)",{clientId:t.clientId,userIds:l}).getMany();s.push(...i.map((e=>({userId:aa(e.id),email:e.email,phone:e.telephone}))))}return s}),"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig"):(i.warn({params:t},"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig result"),i}},ClientsRepository:class extends ta{async getClient(e){this.logger.trace(e,"ClientsRepository::getClient started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId&&!t.filters.email)return i.warn({params:t},"ClientsRepository::getClient - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ce).createQueryBuilder("client").comment("test=value");return i&&r.setQueryRunner(i),t.projectionOptions?.withCustomerAttribute&&(r=r.leftJoinAndSelect("client.customerAttribute","customerAttribute")),t.projectionOptions?.withOrganization&&(r=r.leftJoinAndSelect("client.organization","organization")),t.filters.clientId&&(r=r.where("client.id = :id",{id:t.filters.clientId})),t.filters.email&&(r=r.andWhere("LOWER(client.email) = LOWER(:email)",{email:t.filters.email})),await r.leftJoinAndSelect("client.clientType","clientType").select().getOne()}),"ClientsRepository::getClient",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClient result"),i}async getClients(e){this.logger.trace(e,"ClientsRepository::getClients started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.email)return i.warn({params:t},"ClientsRepository::getClients - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ce).createQueryBuilder("client").where("LOWER(client.email) = LOWER(:email)",{email:t.filters.email});return i&&r.setQueryRunner(i),t.projectionOptions?.withCustomerAttribute&&(r=r.leftJoinAndSelect("client.customerAttribute","customerAttribute")),t.projectionOptions?.withOrganization&&(r=r.leftJoinAndSelect("client.organization","organization")),await r.leftJoinAndSelect("client.clientType","clientType").select().getMany()}),"ClientsRepository::getClients",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClients result"),i}async createClient(e){this.logger.trace(e,"ClientsRepository::createClient started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.name&&t?.email&&t?.uuid?e.safeQuery((async e=>{const i=e.getRepository(ce),r=new Date,a={id:t.clientId,name:t.name,email:t.email,clientTypeId:t.clientTypeId??b.b2c,createdAt:r,modifiedAt:r,createdBy:0,modifiedBy:0,uuid:ra(t.uuid),dataSourceTypeId:t.dataSourceTypeId,sievaUserName:t.sievaUserName,sievaBatchId:t.sievaBatchId,salesforceId:t.salesforceId,accumaticaId:t.accumaticaId,expirationDate:t.expirationDate,useType:t.useType,btCustomerId:t.btCustomerId,activationCampaign:t.activationCampaign,organizationId:t.organizationId};return await i.save(a)}),"ClientsRepository::createClient"):(i.warn({params:t},"ClientsRepository::createClient - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClient result"),i}async updateClient(e){this.logger.trace(e,"ClientsRepository::updateClient started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&(t?.values?.name||t?.values?.uuid||t?.values?.email||t?.values?.clientTypeId||t?.values?.dataSourceTypeId||t?.values?.sievaUserName||t?.values?.sievaBatchId||t?.values?.salesforceId||t?.values?.accumaticaId||t?.values?.expirationDate||t?.values?.useType||t?.values?.btCustomerId||t?.values?.activationCampaign||t?.values?.organizationId)?e.safeQuery((async e=>{const i=e.getRepository(ce),r=new Date;return(await i.createQueryBuilder().update(ce).set({name:t.values.name,uuid:t.values.uuid?ra(t.values.uuid):void 0,email:t.values.email,clientTypeId:t.values.clientTypeId,dataSourceTypeId:t.values.dataSourceTypeId,salesforceId:t.values.salesforceId,accumaticaId:t.values.accumaticaId,expirationDate:t.values.expirationDate,useType:t.values.useType,btCustomerId:t.values.btCustomerId,activationCampaign:t.values.activationCampaign,organizationId:t.values.organizationId,modifiedAt:r}).where("id = :id",{id:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateClient"):(i.warn({params:t},"ClientsRepository::updateClient - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateClient result"),i}async deleteClientAndConfigurations(e){this.logger.trace(e,"ClientsRepository::deleteClientAndConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientsRepository::deleteClientAndConfiguration - missing required parameters"),!1;await e.connect();const r=e.createQueryRunner();try{await r.startTransaction(),await r.manager.delete(tt,t.filters.clientId);const e=await r.manager.delete(ce,t.filters.clientId);return await r.commitTransaction(),e.affected>0}catch(e){throw await r.rollbackTransaction(),i.error({error:e},"ClientsRepository::deleteClientAndConfigurations error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::deleteClientAndConfigurations result"),i}async getClientConfiguration(e){this.logger.trace(e,"ClientsRepository::getClientConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,Ei))return i.warn({params:t},"ClientsRepository::getClientConfiguration - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(tt).createQueryBuilder("clientConfiguration");return t.filters.clientId&&r.andWhere("clientConfiguration.clientId = :clientId",{clientId:t.filters.clientId}),t.filters.ssoDomain&&r.andWhere("clientConfiguration.ssoDomain = :ssoDomain",{ssoDomain:t.filters.ssoDomain}),i&&r.setQueryRunner(i),await r.getOne()}),"ClientsRepository::getClientConfiguration",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClientConfiguration result"),i}async createClientConfiguration(e){this.logger.trace(e,"ClientsRepository::createClientConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(tt),r={clientId:t.clientId,movementTripThreshold:t.movementTripThreshold,stopTripThreshold:t.stopTripThreshold,mapUpdateMode:t.mapUpdateMode,maxUsersAllowed:t.maxUsersAllowed,ssoDomain:t.ssoDomain,ssoMetadata:t.ssoMetadata,assetProfileStatusLabels:t.assetProfileStatusLabels};return await i.save(r)}),"ClientsRepository::createClientConfiguration"):(i.warn({params:t},"ClientsRepository::createClientConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClientConfiguration result"),i}async updateClientConfiguration(e){this.logger.trace(e,"ClientsRepository::updateClientConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Pi)||ga(t,Mi)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(tt);return(await i.createQueryBuilder().update(tt).set({movementTripThreshold:t.values.movementTripThreshold,stopTripThreshold:t.values.stopTripThreshold,mapUpdateMode:t.values.mapUpdateMode,maxUsersAllowed:t.values.maxUsersAllowed,ssoDomain:t.values.ssoDomain,ssoMetadata:t.values.ssoMetadata,assetProfileStatusLabels:t.values.assetProfileStatusLabels}).where("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateClientConfiguration"))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateClientConfiguration result"),i}async createCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::createCustomerAttribute started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Oi)||ga(t,xi)?(i.warn({params:t},"ClientsRepository::createCustomerAttribute - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ne),r={clientId:t.clientId,enterprise:t.enterprise,maintenanceModule:t.maintenanceModule,billingMethod:t.billingMethod,customerSegment:t.customerSegment};return await i.save(r)}),"ClientsRepository::createCustomerAttribute"))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createCustomerAttribute result"),i}async updateCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::updateCustomerAttribute started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,ki)||ga(t,Li)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(tt);return(await i.createQueryBuilder().update(ne).set({enterprise:t.values.enterprise,maintenanceModule:t.values.maintenanceModule,billingMethod:t.values.billingMethod,customerSegment:t.values.customerSegment}).where("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateCustomerAttribute"))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateCustomerAttribute result"),i}async getCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::getCustomerAttribute started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientsRepository::getCustomerAttribute - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ne).createQueryBuilder("customerAttribute").where("customerAttribute.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getOne()}),"ClientsRepository::getCustomerAttribute",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getCustomerAttribute result"),i}async getClientIngestorConfigurations(e){this.logger.trace(e,"ClientsRepository::getClientIngestorConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(rt).createQueryBuilder("clientIngestorConfiguration");return t.filters.clientId&&r.andWhere("clientIngestorConfiguration.clientId = :clientId",{clientId:t.filters.clientId}),t.filters.id&&r.andWhere("clientIngestorConfiguration.id = :id",{id:t.filters.id}),null!=t.filters.isEnabled&&r.andWhere("clientIngestorConfiguration.isEnabled = :isEnabled",{isEnabled:t.filters.isEnabled}),i&&r.setQueryRunner(i),await r.getMany()}),"ClientsRepository::getClientIngestorConfigurations",i)})(t,e);return this.logger.trace(i,"ClientsRepository::getClientIngestorConfigurations result"),i}async createClientIngestorConfiguration(e){this.logger.trace(e,"ClientsRepository::createClientIngestorConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Fi)?(i.warn({params:t},"ClientsRepository::createClientIngestorConfiguration - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(rt),r={clientId:t.clientId,userActivationId:t.userActivationId,tokenUrl:t.tokenUrl,fleetUrl:t.fleetUrl,requestParams:t.requestParams};return await i.save(r)}),"ClientsRepository::createClientIngestorConfiguration"))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClientIngestorConfiguration result"),i}},CountriesRepository:class extends ta{async getCountry(e){this.logger.trace(e,"CountriesRepository::getCountry started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await ya(t,e,this.logger);return this.logger.trace(i,"CountriesRepository::getCountry result"),i}async getCountries(e){this.logger.trace(e,"CountriesRepository::getCountries started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(pe).createQueryBuilder("country");return i&&r.setQueryRunner(i),t?.filters?.idList?.length&&(r=r.where("country.id IN (:...idList)",{idList:t.filters.idList})),await r.getMany()}),"CountriesRepository::getCountries",i)})(t,e);return this.logger.trace(i,"CountriesRepository::getCountries result"),i}},DataExportsRepository:class extends ta{async createDataExports(e){this.logger.trace(e,"DataExportsRepository::createDataExports started with params");const i=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(e,i,r)=>!i?.dataExports?.length||i.dataExports.some((e=>!e.clientId))?(r.warn({params:i},"DataExportsRepository::createDataExports - missing required parameters"),null):e.safeQuery((async e=>{const r=e.getRepository(at),a=new Date,n=i.dataExports.map((e=>{let i=ra(e.id);return null===i&&(i=ra(t.v4())),{id:i,clientId:e.clientId,imei:e.imei,createdAt:a,dataType:e.dataType,status:e.status,parameters:e.parameters,exportLocation:e.exportLocation,downloadLink:e.downloadLink}}));return await r.save(n)}),"DataExportsRepository::createDataExports"))(i,e,this.logger);return this.logger.trace({result:r},"DataExportsRepository::createDataExports result"),r}async getDataExports(e){this.logger.trace(e,"DataExportsRepository::getDataExports started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filter?.id&&!t?.filter?.clientId)return i.warn({params:t},"DataExportsRepository::getDataExports - missing required parameters"),null;const r=ra(t.filter.id);return r?.length?e.safeQuery((async(e,i)=>{let a=e.getRepository(at).createQueryBuilder("dataExport");i&&a.setQueryRunner(i),t?.filter?.id&&(a=a.where("dataExport.id = :id",{id:r})),t?.filter?.clientId&&(a=a.andWhere("dataExport.clientId = :clientId",{clientId:t.filter.clientId})),t?.projectionOptions?.withClient&&(a=a.leftJoinAndSelect("dataExport.client","client"));const n=t.pagingOptions?.pageSize??100,o=t.pagingOptions?.pageIndex??0;let s,l;return a=a.limit(n).offset(n*o),t?.projectionOptions?.withTotalCount?[s,l]=await a.getManyAndCount():s=await a.getMany(),{dataExports:s,totalCount:l}}),"DataExportsRepository::getDataExports"):(i.warn({params:t},"DataExportsRepository::getDataExports - id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DataExportsRepository::getDataExports result"),i}async updateDataExport(e){this.logger.trace(e,"DataExportsRepository::updateDataExport started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filter?.id||Object.values(t.values).every((e=>null==e)))return i.warn({params:t},"DataExportsRepository::updateDataExport - missing required parameters"),null;const r=ra(t.filter.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(at),a=await i.createQueryBuilder().update(at).set({...t.values}).where("id = :id",{id:r}).execute();return a?.affected>0}),"DataExportsRepository::updateDataExport"):(i.warn({params:t},"DataExportsRepository::updateDataExport - id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DataExportsRepository::updateDataExport result"),i}},DeactivationsRepository:class extends ta{async getDeactivationReasons(e){this.logger.trace(e,"DeactivationsRepository::getDeactivationReasons started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.code&&null==t?.filters?.customerVisible)return i.warn({params:t},"DeactivationsRepository::getDeactivationReasons - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(st).createQueryBuilder("deactivationReason");return i&&r.setQueryRunner(i),t.filters.code&&(r=r.andWhere("deactivationReason.code = :code",{code:t.filters.code})),null!=t.filters.customerVisible&&(r=r.andWhere("deactivationReason.customerVisible = :customerVisible",{customerVisible:t.filters.customerVisible})),r=r.orderBy("deactivationReason.id"),await r.getMany()}),"DeactivationsRepository::getDeactivationReasons",r)})(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::getDeactivationReasons result"),i}async getLatestDeactivationByImei(e){this.logger.trace(e,"DeactivationsRepository::getLatestDeactivationByImei started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DeactivationsRepository::getLatestDeactivationByImei - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ot).createQueryBuilder("deactivation").where("deactivation.imei = :imei",{imei:t.filters.imei}).orderBy("deactivation.createdAt","DESC").limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"DeactivationsRepository::getLatestDeactivationByImei",r)})(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::getLatestDeactivationByImei result"),i}async createDeactivation(e){this.logger.trace(e,"DeactivationsRepository::createDeactivation started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imei&&t?.clientId&&t?.createdBy?e.safeQuery((async e=>{const i=e.getRepository(ot),r=new Date,a={...t,createdAt:r};return await i.save(a)}),"DeactivationsRepository::createDeactivation"):(i.warn({params:t},"DeactivationsRepository::createDeactivation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::createDeactivation result"),i}},DeviceBehaviorsRepository:class extends ta{async getDeviceBehaviors(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviors started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.status||!t?.filters?.imeiList?.length||!t?.filters?.deviceTypeIdList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviors - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(lt).createQueryBuilder("deviceBehavior");return i&&r.setQueryRunner(i),r=r.andWhere("deviceBehavior.status = :status",{status:t.filters.status}),r=r.andWhere("(deviceBehavior.imei IN (:...imeiList) OR deviceBehavior.imei IS NULL OR deviceBehavior.imei = '')",{imeiList:t.filters.imeiList}),r=r.andWhere("deviceBehavior.deviceTypeId IN (:...deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIdList}),r=r.andWhere("(deviceBehavior.stage IS NULL OR deviceBehavior.stage = '' OR deviceBehavior.stage = :stage)",{stage:t.filters.stage}),r=t.filters.clientId?r.andWhere("(deviceBehavior.clientId IS NULL OR deviceBehavior.clientId <= 0 OR deviceBehavior.clientId = :clientId)",{clientId:t.filters.clientId}):r.andWhere("(deviceBehavior.clientId IS NULL OR deviceBehavior.clientId <= 0)"),t.filters.type&&(r=r.andWhere("deviceBehavior.type = :type",{type:t.filters.type})),r=r.orderBy("deviceBehavior.ordinalPosition"),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviors",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviors result"),i}async getDeviceBehaviorsByIds(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviorsByIds started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.deviceBehaviorIdList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviorsByIds - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(lt).createQueryBuilder("deviceBehavior");return i&&r.setQueryRunner(i),r=r.andWhere("deviceBehavior.id IN (:...deviceBehaviorIdList)",{deviceBehaviorIdList:t.filters.deviceBehaviorIdList}),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviorsByIds",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviorsByIds result"),i}async getDeviceBehaviorTasks(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviorTasks started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskId&&!t?.filters?.imeiList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviorTasks - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Ci).createQueryBuilder("userDeviceBehaviorTask");if(i&&r.setQueryRunner(i),t.filters.taskId){const e=ra(t?.filters?.taskId);r=r.andWhere("userDeviceBehaviorTask.id = :taskId",{taskId:e})}return t.filters.imeiList?.length&&(r=r.andWhere("userDeviceBehaviorTask.imei IN (:...imeiList)",{imeiList:t.filters.imeiList})),t.filters.status&&(r=r.andWhere("userDeviceBehaviorTask.status = :status",{status:t.filters.status})),t.filters.deviceBehaviorIdList?.length&&(r=r.andWhere("userDeviceBehaviorTask.deviceBehaviorId IN (:...deviceBehaviorIdList)",{deviceBehaviorIdList:t.filters.deviceBehaviorIdList})),r=r.orderBy("userDeviceBehaviorTask.modifiedAt","DESC"),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviorTasks",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviorTasks result"),i}async createDeviceBehaviorTask(e){this.logger.trace(e,"DeviceBehaviorsRepository::createDeviceBehaviorTasks started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.taskId&&t?.deviceBehaviorId&&t?.clientId&&t?.userId&&t?.imei&&t?.behaviorName&&t?.status))return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - missing required parameters"),null;const r=ra(t?.taskId);if(!r?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - taskId should be a valid UUID"),null;const a=ra(t?.userId);if(!a?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - user id should be a valid UUID"),null;const n=ra(t?.commandTaskId);return t.commandTaskId&&!n?(i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - command task id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(Ci),o=new Date,s={id:r,deviceBehaviorId:t.deviceBehaviorId,clientId:t.clientId,userId:a,imei:t.imei,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,extraParams:t.extraParams,commandTaskId:n,createdAt:o,modifiedAt:o};return await i.save(s)}),"DeviceBehaviorsRepository::createDeviceBehaviorTask")})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::createDeviceBehaviorTasks result"),i}async updateDeviceBehaviorTask(e){this.logger.trace(e,"DeviceBehaviorsRepository::updateDeviceBehaviorTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskId||!t?.values?.status)return i.warn({params:t},"DeviceBehaviorsRepository::updateDeviceBehaviorTask - missing required parameters"),null;const r=ra(t?.filters.taskId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Ci),a=new Date;let n=i.createQueryBuilder().update(Ci).set({status:t.values.status,modifiedAt:a});return n=n.where("id = :id",{id:r}),(await n.execute()).affected>0}),"DeviceBehaviorsRepository::updateDeviceBehaviorTask"):(i.warn({params:t},"DeviceBehaviorsRepository::updateDeviceBehaviorTask - taskId should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DeviceBehaviorsRepository::updateDeviceBehaviorTask result"),i}async upsertDeviceBehavior(e){this.logger.trace(e,"DeviceBehaviorsRepository::upsertDeviceBehavior started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId&&t?.name&&t?.description&&t?.status&&t?.behaviorName?e.safeQuery((async e=>{const i=e.getRepository(lt),r={...t,ordinalPosition:t.ordinalPosition||1,blocking:t.blocking??!0};return await i.save(r)}),"DeviceBehaviorsRepository::upsertDeviceBehavior"):(i.warn({params:t},"DeviceBehaviorsRepository::upsertDeviceBehavior - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::upsertDeviceBehavior result"),i}},DevicePairingsRepository:class extends ta{async getDevicePairings(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairings started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.imeiMain||t?.filters?.imeiSecondary||t?.filters?.btmacMain||t?.filters?.btmacSecondary))return i.warn({params:t},"DevicePairingsRepository::getDevicePairings missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Ct).createQueryBuilder("devicePairing");return i&&r.setQueryRunner(i),t.filters.imeiMain&&(r=r.where("devicePairing.imeiMain = :imeiMain",{imeiMain:t.filters.imeiMain})),t.filters.imeiSecondary&&(r=r.andWhere("devicePairing.imeiSecondary = :imeiSecondary",{imeiSecondary:t.filters.imeiSecondary})),t.filters.btmacMain&&(r=r.andWhere("devicePairing.btmacMain = :btmacMain",{btmacMain:t.filters.btmacMain})),t.filters.btmacSecondary&&(r=r.andWhere("devicePairing.btmacSecondary = :btmacSecondary",{btmacSecondary:t.filters.btmacSecondary})),await r.getMany()}),"DevicePairingsRepository::getDevicePairings",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairings result"),i}async getDevicePairingsByImei(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairingsByImei started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicePairingsRepository::getDevicePairingsByImei missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ct).createQueryBuilder("devicePairing").where("devicePairing.imeiMain = :imeiMain",{imeiMain:t.filters.imei}).orWhere("devicePairing.imeiSecondary = :imeiSecondary",{imeiSecondary:t.filters.imei});return i&&r.setQueryRunner(i),await r.getMany()}),"DevicePairingsRepository::getDevicePairingsByImei",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairingsByImei result"),i}async getDevicePairingsByClientId(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairingsByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicePairingsRepository::getDevicePairingsByClientId missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Ct).createQueryBuilder("devicePairing").innerJoin(le,"device","devicePairing.imeiMain = device.imei or devicePairing.imeiSecondary = device.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"DevicePairingsRepository::getDevicePairingsByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairingsByClientId result"),i}async createDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::createDevicePairing started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeiMain&&t?.imeiSecondary&&t?.btmacMain&&t?.btmacSecondary?e.safeQuery((async e=>{const i=e.getRepository(Ct),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"DevicePairingsRepository::createDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::createDevicePairing missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::createDevicePairing result"),i}async updateDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::updateDevicePairing started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.imeiMain||t?.values?.imeiSecondary||t?.values?.btmacMain||t?.values?.btmacSecondary||t?.values?.connectionType||t?.values?.pairingMode||t?.values?.mainDeviceStatus||t?.values?.secondaryDeviceStatus||t?.values?.notes)?e.safeQuery((async e=>{const i=e.getRepository(Ct),r=new Date,a=i.createQueryBuilder().update(Ct).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await a.execute()).affected>0}),"DevicePairingsRepository::updateDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::updateDevicePairing missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"DevicePairingsRepository::updateDevicePairing result"),i}async deleteDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::deleteDevicePairing started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(Ct).createQueryBuilder().delete().where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"DevicePairingsRepository::deleteDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::deleteDevicePairing - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"DevicePairingsRepository::deleteDevicePairing result"),i}},DeviceStatusRepository:class extends ia{async getDeviceStatuses(e){this.logger.trace(e,"DeviceStatusRepository::getDeviceStatus started with params"),(e=>{e?.projectionOptions?.deviceStatusProperties?.length&&(e?.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")&&(e?.projectionOptions?.deviceStatusProperties?.push("deviceTypeId"),e?.projectionOptions?.deviceStatusProperties?.push("created"),e?.projectionOptions?.deviceStatusProperties?.push("speed"),e?.projectionOptions?.deviceStatusProperties?.push("gpsUTCTime"),e?.projectionOptions?.deviceStatusProperties?.push("sendTime"),e?.projectionOptions?.deviceStatusProperties?.push("batteryPercentage")),e?.projectionOptions?.deviceStatusProperties?.includes("isOnline")&&(e?.projectionOptions?.deviceStatusProperties?.push("sendTime"),e?.projectionOptions?.deviceStatusProperties?.push("restFrequency")))})(e);const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.clientId)return i.warn({params:t},"DeviceStatusRepository::getDevice missing required parameters"),[];const r=e.createQueryRunnerFromParams(t),a=await e.safeQuery2((async(e,i)=>{let r=e.getRepository(St).createQueryBuilder("deviceStatus");return i&&r.setQueryRunner(i),t.filters.imeiList?.length&&(r=r.andWhere("deviceStatus.imei IN (:...imeis)",{imeis:t.filters.imeiList})),t.filters.clientId&&(r=r.andWhere("deviceStatus.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.minSendTime&&(r=r.andWhere("deviceStatus.sendTime > :sendTimeMin",{sendTimeMin:t.filters.minSendTime})),(t.filters.deviceStatus||t.projectionOptions?.withDevice||t.projectionOptions?.withOnlineStatus||t.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")||t.projectionOptions?.withConnectionStatus)&&(r=r.leftJoinAndMapOne("deviceStatus.device",le,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId"),t.projectionOptions?.withOnlineStatus&&(r=r.leftJoinAndMapOne("device.deviceType",se,"deviceType","device.deviceTypeId = deviceType.id")),t.filters.deviceStatus&&(r=r.andWhere("device.status = :status",{status:t.filters.deviceStatus}))),t.projectionOptions?.withClient&&(r=r.leftJoinAndSelect("deviceStatus.client","client")),(t.projectionOptions?.withClientDeviceSettings||t.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")||t.projectionOptions?.withConnectionStatus)&&(r=r.leftJoinAndMapOne("deviceStatus.clientDeviceSetting",it,"clientDeviceSetting","deviceStatus.imei = clientDeviceSetting.imei and deviceStatus.clientId = clientDeviceSetting.clientId")),r=r.limit(t.pagingOptions?.limit??100).offset(t.pagingOptions?.offset??0),await r.getMany()}),"DeviceStatusRepository::getDevice",r);return a.forEach((e=>{if(t.projectionOptions?.deviceStatusProperties?.length)for(const i in e.data)t.projectionOptions?.deviceStatusProperties?.some((e=>e==i))||delete e.data[i];if(t.projectionOptions?.deviceProperties?.length)for(const i in e.device)t.projectionOptions?.deviceProperties?.some((e=>e==i))||delete e.device[i];if(t.projectionOptions?.clientProperties?.length)for(const i in e.client)t.projectionOptions?.clientProperties?.some((e=>e==i))||delete e.client[i];if(t.projectionOptions?.clientDeviceSettingsProperties?.length)for(const i in e.clientDeviceSetting)t.projectionOptions?.clientDeviceSettingsProperties?.some((e=>e==i))||delete e.clientDeviceSetting[i]})),a})(this.dataSource,e,this.logger);return t?.forEach((t=>Na({logger:this.logger,deviceStatus:t,withConnectionStatusInfo:e.projectionOptions?.withConnectionStatus||e.projectionOptions?.deviceStatusProperties?.includes("connectionStatus"),withOnlineStatus:e.projectionOptions?.withOnlineStatus||e.projectionOptions?.deviceStatusProperties?.includes("isOnline")}))),this.logger.trace(t,"DeviceStatusRepository::getDeviceStatus result"),t}async getDeviceStatusesCount(e){this.logger.trace(e,"DeviceStatusRepository::getDeviceStatusesCount started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.clientId)return i.warn({params:t},"DeviceStatusRepository::getDeviceStatusesCount missing required parameters"),0;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(St).createQueryBuilder("deviceStatus");return i&&r.setQueryRunner(i),t.filters.imeiList?.length&&(r=r.andWhere("deviceStatus.imei IN (:...imeis)",{imeis:t.filters.imeiList})),t.filters.clientId&&(r=r.andWhere("deviceStatus.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.minSendTime&&(r=r.andWhere("deviceStatus.sendTime > :sendTimeMin",{sendTimeMin:t.filters.minSendTime})),t.filters.deviceStatus&&(r=r.leftJoin(le,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId").andWhere("device.status = :status",{status:t.filters.deviceStatus})),await r.getCount()}),"DeviceStatusRepository::getDeviceStatusesCount",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DeviceStatusRepository::getDeviceStatusesCount result"),t}async upsertDeviceStatuses(e){this.logger.trace(e,"DeviceStatusRepository::upsertDeviceStatus started with params");const t=await(async(e,t,i)=>t?.items?.length?e.safeQuery2((async e=>{const i=e.getRepository(St),r=t.items.map((e=>{const t={clientId:e.clientId,imei:e.imei,created:new Date(e.created),sendTime:new Date(e.sendTime),data:e};return t.created.setMilliseconds(0),t.sendTime.setMilliseconds(0),t})),a=r.map((()=>"(?, ?, ?, ?, ?)")).join(", "),n=r.reduce(((e,t)=>(e.push(t.imei),e.push(t.clientId),e.push(t.created),e.push(t.sendTime),e.push(JSON.stringify(t.data)),e)),[]),o="VALUES(sendTime) >= sendTime",s=`\n INSERT INTO deviceStatus (imei, clientId, created, sendTime, \`data\`)\n VALUES ${a}\n ON DUPLICATE KEY UPDATE \n clientId = CASE WHEN ${o} THEN VALUES(clientId) ELSE clientId END, \n \`data\` = CASE WHEN ${o} THEN VALUES(\`data\`) ELSE \`data\` END,\n created = CASE WHEN ${o} THEN VALUES(created) ELSE created END,\n sendTime = CASE WHEN ${o} THEN VALUES(sendTime) ELSE sendTime END;`,l=await i.query(s,n);return l?.affectedRows>0}),"DeviceStatusRepository::upsertDeviceStatus"):(i.warn({params:t},"DeviceStatusRepository::upsertDeviceStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DeviceStatusRepository::upsertDeviceStatus result"),t}},DeviceTypeFeatureRepository:class extends ta{async bulkCreateDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ma(t.items,Ba)?(i.warn({params:t},"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(wt),r=t.items.map((e=>({deviceTypeId:e.deviceTypeId,featureKey:e.featureKey,value:e.value})));return await i.save(r)??[]}),"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature error"))(t,e,this.logger);return this.logger.trace(i,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature result"),i}async getDeviceTypeFeatures(e){this.logger.trace(e,"DeviceTypeFeatureRepository::getDeviceTypeFeatures started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(wt).createQueryBuilder("deviceTypeFeature");i&&r.setQueryRunner(i),t?.filters?.deviceTypeIds?.length&&r.where("deviceTypeFeature.deviceTypeId IN (:deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIds}),t?.filters?.featureKeys?.length&&r.andWhere("deviceTypeFeature.featureKey IN (:featureKeyList)",{featureKeyList:t.filters.featureKeys});const a=await r.getMany();return a?.length?a:[]}),"FeatureRepository::getFeatures error",i)})(t,e);return this.logger.trace(i,"DeviceTypeFeatureRepository::getDeviceTypeFeatures result"),i}async deleteDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::deleteDeviceTypeFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t.filters,Ua)?(i.warn({params:t},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(wt);return(await i.createQueryBuilder().delete().where("COALESCE(:deviceTypeId, deviceTypeId) = deviceTypeId AND COALESCE(:featureKey, featureKey) = featureKey",{deviceTypeId:t.filters.deviceTypeId,featureKey:t.filters.featureKey}).execute()).affected>0}),"FeatureRepository::deleteFeature"))(t,e,this.logger);return this.logger.trace({result:i},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature result"),i}},DevicesRepository:class extends ia{async getDevice(e){this.logger.trace(e,"DevicesRepository::getDevice started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei&&!t?.filters?.id)return i.warn({params:t},"DevicesRepository::getDevice missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(le).createQueryBuilder("device");return i&&r.setQueryRunner(i),t.filters.id&&(r=r.where("device.id = :id",{id:t.filters.id})),t.filters.imei&&(r=r.andWhere("device.imei = :imei",{imei:t.filters.imei})),t.projectionOptions.withDeviceType&&(r=r.leftJoinAndSelect("device.deviceType","deviceType")),t.projectionOptions.withIccidCarrier&&(r=r.leftJoinAndMapOne("device.iccidCarrier",xt,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",Yt,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",it,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",oe,"customIcon","device.customIconId = customIcon.id")),await r.getOne()}),"DevicesRepository::getDevice",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevice result"),t}async getDevices(e){this.logger.trace(e,"DevicesRepository::getDevices started with params");const t=await(async(e,t,i)=>{if(!(t?.filters?.deviceTypeId||t?.filters?.clientId||t?.filters?.imeiList?.length||t?.filters?.tagIdList?.length||t?.filters?.status))return i.warn({params:t},"DevicesRepository::getDevices missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(le).createQueryBuilder("device");if(i&&r.setQueryRunner(i),t.filters.clientId&&(r=r.where("device.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.deviceTypeId&&(r=r.andWhere("device.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),t.filters.status&&(r=r.andWhere("device.status = :status",{status:t.filters.status})),t.filters.imeiList?.length&&(r=r.andWhere("device.imei IN (:...imeiList)",{imeiList:t.filters.imeiList})),t.filters.tagIdList?.length&&(r=r.innerJoin(Nt,"entityTag","entityTag.entityId = device.id \n AND entityTag.entityType = 'Device'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList})),t.projectionOptions?.withDeviceType&&(r=r.leftJoinAndSelect("device.deviceType","deviceType")),t.projectionOptions?.withIccidCarrier&&(r=r.leftJoinAndMapOne("device.iccidCarrier",xt,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",Yt,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions?.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",it,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions?.withDevicePairing&&(r=r.leftJoinAndMapOne("device.devicePairing",Ct,"devicePairing","device.imei = devicePairing.imeiMain or device.imei = devicePairing.imeiSecondary")),t.projectionOptions?.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",oe,"customIcon","device.customIconId = customIcon.id")),t?.sortOptions?.sortField&&(r=r.orderBy(`device.${t.sortOptions.sortField}`,t?.sortOptions?.sortOrder??"ASC")),t?.pagingOptions?.pageIndex){const e=t?.pagingOptions?.pageSize??1e3,i=(t?.pagingOptions?.pageIndex??1)-1;r=r.offset(i*e),r=r.limit(e)}let a=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Nt);a=await Promise.all(a.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Device"}).innerJoin(ri,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return a}),"DevicesRepository::getDevices",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevices result"),t}async allImeisAreActiveForClient(e){this.logger.trace(e,"DevicesRepository::allImeisAreActiveForClient started with params");const t=await(async(e,t,i)=>{if(!t?.clientId&&!t?.imeiList?.length)return i.warn({params:t},"DevicesRepository::allImeisAreActiveForClient missing required parameters"),!1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(le).createQueryBuilder("device").where("device.imei IN (:...imeiList)",{imeiList:t.imeiList}).andWhere("device.clientId = :clientId",{clientId:t.clientId}).andWhere("device.status = :status",{status:h.Active});return i&&r.setQueryRunner(i),await r.getCount()===t.imeiList.length}),"DevicesRepository::getDevicesImeis",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::allImeisAreActiveForClient result"),t}async getFilteredImeisWithStatus(e){this.logger.trace(e,"DevicesRepository::getFilteredImeisWithStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.status)return i.warn({params:t},"DevicesRepository::getFilteredImeisWithStatus missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(le).createQueryBuilder("device").where("imei IN (:...imeiList)",{imeiList:t.filters.imeiList}).andWhere("status = :status",{status:t.filters.status});return i&&r.setQueryRunner(i),(await r.select("imei").getRawMany()).map((e=>e.imei))}),"DevicesRepository::getFilteredImeisWithStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getFilteredImeisWithStatus result"),t}async createDevice(e){this.logger.trace(e,"DevicesRepository::createDevice started with params");const t=await(async(e,t,i)=>{if(!t?.imei||!t?.clientId||0===t?.clientId||!t?.deviceTypeId)return i.warn({params:t},"DevicesRepository::createDevice missing required parameters"),null;const r=t.identifier||t.imei,a=await ba(e,{deviceTypeId:t.deviceTypeId,deviceIdentifier:r},i);return a?e.safeQuery2((async e=>{const i=e.getRepository(le),n=new Date,o={...t,identifier:r,identifierKey:a,modifiedBy:t.createdBy,createdAt:n,modifiedAt:n};return await i.save(o)}),"DevicesRepository::createDevice"):null})(this.dataSource,e,this.logger);if(e.assignedTo){const t=await this.addDeviceChangesHistory({assignedTo:e.assignedTo,clientId:e.clientId,imei:e.imei,action:"create"});this.logger.trace({deviceChangesHistory:t},"DevicesRepository::createDevice deviceChangesHistory")}return this.logger.trace(t,"DevicesRepository::createDevice result"),t}async updateDevice(e){this.logger.trace(e,"DevicesRepository::updateDevice started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;if(ga(t.values,Vi))return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;let r;if(t.values.deviceTypeId){const a=t.filters.imei;if(r=await ba(e,{deviceTypeId:t.values.deviceTypeId,deviceIdentifier:a},i),!r)return!1}return e.safeQuery2((async e=>{const i=e.getRepository(le),a=new Date;let n=i.createQueryBuilder().update(le).set({...t.values,identifierKey:r,modifiedAt:a}).where("imei = :imei",{imei:t.filters.imei});return t.filters.status&&(n=n.andWhere("status = :status",{status:t.filters.status})),(await n.execute()).affected>0}),"DevicesRepository::updateDevice")})(this.dataSource,e,this.logger);if(this.logger.trace({result:t},"DevicesRepository::updateDevice result"),e.values.assignedTo)if(e.filters.clientId){const t=await this.addDeviceChangesHistory({clientId:e.filters.clientId,imei:e.filters.imei,assignedTo:e.values.assignedTo,action:"update"});this.logger.trace({deviceChangesHistory:t},"DevicesRepository::updateDevice deviceChangesHistory")}else this.logger.warn("DevicesRepository::updateDevice clientId is required to add deviceChangesHistory");return t}async deleteDevice(e){this.logger.trace(e,"DevicesRepository::deleteDevice started with params");const t=await(async(e,t,i)=>t?.filters?.imei?e.safeQuery2((async e=>{const i=e.getRepository(le);return(await i.createQueryBuilder().delete().where("imei = :imei",{imei:t.filters.imei}).execute()).affected>0}),"DevicesRepository::deleteDevice"):(i.warn({params:t},"DevicesRepository::deleteDevice - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::deleteDevice result"),t}async generateDeviceIdentifierKey(e){this.logger.trace(e,"DevicesRepository::generateDeviceIdentifierKey started with params");const t=await ba(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::generateDeviceIdentifierKey result"),t}async getDeviceTypes(e){this.logger.trace(e,"DevicesRepository::getDeviceTypes started with params");const t=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(se).createQueryBuilder("deviceType");return i&&r.setQueryRunner(i),t?.filters?.modelFamily?(r=r.where("deviceType.modelFamily = UPPER(:modelFamily)",{modelFamily:t.filters.modelFamily}),t?.filters?.supported&&(r=r.andWhere("deviceType.supported = :supported",{supported:!0})),t?.filters?.activatable&&(r=r.andWhere("deviceType.activatable = :activatable",{activatable:!0}))):(t?.filters?.deviceTypeIdList?.length&&(r=r.where("deviceType.id IN (:...deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIdList})),t?.filters?.brand&&(r=r.andWhere("LOWER(deviceType.brand) = LOWER(:brand)",{brand:t.filters.brand})),t?.filters?.model&&(r=r.andWhere("LOWER(deviceType.model) = LOWER(:model)",{model:t.filters.model})),t?.filters?.onlyWithRelatedIccidCarrier&&(r=r.innerJoin(xt,"iccidCarrier","deviceType.id = iccidCarrier.deviceTypeId").groupBy("deviceType.id"))),r=r.orderBy("deviceType.id"),await r.getMany()}),"DevicesRepository::getDeviceTypes",i)})(this.dataSource,e);return this.logger.trace(t,"DevicesRepository::getDeviceTypes result"),t}async getImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::getImeiIccidCarrier started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei&&!t?.filters?.iccid)return i.warn({params:t},"DevicesRepository::getImeiIccidCarrier missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(xt).createQueryBuilder("imeiIccidCarrier");return i&&r.setQueryRunner(i),t?.filters?.imei&&(r=r.where("imeiIccidCarrier.imei = :imei",{imei:t.filters.imei})),t?.filters?.iccid&&(r=r.andWhere("imeiIccidCarrier.iccid = :iccid",{iccid:t.filters.iccid})),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",se,"deviceType","imeiIccidCarrier.deviceTypeId = deviceType.id"),await r.getOne()}),"DevicesRepository::getImeiIccidCarrier",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getImeiIccidCarrier result"),t}async getDeviceTypeByImei(e){this.logger.trace(e,"DevicesRepository::getDeviceTypeByImei started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::getDeviceTypeByImei - missing imei parameter"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(se).createQueryBuilder("deviceType").innerJoin(xt,"imeiIccidCarrier","deviceType.id = imeiIccidCarrier.deviceTypeId").where("imeiIccidCarrier.imei = :imei",{imei:t.filters.imei});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getDeviceTypeByImei",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceTypeByImei result"),t}async getImeiIccidCarriers(e){this.logger.trace(e,"DevicesRepository::getImeiIccidCarriers started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length)return i.warn({params:t},"DevicesRepository::getImeiIccidCarriers missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(xt).createQueryBuilder("imeiIccidCarrier").where("imeiIccidCarrier.imei IN (:...imeiList)",{imeiList:t.filters.imeiList});return i&&r.setQueryRunner(i),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",se,"deviceType","imeiIccidCarrier.deviceTypeId = deviceType.id"),await r.getMany()}),"DevicesRepository::getImeiIccidCarriers",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getImeiIccidCarriers result"),t}async updateImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::updateImeiIccidCarrier started with params");const t=await(async(e,t,i)=>(t?.filters?.imei||t?.filters?.iccid)&&(t?.values?.carrier||t?.values?.phone||t?.values?.deviceTypeId||t?.values?.serviceProviderProductId||null!=t?.values?.isValid||t?.values?.model||t?.values?.realModel||t?.values?.po||null!=t?.values?.outOfInventory||t?.values?.apn||null!=t?.values?.itsEsim||t?.values?.btmac)?e.safeQuery2((async e=>{const i=e.getRepository(xt),r=new Date;let a=i.createQueryBuilder().update(xt).set({...t.values,modifiedAt:r});return t.filters.imei&&(a=a.where("imei = :imei",{imei:t.filters.imei})),t.filters.iccid&&(a=a.andWhere("iccid = :iccid",{iccid:t.filters.iccid})),(await a.execute()).affected>0}),"DevicesRepository::updateImeiIccidCarrier"):(i.warn({params:t},"DevicesRepository::updateImeiIccidCarrier missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateImeiIccidCarrier result"),t}async getClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::getClientDeviceSetting with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei||!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getClientDeviceSetting missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(it).createQueryBuilder("clientDeviceSetting").where("clientDeviceSetting.imei = :imei",{imei:t.filters.imei}).andWhere("clientDeviceSetting.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getClientDeviceSetting",r)})(this.dataSource,e,this.logger);return this.logger.info(t,"DevicesRepository::getClientDeviceSetting result"),t}async getClientDeviceSettings(e){this.logger.trace(e,"DevicesRepository::getClientDeviceSettings started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getClientDeviceSettings missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(it).createQueryBuilder("clientDeviceSetting").where("clientDeviceSetting.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getMany()}),"DevicesRepository::getClientDeviceSettings",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getClientDeviceSettings result"),t}async createClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::createClientDeviceSetting started with params");const t=await(async(e,t,i)=>t?.imei&&t?.clientId?e.safeQuery2((async e=>{const i=e.getRepository(it),r={id:t.id,imei:t.imei,clientId:t.clientId,generateTrips:t.generateTrips??!0,movingPingFrequency:t.movingPingFrequency,stoppedPingFrequency:t.stoppedPingFrequency,fixedStatus:t.fixedStatus,stopThresholdMinutes:t.stopThresholdMinutes,offlineThresholdMinutes:t.offlineThresholdMinutes,movementThresholdSpeed:t.movementThresholdSpeed,externalBatteryInformation:t.externalBatteryInformation,reportingMode:t.reportingMode,starterInterruptInstalled:t.starterInterruptInstalled};return await i.save(r)}),"DevicesRepository::createClientDeviceSetting"):(i.warn({params:t},"DevicesRepository::createClientDeviceSetting missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createClientDeviceSetting result"),t}async updateClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::updateClientDeviceSetting started with params");const t=await(async(e,t,i)=>t?.filters?.imei&&t?.filters?.clientId&&(null!=t?.values?.generateTrips||t?.values?.movingPingFrequency||t?.values?.stoppedPingFrequency||t?.values?.fixedStatus||t?.values?.stopThresholdMinutes||t?.values?.offlineThresholdMinutes||t?.values?.movementThresholdSpeed||null!=t?.values?.externalBatteryInformation||t?.values?.reportingMode||null!=t?.values?.starterInterruptInstalled)?e.safeQuery2((async e=>{const i=e.getRepository(it).createQueryBuilder().update(it).set({generateTrips:t.values.generateTrips,movingPingFrequency:t.values.movingPingFrequency,stoppedPingFrequency:t.values.stoppedPingFrequency,fixedStatus:t.values.fixedStatus,stopThresholdMinutes:t.values.stopThresholdMinutes,offlineThresholdMinutes:t.values.offlineThresholdMinutes,movementThresholdSpeed:t.values.movementThresholdSpeed,externalBatteryInformation:t.values.externalBatteryInformation,reportingMode:t.values.reportingMode,starterInterruptInstalled:t.values.starterInterruptInstalled}).where("imei = :imei",{imei:t.filters.imei}).andWhere("clientId = :clientId",{clientId:t.filters.clientId});return(await i.execute()).affected>0}),"DevicesRepository::updateClientDeviceSetting"):(i.warn({params:t},"DevicesRepository::updateClientDeviceSetting missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateClientDeviceSetting result"),t}async getDeviceTypesModelsOrderedByDeviceCount(e){this.logger.trace(e,"DevicesRepository::getDeviceTypesOrderedByDeviceCount started with params");const t=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(se).createQueryBuilder("dt").leftJoin(le,"d","d.deviceTypeId = dt.id").select(["dt.id as id","dt.model as model","dt.protocol as protocol","dt.protocolMatch as protocolMatch"]).addSelect("COUNT(d.id)","deviceCount");return i&&r.setQueryRunner(i),t?.filters?.deviceStatus&&(r=r.where("d.status = :deviceStatus",{deviceStatus:t.filters.deviceStatus})),r=r.groupBy("dt.id").orderBy("deviceCount","DESC"),(await r.getRawMany()).map((e=>({...e,deviceCount:parseInt(e.deviceCount,10)})))}),"DevicesRepository::getDeviceTypesModelsOrderedByDeviceCount",i)})(this.dataSource,e);return this.logger.trace({result:t},"DevicesRepository::getDeviceTypesOrderedByDeviceCount result"),t}async getDeviceCustomConfigs(e){this.logger.trace(e,"DevicesRepository::getDeviceCustomConfig started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.imei&&!t?.filters?.po)return i.warn({params:t},"DevicesRepository::getDeviceCustomConfig missing required params"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(de).createQueryBuilder("deviceCustomConfiguration");return i&&r.setQueryRunner(i),t?.filters?.imei&&(r=r.orWhere("(LOWER(deviceCustomConfiguration.imei) = LOWER(:imei) AND deviceCustomConfiguration.clientId IS NULL AND (deviceCustomConfiguration.po IS NULL OR deviceCustomConfiguration.po = ''))",{imei:t.filters.imei})),t?.filters?.po&&(r=r.orWhere("(LOWER(deviceCustomConfiguration.po) = LOWER(:po) AND deviceCustomConfiguration.clientId IS NULL AND (deviceCustomConfiguration.imei IS NULL OR deviceCustomConfiguration.imei = ''))",{po:t.filters.po})),t?.filters?.clientId&&(r=r.orWhere("deviceCustomConfiguration.clientId = :clientId AND (deviceCustomConfiguration.po IS NULL OR deviceCustomConfiguration.po = '') AND (deviceCustomConfiguration.imei IS NULL OR deviceCustomConfiguration.imei = '')",{clientId:t.filters.clientId})),r=t?.filters?.deviceTypeId?r.andWhere("(deviceCustomConfiguration.deviceTypeId = :deviceTypeId OR deviceCustomConfiguration.deviceTypeId IS NULL)",{deviceTypeId:t.filters.deviceTypeId}):r.andWhere("deviceCustomConfiguration.deviceTypeId IS NULL"),r=r.orderBy("deviceCustomConfiguration.id"),await r.getMany()}),"DevicesRepository::getDeviceCustomConfig",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::getDeviceCustomConfig result"),t}async upsertDeviceCustomConfigs(e){this.logger.trace(e,"DevicesRepository::upsertDeviceCustomConfigs started with params");const t=await(async(e,t,i)=>t?.some((e=>null==e.id&&null==e.deviceTypeId))?(i.warn({params:t},"DevicesRepository::upsertDeviceCustomConfig missing required params"),!1):e.safeQuery2((async e=>{const i=e.getRepository(de),r=await i.upsert(t,{conflictPaths:["id"]});return r?.raw?.affectedRows>0}),"DevicesRepository::upsertDeviceCustomConfig"))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::upsertDeviceCustomConfigs result"),t}async createDeviceReplacement(e){this.logger.trace(e,"DevicesRepository::createDeviceReplacement started with params");const t=await(async(e,t,i)=>{if(!(t?.imeiOld&&t?.imeiNew&&t?.iccidNew&&t?.iccidOld&&t?.userId&&t?.clientId&&0!==t?.clientId))return i.warn({params:t},"DevicesRepository::createDeviceReplacement missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery2((async e=>{const i=e.getRepository(bt),a={id:t.id,imeiOld:t.imeiOld,imeiNew:t.imeiNew,iccidOld:t.iccidOld,iccidNew:t.iccidNew,userId:r,clientId:t.clientId,createAt:new Date};return await i.save(a)}),"DevicesRepository::createDeviceReplacement"):(i.warn({params:t},"DevicesRepository::createDeviceReplacement - user id should be a valid UUID"),null)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createDeviceReplacement result"),t}async getIccidStatus(e){this.logger.trace(e,"DevicesRepository::getIccidStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.iccid)return i.warn({params:t},"DevicesRepository::getIccidStatus missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(Ot).createQueryBuilder("iccidStatus").where("iccidStatus.iccid = :iccid",{iccid:t.filters.iccid});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getIccidStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getIccidStatus result"),t}async updateIccidStatus(e){this.logger.trace(e,"DevicesRepository::updateIccidStatus started with params");const t=await(async(e,t,i)=>t?.filters?.iccid&&(t?.values?.status||null!=t?.values?.processing||t?.values?.carrierFound)?e.safeQuery2((async e=>{const i=e.getRepository(Ot).createQueryBuilder("iccidStatus").update(Ot).set({status:t.values.status,processing:t.values.processing,carrierFound:t.values.carrierFound}).where("iccid = :iccid",{iccid:t.filters.iccid});return(await i.execute()).affected>0}),"DevicesRepository::updateIccidStatus"):(i.warn({params:t},"DevicesRepository::updateIccidStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateIccidStatus result"),t}async getCanceledDevicesWithActiveSimCards(e){this.logger.trace(e,"DevicesRepository::getCanceledDevicesWithActiveSimCards started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.lastAnalyzedDeviceId||!t?.pagingOptions?.limit)return i.warn({params:t},"DevicesRepository::getCanceledDevicesWithActiveSimCards missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(Yt).createQueryBuilder("serviceProvider");i&&r.setQueryRunner(i);const a=await r.getMany(),n=e.getRepository(le).createQueryBuilder("device").innerJoin(Ot,"iccidStatus","device.iccid = iccidStatus.iccid").innerJoin(xt,"imeiIccidCarrier","device.iccid = imeiIccidCarrier.iccid").where("device.status = :deviceStatus",{deviceStatus:"D"}).andWhere("device.id > :lastAnalyzedDeviceId",{lastAnalyzedDeviceId:t.filters.lastAnalyzedDeviceId}).andWhere("iccidStatus.status = :iccidStatus",{iccidStatus:"active"}).select(["device.imei as imei","device.iccid as iccid","device.clientId as clientId","imeiIccidCarrier.carrier as carrierId","device.id as deviceId"]).orderBy("device.id","ASC").limit(t.pagingOptions.limit);return i&&n.setQueryRunner(i),(await n.getRawMany()).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,carrier:a?.find((t=>t.id===e.carrierId))?.name||"Unknown Carrier",deviceId:e.deviceId})))}),"DevicesRepository::getCanceledDevicesWithActiveSimCards",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getCanceledDevicesWithActiveSimCards result"),t}async getCarrierStatusUpdatedBefore(e){this.logger.trace(e,"DevicesRepository::getCarrierStatusUpdatedBefore started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.beforeDate||!t?.pagingOptions?.limit)return i.warn({params:t},"DevicesRepository::getCarrierStatusUpdatedBefore missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(Ot).createQueryBuilder("iccidStatus").innerJoin(xt,"imeiIccidCarrier","iccidStatus.iccid = imeiIccidCarrier.iccid").where("iccidStatus.modifiedAt < :beforeDate",{beforeDate:t.filters.beforeDate}).andWhere("coalesce(iccidStatus.processing, false) <> :processing",{processing:!0}).andWhere("iccidStatus.status <> :status",{status:"not found in carrier"}).select(["imeiIccidCarrier.carrier as carrier","iccidStatus.iccid as iccid","iccidStatus.status as status","iccidStatus.processing as processing","iccidStatus.carrierFound as carrierFound","iccidStatus.modifiedAt as modifiedAt"]).orderBy("iccidStatus.modifiedAt","ASC").addOrderBy("iccidStatus.iccid","ASC").limit(t.pagingOptions.limit);return i&&r.setQueryRunner(i),(await r.getRawMany()).map((e=>({carrier:e.carrier,iccid:e.iccid,status:e.status,processing:null!=e.processing?1===e.processing:null,carrierFound:e.carrierFound,modifiedAt:e.modifiedAt})))}),"DevicesRepository::getCarrierStatusUpdatedBefore",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getCarrierStatusUpdatedBefore result"),t}async upsertIccidStatus(e){this.logger.trace(e,"DevicesRepository::upsertIccidStatus started with params");const t=await(async(e,t,i)=>t?.values.iccid&&(t?.options?.updateProcessing||t?.values?.status&&t?.values?.carrierFound)?e.safeQuery2((async e=>{const i=e.getRepository(Ot),r=null!=t.values.status?{iccid:t.values.iccid,status:t.values.status,modifiedAt:new Date,processing:!t.options?.updateProcessing&&void 0,carrierFound:t.values.carrierFound}:{iccid:t.values.iccid,status:void 0,modifiedAt:void 0,processing:!!t.options?.updateProcessing||void 0,carrierFound:t.values.carrierFound},a=await i.upsert(r,{conflictPaths:["iccid"]});return a?.raw?.affectedRows>0}),"DevicesRepository::upsertIccidStatus"):(i.warn({params:t},"DevicesRepository::upsertIccidStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::upsertIccidStatus result"),t}async getDeviceWithUsersInfo(e){this.logger.trace(e,"DevicesRepository::getDeviceWithUsersInfo started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::getDeviceWithUsersInfo missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(le).createQueryBuilder("device").innerJoin(xt,"iccidCarrier","device.imei = iccidCarrier.imei").innerJoin(Re,"user","device.clientId = user.clientId").innerJoin(Se,"userSecurityRole","user.id = userSecurityRole.userId").innerJoin(Ce,"securityRole","userSecurityRole.securityRoleId = securityRole.id").leftJoin(xe,"billing","device.imei = billing.imei").leftJoin(ui,"userActivationDevice","device.imei = userActivationDevice.imei and userActivationDevice.id = (\n select userActivationDevice.id from userActivationDevice where userActivationDevice.imei = :imei \n order by userActivationDevice.id desc limit 1)\n ",{imei:t.filters.imei.toLowerCase()}).leftJoin(St,"deviceStatus","device.imei = deviceStatus.imei").where("device.imei = :imei",{imei:t.filters.imei.toLowerCase()}).orderBy("user.createdAt","DESC").select(["user.firstName as firstName","user.lastName as lastName","user.userName as username","user.email as email","deviceStatus.created as latestPositionCreatedAt","deviceStatus.sendTime as latestPositionActualDate","CAST(deviceStatus.data->>'$.latitude' AS DECIMAL(10,6)) as latestPositionLatitude","CAST(deviceStatus.data->>'$.longitude' AS DECIMAL(10,6)) as latestPositionLongitude","CAST(deviceStatus.data->>'$.odoMileage' AS DECIMAL(10,2)) as latestPositionOdometer","CAST(deviceStatus.data->>'$.speed' AS DECIMAL(10,2)) as latestPositionSpeed","device.status as deviceStatus","device.name as deviceName","iccidCarrier.iccid as iccid","userActivationDevice.servicePlan as servicePlan","securityRole.name as roleName","billing.subscriptionId as subscriptionId"]);return i&&r.setQueryRunner(i),(await r.getRawMany()).map((e=>({...e,firstName:void 0,lastName:void 0,clientName:e.firstName?.length&&e.lastName?.length?`${e.firstName} ${e.lastName}`:e.firstName||e.lastName||""})))}),"DevicesRepository::getDeviceWithUsersInfo",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceWithUsersInfo result"),t}async createDeviceType(e){this.logger.trace(e,"DevicesRepository::createDeviceType started with params");const t=await(async(e,t,i)=>t?.brand&&t?.model&&t?.modelFamily&&t?.identifierType?e.safeQuery2((async e=>{const i=e.getRepository(se),r={...t};return await i.save(r)}),"DevicesRepository::createDeviceType"):(i.warn({params:t},"DevicesRepository::createDeviceType missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createDeviceType result"),t}async updateDeviceType(e){this.logger.trace(e,"DevicesRepository::updateDeviceType started with params");const t=await(async(e,t,i)=>t?.filters?.id?t?.values?.brand||t?.values?.model||t?.values?.modelFamily||t?.values?.identifierType||t?.values?.description||t?.values?.tags||t?.values?.url||t?.values?.name||t?.values?.pictureUrl||t?.values?.userManualUrl||t?.values?.notes||null!=t?.values?.supported||null!=t?.values?.activatable||null!=t?.values?.selfActivatable||t?.values?.port||t?.values?.protocolMatch||t?.values?.stage||t?.values?.landingPage||t?.values?.troubleshooting||t?.values?.protocol?e.safeQuery2((async e=>{const i=e.getRepository(se).createQueryBuilder("deviceType").update(se).set({...t.values}).where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"DevicesRepository::updateDeviceType"):(i.warn({params:t},"DevicesRepository::updateIccidStatus missing required parameters"),!1):(i.warn({params:t},"DevicesRepository::updateDeviceType missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateDeviceType result"),t}async getDevicesCountByStatus(e){this.logger.trace(e,"DevicesRepository::getDevicesCountByStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDevicesCountByStatus missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(le).createQueryBuilder("device").where("device.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.tagIdList?.length&&r.innerJoin(Nt,"entityTag","entityTag.entityId = device.id \n AND entityTag.entityType = 'Device'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),r.groupBy("device.status").select("device.status","status").addSelect("COUNT(device.status)","count"),i&&r.setQueryRunner(i),await r.getRawMany()}),"DevicesRepository::getDevicesCountByStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevicesCountByStatus result"),t}async getServiceProviderProduct(e){this.logger.trace(e,"DevicesRepository::getServiceProviderProduct started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"DevicesRepository::getServiceProviderProduct missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(Zt).createQueryBuilder("serviceProviderProduct").where("serviceProviderProduct.id = :id",{id:t.filters.id});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getServiceProviderProduct",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getServiceProviderProduct result"),t}async createImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::createImeiIccidCarrier started with params");const t=await(async(e,t,i)=>pa(t,Gi)?(i.warn({params:t},"DevicesRepository::createImeiIccidCarrier missing required parameters"),null):e.safeQuery2((async e=>e.getRepository(xt).save({...t,createdAt:new Date})),"DevicesRepository::updateImeiIccidCarrier"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createImeiIccidCarrier result"),t}async getDeviceChangesHistoryAssignedToValuesByClient(e){this.logger.trace(e,"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(vt).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId}).select("DISTINCT deviceChangesHistory.assignedTo");i&&r.setQueryRunner(i);const a=await r.getRawMany();return a?a.map((e=>e.assignedTo)):[]}),"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient result"),t}async getDeviceChangesHistory(e){this.logger.trace(e,"DevicesRepository::getDeviceChangesHistory started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDeviceChangesHistory missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(vt).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.imeis?.length&&r.andWhere("deviceChangesHistory.imei IN (:...imeis)",{imeis:t.filters.imeis}),i&&r.setQueryRunner(i),await r.getMany()}),"DevicesRepository::getDeviceChangesHistory",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceChangesHistory result"),t}async addDeviceChangesHistory(e){this.logger.trace(e,"DevicesRepository::addDeviceChangesHistory started with params");const t=await(async(e,t,i)=>pa(t,Ji)?(i.warn({params:t},"DevicesRepository::addDeviceChangesHistory missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(vt),r=i.createQueryBuilder("deviceChangesHistory");if("update"===t.action){const e=await r.where("deviceChangesHistory.clientId = :clientId AND deviceChangesHistory.imei = :imei AND deviceChangesHistory.endDate IS NULL",{clientId:t.clientId,imei:t.imei}).getOne();e&&(e.endDate=Ca(),await i.save(e))}const a={clientId:t.clientId,imei:t.imei,assignedTo:t.assignedTo,startDate:Ca()};return await i.save(a)}),"DevicesRepository::addDeviceChangesHistory"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::addDeviceChangesHistory result"),t}},EntityTagsRepository:class extends ta{async createEntityTag(e){this.logger.trace(e,"EntityTagsRepository::createEntityTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>pa(t,$i)?(i.warn({params:t},"EntityTagsRepository::createEntityTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Nt),r={...t,userId:t.userId?ra(t.userId):null,createdAt:Ca()};return await i.save(r)??null}),"EntityTagsRepository::createEntityTag error"))(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::createEntityTag result"),i}async bulkCreateEntityTag(e){this.logger.trace(e,"EntityTagsRepository::bulkCreateEntityTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await Ea(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::bulkCreateEntityTag result"),i}async deleteEntityTag(e){this.logger.trace(e,"EntityTagsRepository::deleteEntityTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>pa(t,Xi)?(i.warn({params:t},"EntityTagsRepository::deleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Nt);return(await i.createQueryBuilder().delete().where("tagId = :tagId",{tagId:t.tagId}).andWhere("entityId = :entityId",{entityId:t.entityId}).andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("entityType = :entityType",{entityType:t.entityType}).execute()).affected>0}),"EntityTagsRepository::deleteEntityTag"))(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::deleteEntityTag result"),i}async searchEntityTags(e){this.logger.trace(e,"EntityTagsRepository::searchEntityTags started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(pa(t,Yi))return i.warn({params:t},"EntityTagsRepository::searchEntityTags missing required parameters"),{entitiesTags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Nt),{filters:a,pagingOptions:n}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:a.clientId});i&&o.setQueryRunner(i),a.entityIds?.length&&(o=o.andWhere("entityId IN (:...entityIds)",{entityIds:a.entityIds})),a.tagIds?.length&&(o=o.andWhere("tagId IN (:...tagIds)",{tagIds:a.tagIds})),a.entityTypes?.length&&(o=o.andWhere("entityType IN (:...entityTypes)",{entityTypes:a.entityTypes}));const s=await o.getCount(),l=n?.pageSize??50;o.limit(l);const d=(n?.pageIndex??0)*l;return o.offset(d),{entitiesTags:await o.getMany(),totalCount:s}}),"EntityTagsRepository::searchEntityTags",r)})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::searchEntityTags result"),i}async bulkDeleteEntityTag(e){this.logger.trace(e,"EntityTagsRepository::bulkDeleteEntityTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await Pa(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::bulkDeleteEntityTag result"),i}async enforceEntityTagsByEntity(e){this.logger.trace(e,"EntityTagsRepository::enforceEntityTagsByEntity started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(pa(t,tr)||0===t.values.tagIds.length)return i.warn({params:t},"EntityTagsRepository::enforceEntityTagsByEntity failed due to missing filters/values or empty tagIds array"),{entitiesTags:[],totalCount:0};try{if(!await Pa(e,{clientId:t.filters.clientId,entityType:t.filters.entityType,deletedBy:t.values.enforcedBy,entityIds:[t.filters.entityId]},i))return i.warn({params:t},"EntityTagsRepository::enforceEntityTagsByEntity failed to delete existing tags"),{entitiesTags:[],totalCount:0};const r=t.values.tagIds.map((e=>({tagId:e,createdBy:t.values.enforcedBy,clientId:t.filters.clientId,entityType:t.filters.entityType,entityId:t.filters.entityId}))),a=await Ea(e,r,i);return i.trace(a,"EntityTagsRepository::enforceEntityTagsByEntity result"),{entitiesTags:a,totalCount:t.values.tagIds.length}}catch(e){return i.error({error:e},"EntityTagsRepository::enforceEntityTagsByEntity error"),{entitiesTags:[],totalCount:0}}})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::enforceEntityTagsByEntity result"),i}async deleteEntityTagById(e){this.logger.trace({id:e},"EntityTagsRepository::deleteEntityTagById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>t?e.safeQuery((async e=>{const i=e.getRepository(Nt);return(await i.delete(t)).affected>0}),"EntityTagsRepository::deleteEntityTagById"):(i.warn("EntityTagsRepository::deleteEntityTagById missing required id parameter"),!1))(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::deleteEntityTagById result"),i}async getEntityTagById(e){this.logger.trace({params:e},"EntityTagsRepository::getEntityTagById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(pa(t,ir))return i.warn("EntityTagsRepository::getEntityTagByEntityTagId missing required id parameter"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Nt).createQueryBuilder("entityTag").where("entityTag.id = :id",{id:t.filters.id});return i&&r.setQueryRunner(i),await r.getOne()}),"EntityTagsRepository::getEntityTagByEntityTagId",r)})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::getEntityTagById result"),i}},FeatureRepository:class extends ta{async createFeature(e){this.logger.trace(e,"FeatureRepository::createFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Ma)?(i.warn({params:t},"FeatureRepository::createFeature missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Ut),r={key:t.key,name:t.name,description:t.description,tags:t.tags};return await i.save(r)??null}),"FeatureRepository::createFeature error"))(t,e,this.logger);return this.logger.trace(i,"FeatureRepository::createFeature result"),i}async getFeatures(e){this.logger.trace(e,"FeatureRepository::getFeatures started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ut).createQueryBuilder("feature");i&&r.setQueryRunner(i),t?.filters?.keys?.length&&r.where("feature.key IN (:keyList)",{keyList:t.filters.keys}),t?.filters?.names?.length&&r.andWhere("feature.name IN (:nameList)",{nameList:t.filters.names});const a=await r.getMany();return a?.length?a:[]}),"FeatureRepository::getFeatures error",i)})(t,e);return this.logger.trace(i,"FeatureRepository::getFeatures result"),i}async upsertFeature(e){this.logger.trace(e,"FeatureRepository::upsertFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Ma)?(i.warn({params:t},"FeatureRepository::upsertFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Ut),r={key:t.key,name:t.name,description:t.description,tags:t.tags},a=await i.upsert(r,{conflictPaths:["key"]});return a?.raw?.affectedRows>0}),"FeatureRepository::upsertFeature"))(t,e,this.logger);return this.logger.trace({result:i},"FeatureRepository::upsertFeature result"),i}async deleteFeature(e){this.logger.trace(e,"FeatureRepository::deleteFeature started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.key?e.safeQuery((async e=>{const i=e.getRepository(Ut);return(await i.createQueryBuilder().delete().where("key = :key",{key:t.filters.key}).execute()).affected>0}),"FeatureRepository::deleteFeature"):(i.warn({params:t},"FeatureRepository::deleteFeature missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FeatureRepository::deleteFeature result"),i}},FirmwaresRepository:class extends ta{async getDeviceFirmwares(e){this.logger.trace("FirmwaresRepository::getDeviceFirmwares started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(At).createQueryBuilder("deviceTypeFirmware");return i&&r.setQueryRunner(i),t?.filters?.deviceTypeId&&(r=r.andWhere("deviceTypeFirmware.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),t?.filters?.firmwareId&&(r=r.andWhere("deviceTypeFirmware.id = :firmwareId",{firmwareId:t.filters.firmwareId})),t?.projectionOptions?.withDeviceType&&(r=r.leftJoinAndSelect("deviceTypeFirmware.deviceType","deviceType")),r=r.orderBy("deviceTypeFirmware.releaseDate","DESC"),await r.getMany()}),"FirmwaresRepository::getDeviceFirmwares",i)})(t,e);return this.logger.trace(i,"FirmwaresRepository::getDeviceFirmwares result"),i}async createDeviceFirmware(e){this.logger.trace("FirmwaresRepository::createDeviceFirmware started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId&&t?.firmwareCode&&t?.firmwareVersion&&t?.firmwareUrl&&t?.releaseDate&&t?.description&&null!=t?.enabled&&t?.upgradeType?await e.safeQuery((async e=>{const i=e.getRepository(At),r={id:t.id,deviceTypeId:t.deviceTypeId,description:t.description,enabled:t.enabled,firmwareCode:t.firmwareCode,firmwareVersion:t.firmwareVersion,firmwareUrl:t.firmwareUrl,releaseDate:t.releaseDate,sourceFirmwareVersion:t.sourceFirmwareVersion,upgradeType:t.upgradeType,stage:t.stage,postUpgradeConfig:t.postUpgradeConfig,parentId:t.parentId,maxDeployPercentage:t.maxDeployPercentage,qmsRate:t.qmsRate,pendingTimeout:t.pendingTimeout,forceSMS:t.forceSMS};return await i.save(r)}),"FirmwaresRepository::createDeviceFirmware"):(i.warn({params:t},"FirmwaresRepository::createDeviceFirmware incorrect params"),null))(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::createDeviceFirmware result"),i}async createFirmwareUpgradeTask(e){this.logger.trace("FirmwaresRepository::createFirmwareUpgradeTask started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(e=>!e?.id||!e?.deviceTypeFirmwareId||!e?.clientId||e.clientId<=0||!e.imei||!e?.status)(t)?(i.warn({params:t},"FirmwaresRepository::createFirmwareUpgradeTask incorrect params"),null):await e.safeQuery((async e=>{const i=e.getRepository(Pt),r=new Date,a={id:ra(t.id),deviceTypeFirmwareId:t.deviceTypeFirmwareId,clientId:t.clientId,imei:t.imei,status:t.status,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,createdAt:t.createdAt??r,modifiedAt:t.modifiedAt??r,preConfig:t.preConfig,postConfig:t.postConfig,commandsTaskId:t.commandsTaskId,postUpgradeCompleted:t.postUpgradeCompleted,fwCompletedOn:null};return await i.save(a)}),"FirmwaresRepository::createFirmwareUpgradeTask"))(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::createFirmwareUpgradeTask result"),i}async getFirmwareUpgradeTasks(e){this.logger.trace("FirmwaresRepository::getFirmwareUpgradeTasks started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Oa(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::getFirmwareUpgradeTasks result"),i}async getFirmwareUpgradeTasksCount(e){this.logger.trace("FirmwaresRepository::getFirmwareUpgradeTasksCount started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await xa(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::getFirmwareUpgradeTasksCount result"),i}async updateFirmwareUpgradeTasks(e){this.logger.trace("FirmwaresRepository::updateFirmwareUpgradeTasks started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&(t?.behaviorName||t?.behaviorParams||t?.status||t?.preConfig||t?.postConfig||t?.commandsTaskId||null!=t?.postUpgradeCompleted||t?.fwCompletedOn)?await e.safeQuery((async e=>{const i=e.getRepository(Pt),r=new Date,a=i.createQueryBuilder("firmwareUpgradeTask").update(Pt).set({modifiedAt:r,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,preConfig:t.preConfig,postConfig:t.postConfig,commandsTaskId:t.commandsTaskId,postUpgradeCompleted:t.postUpgradeCompleted,fwCompletedOn:t.fwCompletedOn}).where("id = :id",{id:ra(t.id)});return(await a.execute()).affected>0}),"FirmwaresRepository::updateFirmwareUpgradeTasks"):(i.warn({params:t},"FirmwaresRepository::updateFirmwareUpgradeTasks incorrect params"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::updateFirmwareUpgradeTasks result"),i}async updateDeviceFirmware(e){this.logger.trace("FirmwaresRepository::updateDeviceFirmware started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deviceTypeId&&t?.firmwareCode&&t?.firmwareVersion&&t?.firmwareUrl&&t?.releaseDate&&t?.description&&null!=t?.enabled&&t?.upgradeType?await e.safeQuery((async e=>{const i=e.getRepository(At);return(await i.createQueryBuilder().update(At).set({deviceTypeId:t.deviceTypeId,description:t.description,enabled:t.enabled,firmwareCode:t.firmwareCode,firmwareVersion:t.firmwareVersion,firmwareUrl:t.firmwareUrl,releaseDate:t.releaseDate,sourceFirmwareVersion:t.sourceFirmwareVersion,upgradeType:t.upgradeType,stage:t.stage,postUpgradeConfig:t.postUpgradeConfig,parentId:t.parentId,maxDeployPercentage:t.maxDeployPercentage,qmsRate:t.qmsRate,pendingTimeout:t.pendingTimeout,forceSMS:t.forceSMS}).where("id = :id",{id:t.id}).execute()).affected>0}),"FirmwaresRepository::updateDeviceFirmware"):(i.warn({params:t},"FirmwaresRepository::updateDeviceFirmware incorrect params"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::updateDeviceFirmware result"),i}async createFirmwareAutoUpgradeBlacklist(e){this.logger.trace("FirmwaresRepository::createFirmwareAutoUpgradeBlacklist started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?await e.safeQuery((async e=>{const i=e.getRepository(Et),r={deviceTypeId:t.deviceTypeId,clientId:t.clientId};return await i.save(r)}),"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist"):(i.warn({params:t},"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist incorrect params"),null))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist result"),i}async getFirmwareAutoUpgradeBlacklist(e){this.logger.trace("FirmwaresRepository::getFirmwareAutoUpgradeBlacklist started");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if((e=>!e?.filters?.clientId)(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist incorrect params"),null;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Et).createQueryBuilder("firmwareAutoUpgradeBlacklist");return i&&r.setQueryRunner(i),r=r.andWhere("firmwareAutoUpgradeBlacklist.clientId = :clientId",{clientId:t.filters.clientId}),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist",r)})(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist result"),i}},LatestUserAppInfoRepository:class extends ta{async upsertLatestUserAppInfo(e){this.logger.trace(e,"LatestUserAppInfoRepository::upsertLatestUserAppInfo started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t.deviceOs||!t.appVersion)return i.warn({params:t},"LatestUserAppInfoRepository::upsertLatestUserAppInfo - missing required parameters"),!1;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(qt),a=new Date,n={id:t.id,userId:r,deviceOs:t.deviceOs,appVersion:t.appVersion,createdAt:a},o=await i.upsert(n,{conflictPaths:["userId"]});return o?.raw?.affectedRows>0}),"LatestUserAppInfoRepository::upsertLatestUserAppInfo"):(i.warn({params:t},"LatestUserAppInfoRepository::upsertLatestUserAppInfo - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"LatestUserAppInfoRepository::upsertLatestUserAppInfo result"),i}async getLatestUserAppInfo(e){this.logger.trace(e,"LatestUserAppInfoRepository::getLatestUserAppInfo started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"LatestUserAppInfoRepository::getLatestUserAppInfo - missing required parameters"),null;const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"LatestUserAppInfoRepository::getLatestUserAppInfo - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{const i=e.getRepository(qt).createQueryBuilder("latestUserAppInfo");return t&&i.setQueryRunner(t),await i.where("latestUserAppInfo.userId = :userId",{userId:r}).getOne()}),"LatestUserAppInfoRepository::upsertLatestUserAppInfo",a)})(t,e,this.logger);return this.logger.trace({result:i},"LatestUserAppInfoRepository::getLatestUserAppInfo result"),i}},NotificationRecipientsRepository:class extends ta{async createNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::createNotificationRecipient started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.clientId&&t?.userId&&t?.notificationType&&t?.recipient&&null!=t?.isEnabled&&null!=t?.isUserProfile))return i.warn({params:t},"NotificationRecipientsRepository::createNotificationRecipient - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(ve),a=new Date,n={id:t.id,userId:r,clientId:t.clientId,notificationType:t.notificationType,recipient:t.recipient,isEnabled:t.isEnabled,isUserProfile:t.isUserProfile,unsubscribed:t.unsubscribed,unsubscribedInfo:t.unsubscribedInfo,dataSourceTypeId:t.dataSourceTypeId,createdAt:a,modifiedAt:a,userAlertConfigurationId:t.userAlertConfigurationId};return await i.save(n)}),"NotificationRecipientsRepository::createNotificationRecipient"):(i.warn({params:t},"NotificationRecipientsRepository::createNotificationRecipient - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"NotificationRecipientsRepository::createNotificationRecipient result"),i}async getNotificationRecipients(e){this.logger.trace(e,"NotificationRecipientsRepository::getNotificationRecipients started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - missing required parameters"),[];const r=ra(t?.filters?.userId);if(null!=t?.filters?.userId&&null==r)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - userId should be a valid uuid"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(ve).createQueryBuilder("notificationRecipient");return i&&a.setQueryRunner(i),a=a.where("notificationRecipient.clientId = :clientId",{clientId:t.filters.clientId}),null!=r&&(a=a.andWhere("notificationRecipient.userId = :userId",{userId:r})),t?.projectionOptions?.withUserAlertConfiguration&&(a=a.leftJoinAndSelect("notificationRecipient.userAlertConfiguration","userAlertConfiguration")),await a.getMany()}),"NotificationRecipientsRepository::getNotificationRecipients",a)})(t,e,this.logger);return this.logger.trace(i,"NotificationRecipientsRepository::getNotificationRecipients result"),i}async updateNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::updateNotificationRecipient started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.notificationType||t?.values?.recipient||null!=t?.values?.isEnabled||null!=t?.values?.isUserProfile||null!=t?.values?.unsubscribed||null!=t?.values?.unsubscribedInfo)?e.safeQuery((async e=>{const i=e.getRepository(ve),r=new Date;let a=i.createQueryBuilder().update(ve).set({notificationType:t?.values?.notificationType,recipient:t?.values?.recipient,isEnabled:t?.values?.isEnabled,isUserProfile:t?.values?.isUserProfile,unsubscribed:t?.values?.unsubscribed,unsubscribedInfo:t?.values?.unsubscribedInfo,modifiedAt:r});return a=a.where("id = :id",{id:t?.filters?.id}),(await a.execute()).affected>0}),"NotificationRecipientsRepository::updateNotificationRecipient"):(i.warn({params:t},"NotificationRecipientsRepository::updateNotificationRecipient - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateNotificationRecipient result"),i}async updateUsersNotificationsUnsuscribedStatus(e){this.logger.trace(e,"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.userPhone&&t?.filters?.userCountryCode?null==t?.values?.unsubscribed?(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ve),r=new Date;return(await i.query("UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '');",[t.values.unsubscribed,t.values.unsubscribedInfo,r,N.Phone,t.filters.userPhone,t.filters.userCountryCode])).affectedRows>0}),"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus"):(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus result"),i}async updateUsersNotificationsUnsubscribedInfoStatus(e){this.logger.trace(e,"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>!t?.filters?.recipient||t?.filters?.notificationType==N.Phone&&!t?.filters?.countryCode||null==t?.values?.unsubscribed||null==t?.values.unsubscribedInfo?(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),null):e.safeQuery((async e=>{const r=e.getRepository(ve),a=new Date;let n,o,s,l;switch(t?.filters?.notificationType){case N.Phone:o="SELECT \n nr.userId\n FROM notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '');",l=[N.Phone,t.filters.recipient,t.filters.countryCode],n="UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '')\n ;",s=[t.values.unsubscribed,t.values.unsubscribedInfo,a,N.Phone,t.filters.recipient,t.filters.countryCode];break;case N.Email:o="SELECT nr.userId\n FROM notificationRecipient nr \n WHERE nr.notificationType = ?\n AND nr.recipient = ?\n UNION\n SELECT u.id\n FROM user u\n WHERE u.email = ?;",l=[N.Email,t.filters.recipient,t.filters.recipient],n="UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (nr.recipient = ?\n OR nr.userId IN (SELECT u.id FROM user u WHERE u.email = ?))\n ;",s=[t.values.unsubscribed,t.values.unsubscribedInfo,a,N.Email,t.filters.recipient,t.filters.recipient];break;default:return i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - NotificationRecipientType not implemented"),null}const d=await r.query(o,l);return console.log(d),d.length?(await r.query(n,s),d.map((e=>aa(e.userId)))):null}),"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus"))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus result"),i}async deleteNotificationRecipients(e){this.logger.trace(e,"NotificationRecipientsRepository::deleteNotificationRecipients started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.userId&&!t?.filters?.clientAlertConfigurationId)return i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipients - missing required parameters"),!1;const r=ra(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipients - userId is not a valid uuid"),!1):e.safeQuery((async e=>{let i=e.getRepository(ve).createQueryBuilder().delete();return t?.filters?.id&&(i=i.andWhere("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(i=i.andWhere("userId = :userId",{userId:r})),t?.filters?.clientAlertConfigurationId&&(i=i.andWhere("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t?.filters?.clientAlertConfigurationId})),(await i.execute()).affected>0}),"NotificationRecipientsRepository::deleteNotificationRecipients")})(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::deleteNotificationRecipients result"),i}async deleteNotificationRecipientsByEmailOrPhone(e){this.logger.trace(e,"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.notificationType&&t?.filters?.recipient?"email"===t?.filters?.recipient.toLowerCase()||"phone"===t?.filters?.recipient.toLowerCase()?(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone - recipient should be a valid email or phone"),!1):e.safeQuery((async e=>{const i=e.getRepository(ve).createQueryBuilder().delete().where("clientId = :clientId",{clientId:t?.filters?.clientId}).andWhere("notificationType = :notificationType",{notificationType:t?.filters?.notificationType}).andWhere("recipient = :recipient",{recipient:t?.filters?.recipient});return(await i.execute()).affected>0}),"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone"):(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone result"),i}},PositionRepository:class extends ta{async createPosition(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.messageId&&t?.actualDate&&t?.clientId&&t?.imei))return null;try{await e.connect();const r=e.getRepository(Ht),a=new Date,n={id:t.id,imei:t.imei,lat:t.lat,lon:t.lon,actualDate:t.actualDate,speed:t.speed,odometer:t.odometer,createdAt:t.createdAt??a,messageId:ra(t.messageId),batteryPercentage:t.batteryPercentage,clientId:t.clientId,address:t.address,sendTime:t.sendTime,gpsUtcTime:t.gpsUtcTime,externalBatteryPercentage:t.externalBatteryPercentage,externalPowerVoltage:t.externalPowerVoltage,azimuth:t.azimuth,motionDetected:t.motionDetected,deleted:!1},o=await r.save(n);return o?(await ka(e,o,i),{...o,id:Number(o.id)}):null}catch(e){throw i.error(e,"PositionsRepository::createPosition error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::insertPositions result"),i}async upsertPositions(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const r=e.getRepository(Ht),a=[];t.forEach((e=>{if(!(e?.messageId&&e?.actualDate&&e?.clientId&&e?.imei))return null;const t=new Date,i={id:e.id,imei:e.imei,lat:e.lat,lon:e.lon,actualDate:e.actualDate,speed:e.speed,odometer:e.odometer,createdAt:e.createdAt??t,messageId:ra(e.messageId),batteryPercentage:e.batteryPercentage,clientId:e.clientId,address:e.address,sendTime:e.sendTime,gpsUtcTime:e.gpsUtcTime,externalBatteryPercentage:e.externalBatteryPercentage,externalPowerVoltage:e.externalPowerVoltage,azimuth:e.azimuth,motionDetected:e.motionDetected,deleted:!1};a.push(i)})),await r.upsert(a,{conflictPaths:["messageId"]});const n=await r.createQueryBuilder("p").where("p.messageId IN (:messageIds)",{messageIds:a.map((e=>e.messageId))}).orderBy("p.id","ASC").getMany();for(const t of n)await ka(e,t,i);return n?.map((e=>({...e,id:Number(e.id)})))??[]}catch(e){throw i.error(e,"PositionsRepository::upsertPositions error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::insertPositions result"),i}async getPositionsByImei(e){this.logger.trace(e,"PositionsRepository::this.getPositionsByImei started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository(Ht),a=await i.createQueryBuilder("position").setQueryRunner(r).where("position.imei = :imei",{imei:t.filters.imei}).andWhere("position.deleted = 0").getMany();return a?.map((e=>({...e,id:Number(e.id)})))??[]}catch(e){throw i.error({error:e},"PositionsRepository::getPositionsByImei error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::getPositionsByImei result"),i}async getPositionsReportByClient(e){this.logger.trace(e,"PositionsRepository::getPositionsReportByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();let i=e.getRepository(Ht).createQueryBuilder("p").setQueryRunner(r).where("p.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("p.deleted = 0");t.filters.imeis&&(i=i.andWhere("p.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.actualDateFrom&&(i=i.andWhere("p.actualDate >= :actualDateFrom",{actualDateFrom:t.filters.actualDateFrom})),t.filters.actualDateTo&&(i=i.andWhere("p.actualDate <= :actualDateTo",{actualDateTo:t.filters.actualDateTo})),t.filters.speedMin&&(i=i.andWhere("p.speed >= :speedMin",{speedMin:t.filters.speedMin})),t.filters.speedMax&&(i=i.andWhere("p.speed <= :speedMax",{speedMax:t.filters.speedMax})),t.filters.odometerMin&&(i=i.andWhere("p.odometer >= :odometerMin",{odometerMin:t.filters.odometerMin})),t.filters.odometerMax&&(i=i.andWhere("p.odometer <= :odometerMax",{odometerMax:t.filters.odometerMax}));const a=i.clone().select("COUNT(p.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixPositionClientId_Imei_ActualDate"),a.useIndex("ixPositionClientId_Imei_ActualDate")):(i.useIndex("ixPositionClientId_ActualDate"),a.useIndex("ixPositionClientId_ActualDate")),i.innerJoin(`(${a.getQuery()})`,"sub"),t.sortOptions?.sortField&&i.orderBy(t.sortOptions.sortField,t.sortOptions.sortOrder),(await i.select(["p.imei as imei","p.createdAt as createdAt","p.actualDate as actualDate","p.lat as lat","p.lon as lon","p.messageId as messageId","p.sendTime as sendTime","p.address as address","p.speed as speed","p.odometer as odometer","p.batteryPercentage as batteryPercentage","p.externalPowerVoltage as externalPowerVoltage","p.externalBatteryPercentage as externalBatteryPercentage","p.azimuth as azimuth","sub.totalCount as totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()).map(La)}catch(e){throw i.error({error:e},"PositionsRepository::GetPositionsReportByClientId error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::getPositionsReportByClientId result"),i}async getLatestPositionByImei(e){this.logger.trace(e,"PositionsRepository::this.getLatestPositionByImei started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return null;const r=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository(Qt),a=await i.createQueryBuilder("latestPosition").setQueryRunner(r).where("latestPosition.imei = :imei",{imei:t.filters.imei}).getOne();return a?{...a,positionId:Number(a.positionId)}:null}catch(e){throw i.error({error:e},"PositionsRepository::getLatestPositionsByImei error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::getLatestPositionByImei result"),i}async getBatteryReportForDevice(e){this.logger.trace(e,"PositionsRepository::getBatteryReportForDevice started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId||!t.filters.imei)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();let i=e.getRepository(Ht).createQueryBuilder("p").setQueryRunner(r).select("DATE(p.actualDate)","actualDate").addSelect("MAX(p.batteryPercentage)","batteryPercentage").where("p.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("p.imei = :imei",{imei:t.filters.imei}).andWhere("p.deleted = 0");t.filters.startDate&&(i=i.andWhere("p.actualDate >= :startDate",{startDate:t.filters.startDate})),t.filters.endDate&&(i=i.andWhere("p.actualDate <= :endDate",{endDate:t.filters.endDate}));const a=t?.pagingOptions?.pageSize??100,n=t?.pagingOptions?.pageIndex??1;return i=i.groupBy("DATE(p.actualDate)").orderBy("DATE(p.actualDate)","DESC").limit(a).offset(a*(n-1)),await i.getRawMany()}catch(e){throw i.error({error:e},"PositionsRepository::GetPositionsReportByClientId error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::getLatestPositionByImei result"),i}},PromotionRepository:class extends ta{async createPromotion(e){this.logger.trace(e,"PromotionRepository::this.createPromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Fa)||Ka(t,i)?(i.warn({params:t},"PromotionRepository::createPromotion missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Y),r={bannerText:t.bannerText,description:t.description,discount:t.discount,discountBillingCycles:t.discountBillingCycles,endDate:t.endDate,freeServiceMonths:t.freeServiceMonths,name:t.name,startDate:t.startDate,status:t.status,trackerText:t.trackerText,type:t.type};return await i.save(r)??null}),"PromotionRepository::createPromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createPromotion result"),i}async updatePromotion(e){this.logger.trace(e,"PromotionRepository::this.updatePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Qa)||ga(t,qa)||Ka(t,i)?(i.warn({params:t},"PromotionRepository::updatePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Y),{filters:r,values:a}=t;return(await i.createQueryBuilder().update(Y).set({bannerText:a.bannerText,description:a.description,discount:a.discount,discountBillingCycles:a.discountBillingCycles,endDate:a.endDate,freeServiceMonths:a.freeServiceMonths,name:a.name,startDate:a.startDate,status:a.status,trackerText:a.trackerText,type:a.type}).where("id = :id",{id:r.id}).execute()).affected>0}),"PromotionRepository::updatePromotion error"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::updatePromotion result"),i}async getPromotions(e){this.logger.trace({params:e},"PromotionRepository::getPromotions started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,Wa))return i.warn({params:t},"PromotionRepository::getPromotions missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Y).createQueryBuilder("promotion");return i&&r.setQueryRunner(i),t.filters.id&&r.andWhere("promotion.id = :id",{id:t.filters.id}),t.filters.status&&r.andWhere("promotion.status = :status",{status:t.filters.status}),t.filters.onlyPromotionsWithinDateRange&&r.andWhere("NOW() BETWEEN promotion.startDate AND promotion.endDate"),(t.projectionOptions?.withMarketplacePromotions||t.filters.marketplaceId)&&(r.leftJoinAndMapMany("promotion.marketplacePromotions",X,"marketplacePromotion","marketplacePromotion.promotionId = promotion.id"),t.filters.marketplaceId&&r.andWhere("marketplacePromotion.marketplaceId = :marketplaceId",{marketplaceId:t.filters.marketplaceId})),(t.projectionOptions?.withAsinPromotions||t.filters.asin)&&(r.leftJoinAndMapMany("promotion.asinPromotions",Z,"asinPromotion","asinPromotion.promotionId = promotion.id"),t.filters.asin&&r.andWhere("asinPromotion.asin = :asin",{asin:t.filters.asin})),(t.projectionOptions?.withDevicePromotions||t.filters.imei)&&(r.leftJoinAndMapMany("promotion.devicePromotions",K,"devicePromotion","devicePromotion.promotionId = promotion.id"),t.filters.imei&&r.andWhere("devicePromotion.imei = :imei",{imei:t.filters.imei})),(t.projectionOptions?.withDeviceTypePromotions||t.filters.deviceTypeId)&&(r.leftJoinAndMapMany("promotion.deviceTypePromotions",$,"deviceTypePromotion","deviceTypePromotion.promotionId = promotion.id"),t.filters.deviceTypeId&&r.andWhere("deviceTypePromotion.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),await r.orderBy("discount","DESC").getMany()??[]}),"PromotionRepository::getPromotions",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getPromotions result"),i}async bulkInsertMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.createMarketplacePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ma(t.items,_a)?(i.warn({params:t},"PromotionRepository::createMarketplacePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(X);return await i.save(t.items)??[]}),"PromotionRepository::createMarketplacePromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createMarketplacePromotion result"),i}async bulkInsertDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.createDeviceTypePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ma(t.items,ja)?(i.warn({params:t},"PromotionRepository::createDeviceTypePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository($);return await i.save(t.items)??[]}),"PromotionRepository::createDeviceTypePromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createDeviceTypePromotion result"),i}async deleteMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.deleteMarketplacePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,za)?(i.warn({params:t},"PromotionRepository::deleteMarketplacePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(X).createQueryBuilder().delete();return t.promotionId&&i.where("promotionId = :promotionId",{promotionId:t.promotionId}),t.marketplaceId&&i.andWhere("marketplaceId = :marketplaceId",{marketplaceId:t.marketplaceId}),(await i.execute()).affected>0}),"PromotionRepository::deleteMarketplacePromotion"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::deleteMarketplacePromotion result"),i}async deleteDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.deleteDeviceTypePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Va)?(i.warn({params:t},"PromotionRepository::deleteDeviceTypePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository($).createQueryBuilder().delete();return t.promotionId&&i.where("promotionId = :promotionId",{promotionId:t.promotionId}),t.deviceTypeId&&i.andWhere("deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}),(await i.execute()).affected>0}),"PromotionRepository::deleteDeviceTypePromotion"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::deleteDeviceTypePromotion result"),i}async getDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.getDeviceTypePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,Ga))return i.warn({params:t},"PromotionRepository::getDeviceTypePromotion missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository($).createQueryBuilder("deviceTypePromotion");return i&&r.setQueryRunner(i),await r.where("deviceTypePromotion.promotionId = :promotionId",{promotionId:t.filters.promotionId}).andWhere("deviceTypePromotion.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId}).getOne()??null}),"PromotionRepository::getDeviceTypePromotion",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getDeviceTypePromotion result"),i}async getMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.getMarketplacePromotion started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,Ja))return i.warn({params:t},"PromotionRepository::getMarketplacePromotion missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(X).createQueryBuilder("marketplacePromotion");return i&&r.setQueryRunner(i),await r.where("marketplacePromotion.promotionId = :promotionId",{promotionId:t.filters.promotionId}).andWhere("marketplacePromotion.marketplaceId = :marketplaceId",{marketplaceId:t.filters.marketplaceId}).getOne()??null}),"PromotionRepository::getMarketplacePromotion",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getMarketplacePromotion result"),i}async createPromotionHistory(e){this.logger.trace(e,"PromotionRepository.createPromotionHistory started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Ha)?(i.warn({params:t},"PromotionRepository::createPromotionHistory missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Kt),r={...t};return await i.save(r)??null}),"PromotionRepository::createPromotionHistory error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createPromotionHistory result"),i}},SecurityRepository:class extends ia{async getAllRoles(){this.logger.trace("SecurityRepository::getAllRoles started");const e=await(async e=>e.safeQuery3(Ce,"securityRole",(async e=>e.select().getMany())))(this.dataSource);return this.logger.trace(e,"SecurityRepository::getAllRoles result"),e}async getUserRoles(e){this.logger.trace(e,"SecurityRepository::getUserRoles started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(Se,"userSecurityRole",(e=>e.select().where("userId = :userId",{userId:ra(t.filters.userId)}).getMany()),{tag:"SecurityRepository::getUserRoles",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::getUserRoles - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::getUserRoles result"),t}async getUserRolesByClientId(e){this.logger.trace(e,"SecurityRepository::getUserRolesByClientId started with params");const t=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery3(Se,"userSecurityRole",(e=>{const i=e.select().where("clientId = :clientId",{clientId:t.filters.clientId});return t.filters.role&&i.andWhere("securityRoleId = :securityRoleId",{securityRoleId:t.filters.role}),i.getMany()}),{tag:"SecurityRepository::getUserRolesByClientId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::getUserRolesByClientId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::getUserRolesByClientId result"),t}async userIsInRole(e){this.logger.trace(e,"SecurityRepository::userIsInRole started with params");const t=await(async(e,t,i)=>t?.filters?.userId?null!==await e.safeQuery3(Se,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:ra(t.filters.userId)}).andWhere("securityRoleId = :securityRoleId",{securityRoleId:t.filters.role}).getOne()),{tag:"SecurityRepository::userIsInRole",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::userIsInRole - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::userIsInRole result"),t}async userIsAdminOrOwner(e){this.logger.trace(e,"SecurityRepository::userIsAdminOrOwner started with params");const t=await(async(e,t,i)=>t?.filters?.userId?null!==await e.safeQuery3(Se,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:ra(t.filters.userId)}).andWhere("securityRoleId IN (:...roles)",{roles:[v.Admin,v.Owner]}).getOne()),{tag:"SecurityRepository::userIsAdminOrOwner",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::userIsAdminOrOwner - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::userIsAdminOrOwner result"),t}async createUserRole(e){this.logger.trace(e,"SecurityRepository::createUserRole started with params");const t=await(async(e,t,i)=>t?.userId?e.safeQuery((async e=>{const i=e.getRepository(Se),r=await i.findOne({where:{userId:ra(t.userId)}});if(!r){const e={userId:ra(t.userId),clientId:t.clientId,securityRoleId:t.roleId,devicesAccess:t.devicesAccess,boundariesAccess:t.boundariesAccess,minAccessDate:t.minAccessDate};return await i.save(e)}if(r.clientId===t.clientId&&r.securityRoleId===t.roleId)return r;throw new Error("User role cannot be created because another role already exists")}),"SecurityRepository::createUserRole"):(i.warn({params:t},"SecurityRepository::createUserRole - missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::createUserRole result"),t}async updateUserRole(e){this.logger.trace(e,"SecurityRepository::updateUserRole started with params");const t=await(async(e,t,i)=>{if(ga(t,mr))return i.warn({params:t},"SecurityRepository::updateUserRole - missing required parameters"),!1;const r=ra(t.filters.userId);return(await e.safeQuery3(Se,"userSecurityRole",(async e=>{const i=e.update().where("userId = :userId",{userId:r}).andWhere("securityRoleId <> :roleId",{roleId:t.values.roleId}),a={};return t.values.roleId&&(a.securityRoleId=t.values.roleId),t.values.devicesAccess&&(a.devicesAccess=t.values.devicesAccess),t.values.boundariesAccess&&(a.boundariesAccess=t.values.boundariesAccess),t.values.minAccessDate&&(a.minAccessDate=t.values.minAccessDate),i.set(a).execute()}),{tag:"SecurityRepository::updateUserRole",replicationMode:"master"})).affected>0})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::updateUserRole result"),t}async removeUserRoles(e){this.logger.trace(e,"SecurityRepository::removeUserRoles started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery((async e=>{const i=e.getRepository(Se),r=await i.find({where:{userId:ra(t.filters.userId)}});return!r.length||(await i.remove(r),!0)}),"SecurityRepository::removeUserRoles"):(i.warn({params:t},"SecurityRepository::removeUserRoles - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::removeUserRoles result"),t}async bulkCreateUserAuthorizedDevices(e,t={batchSize:100,useUpsert:!1}){this.logger.trace(e,"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices started with params");const i=await(async(e,t,i,r={batchSize:100,useUpsert:!1})=>ma(t,gr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices - missing required parameters"),!1):e.safeQuery2((async e=>{const i=e.getRepository(hi),a=$a(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:ra(e.userId),imei:e.imei})));let n=0;for(const e of a)if(e.length>0){let t=0;t=r.useUpsert?(await i.upsert(e,["clientId","userId","imei"]))?.identifiers?.length??0:(await i.save(e))?.length??0,n+=t}return n===t.length}),"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices"))(this.dataSource,e,this.logger,t);return this.logger.trace({result:i},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices result"),i}async getAuthorizedDevicesByUserId(e){this.logger.trace(e,"UserAuthorizedRepository::getAuthorizedDevicesByUserId started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(hi,"uad",(e=>{const i=e.select().where("uad.userId = :userId",{userId:ra(t.filters.userId)});return t.filters.securityGroupId&&i.andWhere("exists ( \n select 1 from device d \n\t inner join entityTag et on et.entityId = d.id and et.entityType = 'Device'\n\t inner join tag t on t.id = et.tagId and JSON_EXTRACT(t.metadata, '$.isSecurityGroup') = true \n\t where d.imei = uad.imei and t.id = :securityGroupId \n )",{securityGroupId:t.filters.securityGroupId}),i.getMany()}),{tag:"UserAuthorizedRepository::getAuthorizedDevicesByUserId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"UserAuthorizedRepository::getAuthorizedDevicesByUserId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"UserAuthorizedRepository::getAuthorizedDevicesByUserId result"),t}async bulkCreateUserAuthorizedBoundaries(e,t={batchSize:100,useUpsert:!1}){this.logger.trace(e,"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries started with params");const i=await(async(e,t,i,r={batchSize:100,useUpsert:!1})=>ma(t,yr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries - missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(yi),a=$a(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:ra(e.userId),boundaryId:Number(e.boundaryId)})));let n=0;for(const e of a)if(e.length>0){let t=0;t=r.useUpsert?(await i.upsert(e,["clientId","userId","boundaryId"]))?.identifiers?.length??0:(await i.save(e))?.length??0,n+=t}return n===t.length}),"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries"))(this.dataSource,e,this.logger,t);return this.logger.trace({result:i},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries result"),i}async getAuthorizedBoundariesByUserId(e){this.logger.trace(e,"UserAuthorizedRepository::getAuthorizedBoundariesByUserId started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(yi,"uab",(e=>{const i=e.select().where("uab.userId = :userId",{userId:ra(t.filters.userId)});return t.filters.securityGroupId&&i.andWhere("exists ( \n select 1 from boundary b \n\t inner join entityTag et on et.entityId = b.id and et.entityType = 'Boundary'\n\t inner join tag t on t.id = et.tagId and JSON_EXTRACT(t.metadata, '$.isSecurityGroup') = true \n\t where b.id = uab.boundaryId and t.id = :securityGroupId \n )",{securityGroupId:t.filters.securityGroupId}),i.getMany()}),{tag:"UserAuthorizedRepository::getAuthorizedBoundariesByUserId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"UserAuthorizedRepository::getAuthorizedBoundariesByUserId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"UserAuthorizedRepository::getAuthorizedBoundariesByUserId result"),t}async bulkRemoveUserAuthorizedDevices(e){this.logger.trace(e,"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices started with params");const t=await(async(e,t,i)=>t?.filters?.userId&&t?.filters?.imeis?.length?(await e.safeQuery3(hi,"userAuthorizedDevice",(e=>e.delete().where("userAuthorizedDevice.userId = :userId",{userId:ra(t.filters.userId)}).andWhere("userAuthorizedDevice.imei IN (:imeis)",{imeis:t.filters.imeis}).execute()),{tag:"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices",replicationMode:"master"})).affected>0:(i.warn({params:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices result"),t}async bulkRemoveUserAuthorizedBoundaries(e){this.logger.trace(e,"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries started with params");const t=await(async(e,t,i)=>t?.filters?.userId&&t?.filters?.boundaryIdList?.length?(await e.safeQuery3(yi,"userAuthorizedBoundary",(e=>e.delete().where("userAuthorizedBoundary.userId = :userId",{userId:ra(t.filters.userId)}).andWhere("userAuthorizedBoundary.boundaryId IN (:boundaryIdList)",{boundaryIdList:t.filters.boundaryIdList}).execute()),{tag:"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries",replicationMode:"master"})).affected>0:(i.warn({params:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries result"),t}async getUserIdsByClientIdAndAuthorizedDevices(e){this.logger.trace(e,"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices started with params");const t=await(async(e,t,i)=>{if(ga(t,vr)||!t.filters.imeisList.length)return i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices - missing required parameters"),[];const r=await e.safeQuery3(hi,"userAuthorizedDevice",(e=>e.select("BIN_TO_UUID(userAuthorizedDevice.userId) as userId").distinct(!0).where("userAuthorizedDevice.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("userAuthorizedDevice.imei IN (:imeisList)",{imeisList:t.filters.imeisList}).getRawMany()),{tag:"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices",replicationMode:t.queryOptions?.replicationMode});return r?.map((e=>e.userId))??[]})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices result"),t}async getUserIdsByClientIdAndAuthorizedBoundaries(e){this.logger.trace(e,"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries started with params");const t=await(async(e,t,i)=>pa(t,hr)||!t.filters.boundaryIdList.length?(i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries - missing required parameters"),[]):(await e.safeQuery3(yi,"userAuthorizedBoundary",(e=>e.select("BIN_TO_UUID(userAuthorizedBoundary.userId) as userId").distinct(!0).where("userAuthorizedBoundary.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("userAuthorizedBoundary.boundaryId IN (:boundaryIdList)",{boundaryIdList:t.filters.boundaryIdList}).getRawMany()),{tag:"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries",replicationMode:t.queryOptions?.replicationMode})).map((e=>e.userId)))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries result"),t}},TagsRepository:class extends ta{async createTag(e){this.logger.trace(e,"TagRepository::this.createTrip started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Ir)?(i.warn({params:t},"TagsRepository::createTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ri),r={...t,name:t.name.trim().toLowerCase(),isSecurityGroup:t.metadata?.isSecurityGroup??!1,createdAt:Ca()};return await i.save(r)??null}),"TagRepository::createTag error"))(t,e,this.logger);return this.logger.trace(i,"TagRepository::createTrip result"),i}async updateTag(e){this.logger.trace(e,"TagRepository::this.updateTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,br)||!Ya({...t?.values,modifiedBy:void 0})?(i.warn({params:t},"TagRepository::updateTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ri),{filters:r,values:a}=t;return(await i.createQueryBuilder().update(ri).set({modifiedBy:a.modifiedBy,modifiedAt:Ca(),color:a.color,description:a.description,name:a.name,metadata:a.metadata}).where("id = :id",{id:r.tagId}).andWhere("clientId = :clientId",{clientId:r.clientId}).execute()).affected>0}),"TagRepository::updateTag error"))(t,e,this.logger);return this.logger.trace({result:i},"TagRepository::updateTag result"),i}async deleteTag(e){this.logger.trace(e,"TagRepository::deleteTag started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Sr)?(i.warn({params:t},"TagsRepository::deleteTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ri);return(await i.createQueryBuilder().delete().where("id = :id",{id:t.tagId}).andWhere("clientId = :clientId",{clientId:t.clientId}).execute()).affected>0}),"TagsRepository::deleteTag"))(t,e,this.logger);return this.logger.trace({result:i},"TagRepository::deleteTag result"),i}async searchTags(e){this.logger.trace(e,"TagRepository::searchTags started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(pa(t,Rr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ri),{filters:a,pagingOptions:n}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:a.clientId});i&&o.setQueryRunner(i),a.names?.length&&(o=o.andWhere("name IN (:...names)",{names:a.names})),a.tagIds?.length&&(o=o.andWhere("id IN (:...tagIds)",{tagIds:a.tagIds})),a.metadata&&(o=o.andWhere("JSON_CONTAINS(metadata, :metadata)",{metadata:JSON.stringify(a.metadata)}));const s=await o.getCount(),l=n?.pageSize??50;o.limit(l);const d=(n?.pageIndex??0)*l;return o.offset(d),{tags:await o.getMany(),totalCount:s}}),"TagsRepository::searchTags",r)})(t,e,this.logger);return this.logger.trace(i,"TagRepository::searchTags result"),i}async bulkCreateTags(e){this.logger.trace(e,"TagRepository::bulkCreateTags started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>pa(t,Cr)||0===t.tags.length||!t.tags.every((e=>e.name))?(i.warn({params:t},"TagsRepository::bulkCreateTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(ri),r=t.tags.map((e=>({...e,name:e.name.trim().toLowerCase(),clientId:t.clientId,createdBy:t.createdBy,isSecurityGroup:e.metadata?.isSecurityGroup??!1,createdAt:Ca()})));return await i.save(r)??[]}),"TagRepository::bulkCreateTag error"))(t,e,this.logger);return this.logger.trace(i,"TagRepository::bulkCreateTags result"),i}async searchTagsByUser(e){this.logger.trace(e,"TagRepository::searchTagsByUser started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(pa(t,Dr)||ga(t,wr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t),{filters:a,pagingOptions:n}=t;let o=a.userNumberId;if(!a.userNumberId){const t=await Xa(e,{filters:{id:a.userId}},i);o=t?.numberId}return e.safeQuery((async(e,t)=>{let i=e.getRepository(ri).createQueryBuilder("tag").where("tag.clientId = :clientId",{clientId:a.clientId});t&&i.setQueryRunner(t),i.innerJoin(Nt,"entityTag","entityTag.tagId = tag.id AND entityTag.entityType = 'User' AND entityTag.entityId = :userId",{userId:o}),a.metadata&&(i=i.andWhere("JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify(a.metadata)}));const r=await i.getCount(),s=n?.pageSize??50;i.limit(s);const l=(n?.pageIndex??0)*s;return i.offset(l),{tags:await i.getMany(),totalCount:r}}),"TagsRepository::searchTags",r)})(t,e,this.logger);return this.logger.trace(i,"TagRepository::searchTagsByUser result"),i}},TasksRepository:class extends ta{async createTaskSchedule(e){this.logger.trace(e,"TasksRepository::createTaskSchedule started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.title&&t?.description&&null!=t?.repeats&&t?.createdBy&&(t.repeats||t.dueDate||t.dueOdometer||t.dueActiveHours)&&(!t.repeats||t.intervalDays||t.intervalOdometer||t.intervalActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(Rt),r=new Date,a={...t,createdAt:r,status:"active"};return await i.save(a)}),"TasksRepository::createTaskSchedule"):(i.warn({params:t},"TasksRepository::createTaskSchedule missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"TasksRepository::createTaskSchedule result"),i}async getTaskSchedule(e){this.logger.trace(e,"TasksRepository::getTaskSchedule started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"TasksRepository::getTaskSchedule missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Rt).createQueryBuilder("taskSchedule");i&&r.setQueryRunner(i);const a=await r.where("taskSchedule.id = :id",{id:t.filters.id}).getOne();if(t.projectionOptions?.numberOfDevicesToGet>0&&a){const r=e.getRepository(Dt),n=r.createQueryBuilder("deviceTask");i&&n.setQueryRunner(i);const o=await n.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:a.id}).limit(t.projectionOptions.numberOfDevicesToGet).getMany();a.deviceTasks=o;const s=r.createQueryBuilder("deviceTask");i&&s.setQueryRunner(i);const l=await s.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:a.id}).select("COUNT(taskScheduleId)","deviceCount").groupBy("deviceTask.taskScheduleId").getRawOne();a.totalDevicesCount=l?l.deviceCount:0}return a}),"TasksRepository::getTaskSchedule",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTaskSchedule result"),i}async updateTaskSchedule(e){this.logger.trace(e,"TasksRepository::updateTaskSchedule started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.modifiedBy&&(0!=t?.values?.repeats||t?.values?.dueDate||t?.values?.dueOdometer||t?.values?.dueActiveHours)&&(!t?.values?.repeats||t?.values?.intervalDays||t?.values?.intervalOdometer||t?.values?.intervalActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(Rt),r=new Date;return(await i.createQueryBuilder().update(Rt).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"TasksRepository::updateTaskSchedule"):(i.warn({params:t},"TasksRepository::updateTaskSchedule missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::updateTaskSchedule result"),i}async deleteTaskSchedule(e){this.logger.trace(e,"TasksRepository::deleteTaskSchedule started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(Rt),r=new Date;return(await i.createQueryBuilder().update(Rt).set({status:"deleted",deletedBy:t.deletedBy,deletedAt:r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::deleteTaskSchedule"):(i.warn({params:t},"TasksRepository::deleteTaskSchedule missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTaskSchedule result"),i}async getTaskSchedules(e){this.logger.trace(e,"TasksRepository::getTaskSchedules started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await an(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTaskSchedules result"),i}async getTaskSchedulesCount(e){this.logger.trace(e,"TasksRepository::getTaskSchedulesCount started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Ya(t?.filters))return i.warn({params:t},"TasksRepository::getTaskSchedulesCount missing required parameters"),-1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Rt).createQueryBuilder("taskSchedule");return i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(Dt,"dt","taskSchedule.id = dt.taskScheduleId")),t.filters.imeiList?.length&&(r=r.andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Za(r,t.filters,en,"taskSchedule"),t.filters.authorizedImeis?.length&&(r=r.andWhere("\n NOT EXISTS (\n SELECT 1\n FROM deviceTask dt1\n WHERE dt1.taskScheduleId = taskSchedule.id\n AND dt1.imei NOT IN (:authorizedDevices)\n )\n ",{authorizedDevices:t.filters.authorizedImeis})),await r.getCount()}),"TasksRepository::getTaskSchedulesCount",r)})(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::getTaskSchedulesCount result"),i}async getDeviceTasks(e){this.logger.trace(e,"TasksRepository::getDeviceTasks started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskScheduleId&&!t?.filters?.imei&&!t?.filters?.clientId)return i.warn({params:t},"TasksRepository::getDeviceTasks missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Dt).createQueryBuilder("deviceTask");return i&&(r=r.setQueryRunner(i)),t.filters.taskScheduleId&&(r=r.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:t.filters.taskScheduleId})),t.filters.imei&&(r=r.andWhere("deviceTask.imei = :imei",{imei:t.filters.imei})),t.filters.clientId&&(r=r.andWhere("deviceTask.clientId = :clientId",{clientId:t.filters.clientId})),await r.getMany()}),"TasksRepository::getDeviceTasks",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getDeviceTasks result"),i}async setTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::setTaskScheduleDevices started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId?e.safeQuery((async e=>{const i=e.getRepository(Rt),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const a=e.getRepository(Dt);if(await a.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).execute(),!t?.imeis?.length)return!0;const n=[];for(let e=0;e<t.imeis.length;e+=50)n.push(t.imeis.slice(e,e+50));for(const e of n){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),n=await a.insert(i);if(!n?.raw?.affectedRows)return!1}return!0}),"TasksRepository::setTaskScheduleDevices"):(i.error("TasksRepository::setTaskScheduleDevices - taskScheduleId is required"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::setTaskScheduleDevices result"),i}async addTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::addTaskScheduleDevices started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imeis?.length?e.safeQuery((async e=>{const i=e.getRepository(Rt),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const a=e.getRepository(Dt),n=[];for(let e=0;e<t.imeis.length;e+=50)n.push(t.imeis.slice(e,e+50));for(const e of n){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),n=await a.upsert(i,{conflictPaths:["taskScheduleId","imei"]});if(!n?.raw?.affectedRows)return!1}return!0}),"TasksRepository::addTaskScheduleDevices"):(i.error("TasksRepository::addTaskScheduleDevices - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::addTaskScheduleDevices result"),i}async deleteTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::deleteTaskScheduleDevices started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imeis?.length?e.safeQuery((async e=>{const i=e.getRepository(Dt),r=await i.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).andWhere("imei IN (:...imeis)",{imeis:t.imeis}).execute();return r?.affected>0}),"TasksRepository::deleteTaskScheduleDevices"):(i.error("TasksRepository::deleteTaskScheduleDevices - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTaskScheduleDevices result"),i}async createTask(e){this.logger.trace(e,"TasksRepository::createTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imei&&t?.clientId&&(t.dueDate||t.dueOdometer||t.dueActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(ai),r=new Date,a={...t,createdAt:r,status:"pending"};return await i.save(a)}),"TasksRepository::createTask"):(i.warn({params:t},"TasksRepository::createTask missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"TasksRepository::createTask result"),i}async getTasks(e){this.logger.trace(e,"TasksRepository::getTasks started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Ya(t?.filters))return i.warn({params:t},"TasksRepository::getTasks missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ai).createQueryBuilder("task");i&&(r=r.setQueryRunner(i)),t.projectionOptions?.includeTaskSchedule?r=r.leftJoinAndSelect("task.taskSchedule","taskSchedule"):(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),(t.projectionOptions?.includeDeviceStatus||null!=t.filters?.dueInActiveHoursFilter?.minValue||null!=t.filters?.dueInActiveHoursFilter?.maxValue||null!=t.filters?.dueInOdometerFilter?.maxValue||null!=t.filters?.dueInOdometerFilter?.minValue)&&(r=r.leftJoinAndSelect("task.deviceStatus","deviceStatus","deviceStatus.imei = task.imei")),r=Za(r,t.filters,tn,"task"),r=Za(r,t.filters,rn,"taskSchedule"),null!=t.filters?.dueInOdometerFilter?.maxValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') IS NOT NULL \n AND task.dueOdometer IS NOT NULL\n AND (task.dueOdometer > CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4))\n AND task.dueOdometer - CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4)) <= :dueInMaxOdometer))",{dueInMaxOdometer:t.filters.dueInOdometerFilter.maxValue})),null!=t.filters?.dueInOdometerFilter?.minValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') IS NOT NULL \n AND task.dueOdometer IS NOT NULL\n AND (task.dueOdometer > CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4))\n AND task.dueOdometer - CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4)) >= :dueInMinOdometer))",{dueInMinOdometer:t.filters.dueInOdometerFilter.minValue})),null!=t.filters?.dueInActiveHoursFilter?.maxValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') IS NOT NULL\n AND task.dueActiveHours IS NOT NULL\n AND (task.dueActiveHours > CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4))\n AND task.dueActiveHours - CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4)) <= :dueInMaxActiveHours))",{dueInMaxActiveHours:t.filters.dueInActiveHoursFilter.maxValue})),null!=t.filters?.dueInActiveHoursFilter?.minValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') IS NOT NULL\n AND task.dueActiveHours IS NOT NULL\n AND (task.dueActiveHours > CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4))\n AND task.dueActiveHours - CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4)) >= :dueInMinActiveHours))",{dueInMinActiveHours:t.filters.dueInActiveHoursFilter.minValue})),t.filters?.authorizedImeis?.length&&(r=r.andWhere("NOT EXISTS (\n SELECT 1\n FROM task task1\n WHERE task1.taskScheduleId = task.taskScheduleId\n AND task1.imei NOT IN (:authorizedDevices)\n )",{authorizedDevices:t.filters.authorizedImeis}));const a=t.sortingOptions?.length?t.sortingOptions:[{sortField:t.sortOptions?.sortField??"id",sortOrder:t.sortOptions?.sortOrder??"DESC"}];for(const e of a){const t=e.sortField??"id",i=e.sortOrder??"DESC";r=r.addOrderBy(`task.${t}`,i)}return await r.limit(t?.pagingOptions?.pageSize??100).offset((t?.pagingOptions?.pageSize??100)*(t?.pagingOptions?.pageIndex??0)).getMany()}),"TasksRepository::getTasks",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTasks result"),i}async getTasksCount(e){this.logger.trace(e,"TasksRepository::getTasksCount started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Ya(t?.filters))return i.warn({params:t},"TasksRepository::getTasksCount missing required parameters"),-1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ai).createQueryBuilder("task");return i&&(r=r.setQueryRunner(i)),(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),r=Za(r,t.filters,tn,"task"),r=Za(r,t.filters,rn,"taskSchedule"),t.filters?.authorizedImeis?.length&&(r=r.andWhere("NOT EXISTS (\n SELECT 1\n FROM task task1\n WHERE task1.taskScheduleId = task.taskScheduleId\n AND task1.imei NOT IN (:authorizedDevices)\n )",{authorizedDevices:t.filters.authorizedImeis})),await r.getCount()}),"TasksRepository::getTasksCount",r)})(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::getTasksCount result"),i}async updateTask(e){this.logger.trace(e,"TasksRepository::updateTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(ai),r=new Date;return(await i.createQueryBuilder().update(ai).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"TasksRepository::updateTask"):(i.warn({params:t},"TasksRepository::updateTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::updateTask result"),i}async setTaskAsPastDue(e){this.logger.trace(e,"TasksRepository::setTaskAsPastDue started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(ai),r=new Date;return(await i.createQueryBuilder().update(ai).set({status:"past_due",modifiedBy:t.modifiedBy,modifiedAt:r,pastDueAt:t.pastDueAt??r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::setTaskAsPastDue"):(i.warn({params:t},"TasksRepository::setTaskAsPastDue missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::setTaskAsPastDue result"),i}async completeTask(e){this.logger.trace(e,"TasksRepository::completeTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id?e.safeQuery((async e=>{const i=e.getRepository(ai),r=new Date,a=t.includeTimeInCompletedAt??!1,n=t.completedAt??r;return a||n.setHours(0,0,0,0),(await i.createQueryBuilder().update(ai).set({status:"completed",completedBy:t.completedBy,completedAt:n,completionNotes:t.completionNotes,completionOdometer:t.completionOdometer,completionActiveHours:t.completionActiveHours,completionMetadata:t.completionMetadata,includeTimeInCompletedAt:a,cost:t.cost,timeSpent:t.timeSpent}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::completeTask"):(i.warn({params:t},"TasksRepository::completeTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::completeTask result"),i}async deleteTask(e){this.logger.trace(e,"TasksRepository::deleteTask started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(ai),r=new Date;return(await i.createQueryBuilder().update(ai).set({status:"deleted",deletedBy:t.deletedBy,deletedAt:r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::deleteTask"):(i.warn({params:t},"TasksRepository::deleteTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTask result"),i}},TripRepository:class extends ia{async createTrip(e){this.logger.trace(e,"TripRepository::this.createTrip started with params");const t=await(async(e,t)=>e.safeQuery2((async e=>{const i=e.getRepository(ni),r=new Date,a={...t,createdAt:t.createdAt??r};return await i.save(a)??null}),"TripRepository::createTrip error"))(this.dataSource,e);return this.logger.trace(t,"TripRepository::createTrip result"),t}async updateTripEndValues(e){this.logger.trace(e,"TripRepository::this.updateTripEndValues started with params");const t=await(async(e,t)=>{const i=ra(t?.filters?.tripGuid),{values:r}=t;return(await e.safeQuery3(ni,"trip",(async e=>e.update().set({endDate:r.endDate,endLat:r.endLat,endLon:r.endLon,endAddress:r.endAddress,positionEnd:r.positionEnd,endMessageId:r.endMessageId,distance:r.distance,duration:r.duration,tripType:r.tripType,tripCompletionStatusId:r.tripCompletionStatusId}).where("tripGuid = :tripGuid",{tripGuid:i}).execute()),{tag:"TripRepository::updateTripEndValues",replicationMode:"master"})).affected>0})(this.dataSource,e);return this.logger.trace({result:t},"TripRepository::updateTripEndValues result"),t}async getTripById(e,t){this.logger.trace({id:e,forceUseReplica:t},"TripRepository::this.getTripById started with params");const i=await(async(e,t,i,r)=>{const a=ra(t);return a?await e.safeQuery3(ni,"trip",(async e=>e.select().where("tripGuid = :tripGuid",{tripGuid:a}).andWhere("deleted = 0").getOne()),{replicationMode:r?"slave":"master",tag:"TripRepository::getTripById"}):(i.warn("TripRepository::getTripById missing required parameter tripGuid"),null)})(this.dataSource,e,this.logger,t);return this.logger.trace(i,"TripRepository::getTripById result"),i}async getTrips(e){this.logger.trace(e,"TripRepository::this.getTrips started with params");const t=await(async(e,t,i)=>pa(t,Tr)?(i.warn("TripRepository::getTrips missing required parameters"),null):await e.safeQuery3(ni,"trip",(async e=>{const i=e.select(["trip.id as id","trip.tripGuid as tripGuid","trip.startDate as startDate","trip.endDate as endDate","trip.clientId as clientId","trip.imei as imei","trip.startLat as startLat","trip.startLon as startLon","trip.endLat as endLat","trip.endLon as endLon","trip.startAddress as startAddress","trip.endAddress as endAddress","trip.positionStart as positionStart","trip.positionEnd as positionEnd","trip.startMessageId as startMessageId","trip.endMessageId as endMessageId","trip.startSendTimeMessage as startSendTimeMessage","trip.endSendTimeMessage as endSendTimeMessage","trip.createdAt as createdAt","trip.distance as distance","trip.duration as duration","trip.tripType as tripType","trip.tripCompletionStatusId as tripCompletionStatusId","device.name as deviceName"]);i.innerJoin(le,"device","device.clientId = trip.clientId AND device.imei = trip.imei"),i.useIndex("ixTripClientIdImeiStartDate");const{filters:r,pagingOptions:a,sortOptions:n}=t;i.where("trip.clientId = :clientId",{clientId:r.clientId}),i.andWhere("trip.deleted = 0"),r.imeis?.length&&i.andWhere("trip.imei IN (:imeiList)",{imeiList:r.imeis}),i.andWhere("trip.startDate between :from and :to",{from:r.from,to:r.to}),r.deviceStatus||(r.deviceStatus="A"),nn(i,r,"device.status","=","deviceStatus"),nn(i,r,"device.name","=","deviceName"),nn(i,r,"trip.tripCompletionStatusId","=","completionStatus"),nn(i,r,"trip.tripType","=","tripType"),nn(i,r,"trip.duration",">=","durationMin"),nn(i,r,"trip.duration","<=","durationMax"),nn(i,r,"trip.distance",">=","distanceMin"),nn(i,r,"trip.distance","<=","distanceMax"),((e,t)=>{let i="trip",r=t?.sortField??"startDate";"deviceName"===r&&(i="device",r="name"),e.orderBy(`${i}.${r}`,"ASC"===t?.sortOrder?"ASC":"DESC")})(i,n);const o=i.getCount(),s=a.pageSize??50;i.limit(s);const l=(a.pageIndex??0)*s;i.offset(l);const d=await i.getRawMany(),[u,c]=await Promise.all([o,d]);return{trips:c.map((e=>({id:e.id,tripGuid:e.tripGuid,startDate:e.startDate,endDate:e.endDate,clientId:e.clientId,imei:e.imei,startLat:e.startLat,startLon:e.startLon,endLat:e.endLat,endLon:e.endLon,startAddress:e.startAddress,endAddress:e.endAddress,positionStart:e.positionStart,positionEnd:e.positionEnd,startMessageId:e.startMessageId,endMessageId:e.endMessageId,startSendTimeMessage:e.startSendTimeMessage,endSendTimeMessage:e.endSendTimeMessage,createdAt:e.createdAt,distance:e.distance,duration:e.duration,tripType:e.tripType,tripCompletionStatusId:e.tripCompletionStatusId,deviceName:e.deviceName}))),totalCount:u}}),{replicationMode:t.queryOptions?.forceUseReplica?"slave":"master",tag:"TripRepository::getTrips"}))(this.dataSource,e,this.logger);return this.logger.trace({totalCount:t?.totalCount??0},"TripRepository::getTrips result.totalCount"),t}async upsertTrip(e){this.logger.trace(e,"TripRepository::this.upsertTrip started with params");const t=await(async(e,t)=>e.safeQuery2((async e=>{const i=e.getRepository(ni),r=new Date,a={...t,createdAt:t.createdAt??r},n=await i.upsert(a,{conflictPaths:["tripGuid"]});return n?.raw?.affectedRows>0}),"TripRepository::upsertTrip error"))(this.dataSource,e);return this.logger.trace({result:t},"TripRepository::upsertTrip result"),t}async getDeviceTripConfiguration(e){this.logger.trace(e,"TripRepository::this.getDeviceTripConfiguration started with params");const t=await(async(e,t,i)=>pa(t,Nr)?(i.warn("TripRepository::getTrips missing required parameters"),null):await e.safeQuery3(le,"device",(async e=>{const i=e.select(["device.clientId as clientId","device.deviceTypeId as deviceTypeId","uad.servicePlan as servicePlan","cds.generateTrips as generateTrips","cds.stopThresholdMinutes as stopThresholdMinutes","cds.movementThresholdSpeed as movementThresholdSpeed","cds.reportingMode as reportingMode"]),r=t?.filters?.clientId?"cds.clientId = device.clientId AND cds.imei = device.imei":"cds.imei = device.imei";i.innerJoin(it,"cds",r).leftJoin(ui,"uad","uad.imei = device.imei");const{filters:a}=t;a.clientId?i.where("device.clientId = :clientId",{clientId:a.clientId}).andWhere("device.imei = :imei",{imei:a.imei}):i.where("device.imei = :imei",{imei:a.imei});const n=await i.getRawOne();return n?{...n,generateTrips:1===n.generateTrips}:null}),{replicationMode:t.queryOptions?.forceUseReplica?"slave":"master",tag:"TripRepository::getTrips"}))(this.dataSource,e,this.logger);return this.logger.trace(t,"TripRepository::getDeviceTripConfiguration result"),t}},UserActivationsRepository:class extends ta{async createUserActivation(e){this.logger.trace(e,"UserActivationsRepository::createUserActivation started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.clientId)return i.warn({params:t},"UserActivationsRepository::createUserActivation - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(di),a=new Date,n={id:t?.id,userId:r,clientId:t?.clientId,createdAt:a,legacyCreatedAt:a,status:t?.status??"A"};return await i.save(n)}),"UserActivationsRepository::createUserActivation"):(i.warn({params:t},"UserActivationsRepository::createUserActivation - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivation result"),i}async getUserActivations(e){this.logger.trace(e,"UserActivationsRepository::getUserActivations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.clientId)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),[];const r=ra(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(di).createQueryBuilder("userActivation");return i&&a.setQueryRunner(i),t.filters.userId&&(a=a.where("userActivation.userId = :userId",{userId:r})),t.filters.clientId&&(a=a.andWhere("userActivation.clientId = :clientId",{clientId:t.filters.clientId})),await a.getMany()}),"UserActivationsRepository::getUserActivations",a)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivations result"),i}async deleteUserActivation(e){this.logger.trace(e,"UserActivationsRepository::deleteUserActivation started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId)return i.warn({params:t},"UserActivationsRepository::deleteUserActivation - missing required parameters"),!1;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(di);return(await t.createQueryBuilder("userActivation").delete().where("userId = :userId",{userId:r}).execute()).affected>0}),"UserActivationsRepository::deleteUserActivation"):(i.warn({params:t},"UserActivationsRepository::deleteUserActivation - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::deleteUserActivation result"),i}async getUserActivationDevices(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationDevices started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.imei)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ui).createQueryBuilder("userActivationDevice");return i&&r.setQueryRunner(i),t.filters.id&&(r=r.where("userActivationDevice.id = :id",{id:t.filters.id})),t.filters.imei&&(r=r.andWhere("userActivationDevice.imei = :imei",{imei:t.filters.imei})),r=r.orderBy("userActivationDevice.id","DESC"),await r.getMany()}),"UserActivationsRepository::getUserActivationDevices",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationDevices result"),i}async getUserActivationDevicesByClientId(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationDevicesByClientId started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"UserActivationsRepository::getUserActivationDevicesByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ui),a="SELECT *\n FROM (\n SELECT uad.*,\n row_number() over (partition by uad.imei order by uad.createdAt desc) as rk\n FROM userActivationDevice uad\n INNER JOIN device d on uad.deviceId = d.id\n WHERE d.clientId = ?\n ) AS sub\n WHERE sub.rk = 1";return(i?await i.query(a,[t.filters.clientId]):r.query(a,[t.filters.clientId])).map((e=>({...e,notificationByEmail:1===e.notificationByEmail,notificationBySms:1===e.notificationBySms,planAnnual:1===e.planAnnual})))}),"UserActivationsRepository::getUserActivationDevicesByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationDevicesByClientId result"),i}async createUserActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationDevice started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userActivationId&&t?.deviceId&&t?.imei?e.safeQuery((async e=>{const i=e.getRepository(ui),r=new Date,a={id:t?.id,deviceId:t?.deviceId,billingInterval:t?.billingInterval,deviceName:t?.deviceName,userActivationId:t?.userActivationId,trackingReason:t?.trackingReason,deviceColor:t?.deviceColor,notificationByEmail:t?.notificationByEmail,notificationBySms:t?.notificationBySms,planAnnual:t?.planAnnual,dataSourceTypeId:t?.dataSourceTypeId,subscriptionId:t?.subscriptionId,platform:t?.platform,eventType:t?.eventType,planCode:t?.planCode,servicePlan:t?.servicePlan,model:t?.model,imei:t?.imei,status:t?.status,createdAt:r,modifiedAt:r};return await i.save(a)}),"UserActivationsRepository::createUserActivation"):(i.warn({params:t},"UserActivationsRepository::createUserActivation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationDevice result"),i}async getLastActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::getLastActivationDevice started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UserActivationsRepository::getLastActivationDevice - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ui).createQueryBuilder("userActivationDevice");i&&r.setQueryRunner(i),t.projectionOptions?.withDevice&&(r=r.innerJoinAndSelect("userActivationDevice.device","device")),t.projectionOptions?.withUserActivation&&(r=r.innerJoinAndSelect("userActivationDevice.userActivation","userActivation")),r=r.where("LOWER(userActivationDevice.imei) = LOWER(:imei)",{imei:t.filters.imei});const a=t.sortOptions?.sortField?`userActivationDevice.${t.sortOptions.sortField}`:"userActivationDevice.id";return r=r.orderBy(a,"DESC").limit(1),await r.getOne()}),"UserActivationsRepository::getLastActivationDevice",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getLastActivationDevice result"),i}async updateUserActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::updateUserActivationDevice started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(t?.filters?.imei||t?.filters?.id)&&(t?.values?.trackingReason||t?.values?.deviceName||t?.values?.deviceColor||null!=t?.values?.planAnnual||t?.values?.subscriptionId||t?.values?.platform||t?.values?.model||t?.values?.servicePlan)?e.safeQuery((async e=>{const i=e.getRepository(ui),r=new Date;let a=i.createQueryBuilder().update(ui).set({...t.values,modifiedAt:r});return t.filters.imei&&(a=a.where("imei = :imei",{imei:t.filters.imei})),t.filters.id&&(a=a.andWhere("id = :id",{id:t.filters.id})),(await a.execute()).affected>0}),"UserActivationsRepository::updateUserActivationDevice"):(i.warn({params:t},"UserActivationsRepository::updateUserActivationDevice - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::updateUserActivationDevice result"),i}async getUserActivationMetrics(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationMetrics started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - missing required parameters"),null;const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(pi).createQueryBuilder("userActivationMetric");return i&&a.setQueryRunner(i),t.filters.userId&&(a=a.where("userActivationMetric.userId = :userId",{userId:r})),await a.getOne()}),"UserActivationsRepository::getUserActivationMetrics",a)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationMetrics result"),i}async updateUserActivationMetrics(e){this.logger.trace(e,"UserActivationsRepository::updateUserActivationMetrics started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=ra(t?.filters?.userId);return r&&(t?.values?.firstName||t?.values?.lastName||t?.values?.email||t?.values?.phone||t?.values?.trackingReason||t?.values?.companyName||t?.values?.role||t?.values?.industry||t?.values?.devicesActivatingCategory||t?.values?.assetsCountRange||t?.values?.devicesActivatingCount||t?.values?.plan||t?.values?.usersInvitedCount||null!=t?.values?.meetingScheduled||t?.values?.planAnnual||t?.values?.planId||t?.values?.spyEnvironment||t?.values?.jarvisScore||t?.values?.enrichmentCompanyDescription||t?.values?.jarvisEnrichmentCompanyEin||t?.values?.enrichmentCompanyEmployees||t?.values?.enrichmentCompanyIndustry||t?.values?.enrichmentCompanyLocation||t?.values?.enrichmentCompanyName||t?.values?.enrichmentCompanyRevenue||t?.values?.enrichmentPrivateDomain||t?.values?.enrichmentPublicTicker||t?.values?.enrichmentRole||t?.values?.enrichmentTags||t?.values?.jenrichmentTitle||t?.values?.enrichmentVerifiedEmployment)?e.safeQuery((async e=>{const i=e.getRepository(pi),a=new Date;let n=i.createQueryBuilder().update(pi).set({...t.values,modifiedAt:a});return r&&(n=n.andWhere("userId = :userId",{userId:r})),(await n.execute()).affected>0}),"UserActivationsRepository::UpdateUserActivationMetrics"):(i.warn({params:t},"UserActivationsRepository::UpdateUserActivationMetrics - missing required parameters"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::updateUserActivationMetrics result"),i}async createUserActivationEvent(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationEvent started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.eventId||!t?.eventName)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - missing required parameters"),null;const r=ra(t?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - user id should be a valid UUID"),null;const a=ra(t?.eventId);return a?.length?e.safeQuery((async e=>{const i=e.getRepository(ci),n=new Date,o={userId:r,eventId:a,eventName:t?.eventName,eventValue:t?.eventValue,eventMetadata:t?.eventMetadata,platform:t?.platform,ip:t?.ip,userAgent:t?.userAgent,createdAt:t?.createdAt??n};return await i.save(o)}),"UserActivationsRepository::createUserActivationEvent"):(i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - event id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationEvent result"),i}async createUserActivationMetric(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationMetric started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.firstName&&t?.lastName&&t?.email))return i.warn({params:t},"UserActivationsRepository::createUserActivationMetric - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(pi),a=new Date,n={id:t?.id,userId:r,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phone:t?.phone,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserActivationsRepository::createUserActivationMetric"):(i.warn({params:t},"UserActivationsRepository::createUserActivationMetric - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationMetric result"),i}async getUserActivationById(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(di).createQueryBuilder("userActivation");return i&&r.setQueryRunner(i),r=r.andWhere("userActivation.id = :id",{id:t.filters.id}),await r.getOne()}),"UserActivationsRepository::getUserActivations",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationById result"),i}},UserAppFeedbackRepository:class extends ta{async createUserAppFeedback(e){this.logger.trace(e,"UserAppFeedbackRepository::createUserAppFeedback started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.platform||!t?.appVersion)return i.warn({params:t},"UserAppFeedbackRepository::createUserAppFeedback - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(mi),a={id:t.id,userId:r,platform:t.platform,appVersion:t.appVersion,feedback:t.feedback,amazonReviewDate:t.amazonReviewDate,createdAt:new Date};return await i.save(a)}),"UserAppFeedbackRepository::createUserAppFeedback"):(i.warn({userId:t?.userId},"UserAppFeedbackRepository::createUserAppFeedback - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserAppFeedbackRepository::createUserAppFeedback result"),i}},UserAppIncidentsRepository:class extends ta{async getUserAppIncidents(e){this.logger.trace(e,"UserAppIncidentsRepository::getUserAppIncidents started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - missing required parameters"),[];const r=ra(t.filters.userId);if(!r?.length)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - userId is not a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(gi).createQueryBuilder("userAppIncident").where("userAppIncident.userId = :userId",{userId:r}).andWhere("userAppIncident.createdAt between :createdFrom and :createdTo",{createdFrom:t.filters.createdFrom,createdTo:t.filters.createdTo}).orderBy("userAppIncident.createdAt","DESC");return i&&a.setQueryRunner(i),await a.getMany()}),"UserAppIncidentsRepository::getUserAppIncidents",a)})(t,e,this.logger);return this.logger.trace(i,"UserAppIncidentsRepository::getUserAppIncidents result"),i}async upsertUserAppIncident(e){this.logger.trace(e,"UserAppIncidentsRepository::upsertUserAppIncident started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t.deviceOs&&t.stage&&t.appVersion&&t?.errorId))return i.warn({params:t},"UserAppIncidentsRepository::upsertUserAppIncident - missing required parameters"),!1;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(gi),a=new Date,n={id:t.id,userId:r,userName:t.userName,userEmail:t.userEmail,deviceOs:t.deviceOs,deviceManufacturer:t.deviceManufacturer,deviceModel:t.deviceModel,stage:t.stage,appVersion:t.appVersion,errorMessage:t.errorMessage,errorFirstReceivedAt:t.errorFirstReceivedAt,errorReceivedAt:t.errorReceivedAt,deviceJailbroken:t.deviceJailbroken,deviceOsVersion:t.deviceOsVersion,deviceFreeMemory:t.deviceFreeMemory,deviceTotalMemory:t.deviceTotalMemory,deviceCharging:t.deviceCharging,deviceBatteryLevel:t.deviceBatteryLevel,deviceNetworkAccess:t.deviceNetworkAccess,appActiveScreen:t.appActiveScreen,appInForeground:t.appInForeground,appDurationInForeground:t.appDurationInForeground,appBundleId:t.appBundleId,incidentUrl:t.incidentUrl,errorId:t.errorId,createdAt:a},o=await i.upsert(n,{conflictPaths:["userId","errorId"]});return o?.raw?.affectedRows>0}),"UserAppIncidentsRepository::upsertUserAppIncident"):(i.warn({params:t},"UserAppIncidentsRepository::upsertUserAppIncident - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"UserAppIncidentsRepository::upsertUserAppIncident result"),i}},UserConfigurationsRepository:class extends ta{async getUserConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - missing required parameters"),[];const r=ra(t?.filters?.userId);if(t?.filters?.userId&&!r)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(Ie).createQueryBuilder("userConfiguration");return i&&a.setQueryRunner(i),t.filters.clientId&&(a=a.innerJoin("userConfiguration.user","user"),a=a.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),r&&(a=a.andWhere("userConfiguration.userId = :userId",{userId:r})),await a.getMany()}),"UserConfigurationsRepository::getUserConfigurations",a)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::getUserConfigurations result"),i}async createUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::createUserConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||null==t?.isMetric)return i.warn({params:t},"UserConfigurationsRepository::createUserConfiguration - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Ie),a=new Date,n={id:t?.id,userId:r,isMetric:t?.isMetric,timezone:t?.timezone,defaultMapLayer:t?.defaultMapLayer,speedUnits:t?.speedUnits,distanceUnits:t?.distanceUnits,alertsNotificationsOn:null==t?.alertsNotificationsOn||t?.alertsNotificationsOn,dataSourceTypeId:t?.dataSourceTypeId,homepage:t?.homepage,temperatureUnits:t?.temperatureUnits,addressFormat:t?.addressFormat,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserConfigurationsRepository::createUserConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::createUserConfiguration - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::createUserConfiguration result"),i}async updateUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::updateUserConfiguration - missing required parameters"),!1;const r=ra(t?.filters?.userId);return r?t?.values?.timezone||t?.values?.defaultMapLayer||t?.values?.speedUnits||t?.values?.distanceUnits||null!=t?.values?.alertsNotificationsOn||t?.values?.dataSourceTypeId||t?.values?.homepage||t?.values?.temperatureUnits||t?.values?.addressFormat?e.safeQuery((async e=>{const i=e.getRepository(Ie),a=new Date,n=i.createQueryBuilder().update(Ie).set({timezone:t.values.timezone,defaultMapLayer:t.values.defaultMapLayer,speedUnits:t.values.speedUnits,distanceUnits:t.values.distanceUnits,alertsNotificationsOn:t.values.alertsNotificationsOn,dataSourceTypeId:t.values.dataSourceTypeId,homepage:t.values.homepage,temperatureUnits:t.values.temperatureUnits,modifiedAt:a,addressFormat:t.values.addressFormat}).where("userId = :userId",{userId:r});return(await n.execute()).affected>0}),"UserConfigurationsRepository::updateUserConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserConfiguration - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserConfiguration - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserConfiguration result"),i}async deleteUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::deleteUserConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserConfiguration - missing required parameters"),!1;const r=ra(t?.filters?.userId);return r?e.safeQuery((async e=>{const t=e.getRepository(Ie).createQueryBuilder().delete().where("userId = :userId",{userId:r});return(await t.execute()).affected>0}),"UserConfigurationsRepository::deleteUserConfiguration"):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserConfiguration - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserConfiguration result"),i}async getUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - missing required parameters"),[];const r=ra(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(he).createQueryBuilder("userAlertConfiguration");return i&&a.setQueryRunner(i),a=a.innerJoinAndSelect("userAlertConfiguration.alertType","alertType",t.filters.includeBeta?void 0:"alertType.stage = 'prod'"),a=a.where("userAlertConfiguration.userId = :userId",{userId:r}),t?.projectionOptions?.withNotificationRecipients&&(a=a.leftJoinAndSelect("userAlertConfiguration.notificationRecipients","notificationRecipient")),a=a.orderBy("userAlertConfiguration.alertTypeId"),await a.getMany()}),"UserConfigurationsRepository::getUserAlertConfigurations",a)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::getUserAlertConfigurations result"),i}async bulkCreateUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.alertConfigurations?.length?e.safeQuery((async e=>{const r=e.getRepository(he),a=[];for(const e of t.alertConfigurations){if(!e?.userId||!e?.alertTypeId)return i.warn(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - User alert configuration could not be created: missing required parameters"),[];const t=ra(e?.userId);if(!t?.length)return i.warn(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - User alert configuration could not be created: user id should be a valid UUID"),[];const r={id:e?.id,userId:t,alertTypeId:e?.alertTypeId,smsNotification:e?.smsNotification,emailNotification:e?.emailNotification,appNotification:e?.appNotification,pushNotification:e?.pushNotification,alertValue:e?.alertValue,alertMetadata:e?.alertMetadata,name:e?.name,createdBy:e?.createdBy,enabled:e?.enabled,filter:e?.filter};a.push(r)}return a.length?await r.save(a):[]}),"UserConfigurationsRepository::bulkCreateUserAlertConfigurations"):(i.warn({params:t},"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::bulkCreateUserAlertConfigurations result"),i}async createUserAlertConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::createUserAlertConfiguration started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.alertTypeId?e.safeQuery((async e=>{const r=e.getRepository(he),a=ra(t?.userId);if(!a?.length)return i.warn(t,"UserConfigurationsRepository::createUserAlertConfiguration - User alert configuration could not be created: user id should be a valid UUID"),null;const n={id:t?.id,userId:a,alertTypeId:t?.alertTypeId,smsNotification:t?.smsNotification,emailNotification:t?.emailNotification,appNotification:t?.appNotification,pushNotification:t?.pushNotification,alertValue:t?.alertValue,alertMetadata:t?.alertMetadata,name:t?.name,createdBy:t?.createdBy,enabled:t?.enabled,filter:t?.filter};return await r.save(n)}),"UserConfigurationsRepository::createUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::createUserAlertConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::createUserAlertConfiguration result"),i}async updateUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters"),!1;const r=ra(t?.filters?.userId);return r?null!=t?.values?.smsNotification||null!=t?.values?.emailNotification||null!=t?.values?.appNotification||null!=t?.values?.pushNotification||t?.values?.alertValue||t?.values?.alertMetadata?e.safeQuery((async e=>{const i=e.getRepository(he).createQueryBuilder().update(he).set({smsNotification:t?.values?.smsNotification,emailNotification:t?.values?.emailNotification,appNotification:t?.values?.appNotification,pushNotification:t?.values?.pushNotification,alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata}).where("userId = :userId",{userId:r});return t?.filters?.alertTypeId&&i.andWhere("alertTypeId = :alertTypeId",{alertTypeId:t?.filters?.alertTypeId}),(await i.execute()).affected>0}),"UserConfigurationsRepository::updateUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserAlertConfigurations - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserAlertConfigurations result"),i}async updateUserAlertConfigurationById(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserAlertConfigurationsByIds started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.userAlertConfigurationId)return i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - missing required parameters"),!1;const r=ra(t?.filters?.userId);return r?null!=t?.values?.smsNotification||null!=t?.values?.emailNotification||null!=t?.values?.appNotification||null!=t?.values?.pushNotification||null!=t?.values?.enabled||t?.values?.alertValue||t?.values?.alertMetadata||t?.values?.filter||t?.values?.name||t?.values?.createdBy?e.safeQuery((async e=>{const i=e.getRepository(he).createQueryBuilder().update(he).set({smsNotification:t?.values?.smsNotification,emailNotification:t?.values?.emailNotification,appNotification:t?.values?.appNotification,pushNotification:t?.values?.pushNotification,alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata,createdBy:t?.values?.createdBy,filter:t?.values?.filter,name:t?.values?.name,enabled:t?.values?.enabled}).where("userId = :userId and id = :userAlertConfigurationId",{userId:r,userAlertConfigurationId:t.filters.userAlertConfigurationId});return(await i.execute()).affected>0}),"UserConfigurationsRepository::updateUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds result"),i}async deleteUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::deleteUserAlertConfigurations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserAlertConfigurations - missing required parameters"),!1;const r=ra(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserAlertConfigurations - user id should be a valid UUID"),!1):e.safeQuery((async e=>{let i=e.getRepository(he).createQueryBuilder().delete();return r&&(i=i.where("userId = :userId",{userId:r})),t?.filters?.userAlertConfigurationIds?.length&&(i=i.andWhere("id IN (:...userAlertConfigurationIds)",{userAlertConfigurationIds:t.filters.userAlertConfigurationIds})),(await i.execute()).affected>0}),"UserConfigurationsRepository::deleteUserAlertConfigurations")})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserAlertConfigurations result"),i}async getUserAlertNotificationsConfig(e){this.logger.trace(e,"UserConfigurationsRepository::getUserAlertNotificationsConfig started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - missing required parameters"),[];const r=ra(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,a)=>{const n=await on(e,r,a),o=await ln(e,r,n,a),s=o?.length?await sn(e,r,o,a):[],l=o.filter((e=>!s?.find((t=>t.clientAlertConfigurationId===e.id)))),d=await dn(e,l?.map((e=>e.id)),a);return o.map((e=>{const a=s.find((t=>t.clientAlertConfigurationId===e.id));if(a)return i.trace({userNotificationId:a.id},"Existing notification override found"),a;const o=d.find((i=>i.clientAlertConfigurationId===e.id&&aa(i.userId)==t.filters.userId&&i.isEnabled));if(o)return i.trace({userRecipientId:o.id},"Existing notification configured specific for the user"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:o.smsNotification,emailNotification:o.emailNotification,appNotification:o.appNotification,pushNotification:o.pushNotification};const l=d.find((t=>t.clientAlertConfigurationId===e.id&&n.find((e=>e.securityRoleId===t.roleId))&&t.isEnabled));if(l)return i.trace({roleRecipientId:l.id},"Existing notification configured specific for the user role"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:l.smsNotification,emailNotification:l.emailNotification,appNotification:l.appNotification,pushNotification:l.pushNotification};const u=d.find((t=>t.clientAlertConfigurationId===e.id&&null==t.userId&&null==t.roleId&&t.isEnabled));return u?(i.trace({allUsersRecipientId:u.id},"Existing notification configured specific for all users"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:u.smsNotification,emailNotification:u.emailNotification,appNotification:u.appNotification,pushNotification:u.pushNotification}):void 0}))}),"UserConfigurationsRepository::getUserAlertNotificationsConfig",a)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::getUserAlertNotificationsConfig result"),i}async upsertUserAlertNotificationsConfig(e){this.logger.trace(e,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.clientAlertConfigurationId?e.safeQuery((async e=>{const r=e.getRepository(fe),a=ra(t?.userId);if(!a?.length)return i.warn(t,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - User alert configuration could not be created: user id should be a valid UUID"),null;const n={id:t?.id,userId:a,clientAlertConfigurationId:t?.clientAlertConfigurationId,smsNotification:t?.smsNotification??!1,emailNotification:t?.emailNotification??!1,appNotification:t?.appNotification??!1,pushNotification:t?.pushNotification??!1},o=await r.upsert(n,{conflictPaths:["userId","clientAlertConfigurationId"]});return o?.raw?.affectedRows>0}),"UserConfigurationsRepository::upsertUserAlertNotificationsConfig"):(i.warn({params:t},"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::upsertUserAlertNotificationsConfig result"),i}deleteUserAlertNotificationsConfig=async e=>{this.logger.trace(e,"UserConfigurationsRepository::deleteUserAlertNotificationsConfig started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig - missing required parameters"),!1;const r=ra(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig - user id should be a valid UUID"),!1):e.safeQuery((async e=>{let i=e.getRepository(fe).createQueryBuilder().delete();return r&&(i=i.where("userId = :userId",{userId:r})),t?.filters?.clientAlertConfigurationIds?.length&&(i=i.andWhere("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t.filters.clientAlertConfigurationIds})),(await i.execute()).affected>0}),"UserConfigurationsRepository::deleteUserAlertNotificationsConfig")})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig result"),i}},UserDataDeletionRequestsRepository:class extends ta{async getUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.id)return i.warn({params:t},"UserDataDeletionRequestsRepository::getUserDataDeletionRequest - missing required parameters"),null;const r=ra(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserDataDeletionRequestsRepository::getUserDataDeletionRequest - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(Ii).createQueryBuilder("userDataDeletionRequest");return i&&a.setQueryRunner(i),t?.filters?.id&&(a=a.andWhere("userDataDeletionRequest.id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(a=a.andWhere("userDataDeletionRequest.userId = :userId",{userId:r})),await a.getOne()}),"UserDataDeletionRequestsRepository::getUserDataDeletionRequest",a)})(t,e,this.logger);return this.logger.trace(i,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest result"),i}async createUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::createUserDataDeletionRequest started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.clientId&&t?.email&&t?.userSecurityRoleName))return i.warn({params:t},"UserDataDeletionRequestsRepository::createUserDataDeletionRequest - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Ii),a=new Date,n={id:t?.id,userId:r,clientId:t.clientId,email:t.email,userSecurityRoleName:t.userSecurityRoleName,status:t.status,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserDataDeletionRequestsRepository::createUserDataDeletionRequest"):(i.warn({userId:t?.userId},"UserDataDeletionRequestsRepository::createUserDataDeletionRequest - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserDataDeletionRequestsRepository::createUserDataDeletionRequest result"),i}async updateUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.id)return i.warn({params:t},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters"),!1;if(!t?.values?.status)return i.warn({params:t},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters"),!1;const r=ra(t?.filters?.userId);return t?.filters?.userId&&!r?.length?(i.warn({userId:t?.filters?.userId},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - user id should be a valid UUID"),!1):e.safeQuery((async e=>{const i=e.getRepository(Ii),a=new Date;let n=i.createQueryBuilder().update(Ii).set({status:t?.values?.status,modifiedAt:a});return t?.filters?.id&&(n=n.where("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(n=n.andWhere("userId = :userId",{userId:r})),(await n.execute()).affected>0}),"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest")})(t,e,this.logger);return this.logger.trace({result:i},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest result"),i}async removeUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(Ii).createQueryBuilder().delete().where("id = :id",{id:t?.filters?.id});return(await i.execute()).affected>0}),"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest"):(i.warn({params:t},"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest result"),i}},UserInvitationsRepository:class extends ta{async getUserInvitationById(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitationById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - missing required parameters"),null;const r=ra(t?.filters?.id);if(!r?.length)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - user invitation id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(jr).createQueryBuilder("userInvitation");return t&&i.setQueryRunner(t),i=i.where("userInvitation.id = :id",{id:r}),await i.getOne()}),"UserInvitationsRepository::getUserInvitationById",a)})(t,e,this.logger);return this.logger.trace(i,"UserInvitationsRepository::getUserInvitationById result"),i}async getUserInvitations(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitations started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.inviteeEmails?.length||t?.filters?.inviterClientId||t?.filters?.statusList?.length||t?.filters?.tagIdListByEntityType?.userTagIdList?.length||t?.filters?.tagIdListByEntityType?.invitationTagIdList?.length))return i.warn({params:t},"UserInvitationsRepository::getUserInvitations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(jr).createQueryBuilder("userInvitation");if(i&&r.setQueryRunner(i),t?.filters?.inviteeEmails?.length&&(r=r.andWhere("LOWER(userInvitation.inviteeEmail) IN (:...inviteeEmails)",{inviteeEmails:t.filters.inviteeEmails.map((e=>e.trim().toLowerCase()))})),t?.filters?.inviterClientId&&(r=r.andWhere("userInvitation.inviterClientId = :inviterClientId",{inviterClientId:t.filters.inviterClientId})),t?.filters?.statusList?.length&&(r=r.andWhere("userInvitation.statusId IN (:...statusList)",{statusList:t.filters.statusList})),t.filters.tagIdListByEntityType){const{userTagIdList:e,invitationTagIdList:i}=t.filters.tagIdListByEntityType;e?.length&&r.innerJoin(Re,"user","user.id = userInvitation.inviterUserId").innerJoin(Nt,"entityTagUser","entityTagUser.entityId = user.numberId \n AND entityTagUser.entityType = 'User'\n AND entityTagUser.tagId IN (:...userTagIdList)",{userTagIdList:e}),i?.length&&r.innerJoin(Nt,"entityTagInvitation","entityTagInvitation.entityId = userInvitation.numberId \n AND entityTagInvitation.entityType = 'UserInvitation'\n AND entityTagInvitation.tagId IN (:...invitationTagIdList)",{invitationTagIdList:i})}return r=r.orderBy("userInvitation.createdAt","DESC"),await r.getMany()}),"UserInvitationsRepository::getUserInvitations",r)})(t,e,this.logger);return this.logger.trace(i,"UserInvitationsRepository::getUserInvitations result"),i}async updateUserInvitation(e){this.logger.trace(e,"UserInvitationsRepository::updateUserInvitation started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UsersRepository::updateUserInvitation - missing required parameters"),!1;const r=ra(t?.filters?.id);return r?.length?t?.values?.statusId||t?.values?.inviteeEmail||t?.values?.inviteeSecurityRoleId||t?.values?.trackerImeis||t?.values?.trackerAccess||t?.values?.minAccessDate||t?.values?.boundaries||t?.values?.boundaryAccess||t?.values?.tasksAccess?e.safeQuery((async e=>{const i=e.getRepository(jr),a=new Date;let n=i.createQueryBuilder().update(jr).set({statusId:t?.values?.statusId,inviteeUserId:t?.values?.inviteeUserId,inviteeEmail:t?.values?.inviteeEmail,inviteeSecurityRoleId:t?.values?.inviteeSecurityRoleId,trackerImeis:t?.values?.trackerImeis?.split(",")??null,trackerAccess:t?.values?.trackerAccess,minAccessDate:t?.values?.minAccessDate,boundaries:t?.values?.boundaries?.split(",")?.map(Number)??null,boundaryAccess:t?.values?.boundaryAccess,tasksAccess:t?.values?.tasksAccess,modifiedAt:a});return n=n.where("id = :id",{id:r}),(await n.execute()).affected>0}),"UsersRepository::updateUserInvitation"):(i.warn({params:t},"UsersRepository::updateUserInvitation - missing required parameters"),!1):(i.warn({invitationId:t?.filters?.id},"UsersRepository::updateUserInvitation - user invitation id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserInvitationsRepository::updateUserInvitation result"),i}async createUserInvitation(e){this.logger.trace(e,"UserInvitationsRepository::createUserInvitation started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.inviterClientId&&t?.inviterUserId&&t?.inviteeEmail&&t?.inviteeSecurityRoleId&&t?.statusId?e.safeQuery((async e=>{const i=e.getRepository(jr),r=new Date,a={...t,boundaries:t?.boundaries?.split(",")?.map(Number)??null,trackerImeis:t?.trackerImeis?.split(",")??null,createdAt:r,modifiedAt:r};return i.save(a)}),"UsersRepository::createUserInvitation"):(i.warn({params:t},"UsersRepository::createUserInvitation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserInvitationsRepository::createUserInvitation result"),i}},UserRatingRequestsRepository:class extends ta{async getUserRatingRequests(e){this.logger.trace(e,"UserRatingRequestsRepository::getUserRatingRequests started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - missing required parameters"),[];const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(zr).createQueryBuilder("userRatingRequest");return t&&i.setQueryRunner(t),i=i.where("userRatingRequest.userId = :userId",{userId:r}),i=i.orderBy("userRatingRequest.requestDate","DESC"),await i.getMany()}),"UserRatingRequestsRepository::getUserRatingRequests",a)})(t,e,this.logger);return this.logger.trace(i,"UserRatingRequestsRepository::getUserRatingRequests result"),i}async createUserRatingRequest(e){this.logger.trace(e,"UserRatingRequestsRepository::createUserRatingRequest started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.clientId&&t?.deviceManufacturer&&t?.deviceOs&&t.deviceOsVersion&&t?.appVersion))return i.warn({params:t},"UserRatingRequestsRepository::createUserRatingRequest - missing required parameters"),null;const r=ra(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(zr),a={id:t?.id,userId:r,clientId:t.clientId,deviceManufacturer:t.deviceManufacturer,deviceOs:t.deviceOs,deviceOsVersion:t.deviceOsVersion,appVersion:t.appVersion,requestDate:t.requestDate,amazonRequestDate:t.amazonRequestDate,deviceIdentifierKey:t.deviceIdentifierKey};return await i.save(a)}),"UserRatingRequestsRepository::createUserRatingRequest"):(i.warn({userId:t?.userId},"UserRatingRequestsRepository::createUserRatingRequest - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserRatingRequestsRepository::createUserRatingRequest result"),i}},UserRegistrationAttemptsRepository:class extends ta{async getUserRegistrationAttempts(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.tempUserId)return i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - missing required parameters"),[];const r=ra(t?.filters?.tempUserId);if(t?.filters?.tempUserId&&!r?.length)return i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(Vr).createQueryBuilder("userRegistrationAttempt");return i&&a.setQueryRunner(i),t?.filters?.id&&(a=a.andWhere("userRegistrationAttempt.id = :id",{id:t?.filters?.id})),t?.filters?.tempUserId&&(a=a.andWhere("userRegistrationAttempt.tempUserId = :tempUserId",{tempUserId:r})),await a.getMany()}),"UserRegistrationAttemptsRepository::getUserRegistrationAttempts",a)})(t,e,this.logger);return this.logger.trace(i,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts result"),i}async createUserRegistrationAttempt(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::createUserRegistrationAttempt started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.firstName||t?.lastName||t?.email||t?.phoneNumber||t?.phoneCode||t?.phoneCodeCountryId||t?.imei||t?.platform||t?.status||t?.tempUserId))return i.warn({params:t},"UserRegistrationAttemptsRepository::createUserRegistrationAttempt - missing required parameters"),null;const r=ra(t?.tempUserId);return t?.tempUserId&&!r?.length?(i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(Vr),a={id:t?.id,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phoneNumber:t?.phoneNumber,phoneCode:t?.phoneCode,phoneCodeCountryId:t?.phoneCodeCountryId,imei:t?.imei,platform:t?.platform,status:t?.status,tempUserId:r,createdAt:new Date};return await i.save(a)}),"UserRegistrationAttemptsRepository::createUserRegistrationAttempt")})(t,e,this.logger);return this.logger.trace(i,"UserRegistrationAttemptsRepository::createUserRegistrationAttempt result"),i}async updateUserRegistrationAttempt(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.clientId||t?.values?.userName||t?.values?.pin||t?.values?.street||t?.values?.city||t?.values?.state||t?.values?.postalCode||t?.values?.country||t?.values?.countryCode)?e.safeQuery((async e=>{const i=e.getRepository(Vr).createQueryBuilder().update(Vr).set({clientId:t?.values?.clientId,userName:t?.values?.userName,pin:t?.values?.pin,street:t?.values?.street,city:t?.values?.city,state:t?.values?.state,postalCode:t?.values?.postalCode,country:t?.values?.country,countryCode:t?.values?.countryCode,lastUpdatedAt:new Date}).where("id = :id",{id:t?.filters?.id});return(await i.execute()).affected>0}),"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt"):(i.warn({params:t},"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt result"),i}},UsersRepository:class extends ta{async getUserById(e){this.logger.trace(e,"UsersRepository::getUserById started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Xa(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUserById result"),i}async getUsers(e){this.logger.trace(e,"UsersRepository::getUsers started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.emailList?.length||t?.filters?.userName||t?.filters?.clientId||t?.filters?.search||t?.filters?.status||t?.filters?.tagIdList?.length))return i.warn({params:t},"UsersRepository::getUsers - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Re).createQueryBuilder("user");if(i&&(r=r.setQueryRunner(i)),t.filters.emailList?.length&&(r=r.where("LOWER(user.email) IN (:...emailList)",{emailList:t.filters.emailList.map((e=>e.trim().toLowerCase()))})),t.filters.userName&&(r=r.andWhere("(LOWER(user.userName) = LOWER(:userName) OR LOWER(user.preferredUserName) = LOWER(:userName))",{userName:t.filters.userName.trim()})),t.filters.clientId&&(r=r.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.search){const e=ra(t.filters.search);r=r.andWhere("(LOWER(user.userName) = LOWER(:search) OR \n LOWER(user.preferredUserName) = LOWER(:search) OR \n LOWER(user.email) = LOWER(:search) OR \n user.id = :binaryBuffer)",{search:t.filters.search.trim(),binaryBuffer:e})}t.filters.status&&(r=r.andWhere("user.status = :status",{status:t.filters.status})),t.filters.tagIdList?.length&&r.innerJoin(Nt,"entityTag","entityTag.entityId = user.numberId \n AND entityTag.entityType = 'User'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),r=r.orderBy("user.lastname","DESC"),t.projectionOptions?.withSecurityRole&&(r=r.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole")),t.projectionOptions?.withCountryInfo&&(r=r.leftJoinAndSelect("user.telephoneCountry","telephoneCountry").leftJoinAndSelect("user.country","country")),t.projectionOptions?.withUserConfiguration&&(r=r.leftJoinAndSelect("user.userConfiguration","userConfiguration")),t.projectionOptions?.withClientAlertNotificationOverride&&(r=r.leftJoinAndSelect("user.clientAlertNotificationOverride","clientAlertNotificationOverride"));let a=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Nt);a=await Promise.all(a.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.numberId,entityType:"User"}).innerJoin(ri,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return a}),"UsersRepository::getUsers",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsers result"),i}async getUsersConfigurationByImei(e){this.logger.trace(e,"UsersRepository::getUsersConfigurationByImei started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UsersRepository::getUsersConfigurationByImei - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Re).createQueryBuilder("user");return i&&r.setQueryRunner(i),r.innerJoin("user.client","client").innerJoinAndSelect("client.devices","device").innerJoinAndSelect("user.userConfiguration","userConfiguration").innerJoinAndSelect("user.userAlertConfiguration","userAlertConfiguration").innerJoinAndSelect("user.country","country").where("device.imei = :imei",{imei:t.filters.imei}).getMany()}),"UsersRepository::getUsersConfigurationByImei",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersConfigurationByImei result"),i}async getUsersIdsByPhoneAndCountryCode(e){this.logger.trace(e,"UsersRepository::getUsersIdsByPhoneAndCountryCode started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.phone||!t?.filters?.countryCode)return i.warn({params:t},"UsersRepository::getUsersIdsByPhoneAndCountryCode - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Re).createQueryBuilder("user").innerJoin(pe,"country","country.id = user.countryId").where("country.alpha2Code = :countryCode",{countryCode:t.filters.countryCode}).andWhere("user.telephone = REPLACE(:phone, country.internationalDirectDialing, '')",{phone:t.filters.phone});i&&(r=r.setQueryRunner(i)),r=r.select("user.id as id");const a=await r.getRawMany();return a?.map((e=>aa(e.id)))}),"UsersRepository::getUsersIdsByPhoneAndCountryCode",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersIdsByPhoneAndCountryCode result"),i}async getUsersWithRoles(e){this.logger.trace(e,"UsersRepository::getUsersWithRoles started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await un(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersWithRoles result"),i}async createUser(e){this.logger.trace(e,"UsersRepository::createUser started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.id&&t?.firstName&&t?.lastName&&t?.email&&t?.userName&&t?.clientId))return i.warn({params:t},"UsersRepository::createUser - missing required parameters"),null;const r=ra(t?.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Re),a=new Date,n={id:r,firstName:t.firstName,lastName:t.lastName,companyName:t.companyName,telephone:t.telephone,street:t.street,postalCode:t.postalCode,city:t.city,region:t.region,email:t.email?.toLowerCase(),userName:t.userName,preferredUserName:t.preferredUserName,status:t.status??"A",clientId:t.clientId,pincode:t.pinCode,isAdmin:t.isAdmin??!1,countryId:t.countryId,telephoneCountryId:t.telephoneCountryId,dataSourceTypeId:t.dataSourceTypeId,emailVerified:t.emailVerified??!0,createdAt:a,modifiedAt:a};return await i.save(n)}),"UsersRepository::createUser"):(i.warn({params:t},"UsersRepository::createUser - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::createUser result"),i}async deleteUser(e){this.logger.trace(e,"UsersRepository::deleteUser started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.id)return i.warn({params:t},"UsersRepository::deleteUser - missing required parameters"),!1;const r=ra(t?.id);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(Re);return(await t.createQueryBuilder("user").delete().where("id = :id",{id:r}).execute()).affected>0}),"UsersRepository::deleteUser"):(i.warn({params:t},"UsersRepository::deleteUser - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUser result"),i}async updateUser(e){this.logger.trace(e,"UsersRepository::updateUser started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=ra(t?.filters?.userId);if(!(r||t?.filters?.email||t?.filters?.statusList?.length||t?.filters?.userName))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;if(!(void 0!==t?.values?.city||void 0!==t?.values?.companyName||t?.values?.countryCode||t?.values?.countryId||t?.values?.dataSourceTypeId||t?.values?.email||null!=t?.values?.emailVerified||t?.values?.firstName||null!=t?.values?.isAdmin||t?.values?.lastName||t?.values?.postalCode||t?.values?.pinCode||t?.values?.preferredUserName||void 0!==t?.values?.region||t?.values?.status||void 0!==t?.values?.street||void 0!==t?.values?.telephone||t?.values?.telephoneCountryCode||t?.values?.telephoneCountryId||t?.values?.userName||t?.values?.latitude||t?.values?.longitude||t?.values?.lastLoginAt))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;let a=t.values.countryId;!a&&t.values.countryCode&&(a=await cn(t.values.countryCode,e,i));let n=t.values.telephoneCountryId;return!n&&t.values.telephoneCountryCode&&(n=await cn(t.values.telephoneCountryCode,e,i)),e.safeQuery((async e=>{const i=e.getRepository(Re),o=new Date;let s=i.createQueryBuilder().update(Re).set({firstName:t.values.firstName,lastName:t.values.lastName,companyName:t.values.companyName,telephone:t.values.telephone,street:t.values.street,pincode:t.values.pinCode,postalCode:t.values.postalCode,city:t.values.city,region:t.values.region,email:t.values.email?.toLowerCase(),userName:t.values.userName,preferredUserName:t.values.preferredUserName,status:t.values.status,isAdmin:t.values.isAdmin,countryId:a,telephoneCountryId:n,dataSourceTypeId:t.values.dataSourceTypeId,emailVerified:t.values.emailVerified,modifiedAt:o,lat:t.values.latitude,lon:t.values.longitude,lastLoginAt:t.values.lastLoginAt});return r&&(s=s.andWhere("id = :id",{id:r})),t.filters.email&&(s=s.andWhere("LOWER(email) = LOWER(:email)",{email:t.filters.email})),t.filters.statusList?.length&&(s=s.andWhere("status IN (:statusList)",{statusList:t.filters.statusList})),t.filters.userName&&(s=s.andWhere("userName = :userName",{userName:t.filters.userName})),(await s.execute()).affected>0}),"UsersRepository::updateUser")})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::updateUser result"),i}async getUsersData(e){this.logger.trace(e,"UsersRepository::getUsersData started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UsersRepository::getUsersData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>(await i.query("SELECT U.id as userId, U.telephone, U.email\n , UC.isMetric, coalesce (UC.timezone, '') as timezone, UC.alertsNotificationsOn, UC.speedUnits , UC.distanceUnits\n , AC.alertTypeId, AC.smsNotification, AC.emailNotification, AC.alertValue, AC.pushNotification , AC.appNotification , AC.alertMetadata\n , AC.id as userAlertConfigurationId, AC.name as alertName, AC.filter, AC.enabled\n , D.name as deviceName, D.deviceTypeId\n , C.id as clientId\n , U.isAdmin\n , CO.internationalDirectDialing\n , ( SELECT CONCAT('[',\n GROUP_CONCAT( distinct case when NR.isUserProfile = true\n then CONCAT('\"', U.telephone, '\"') else CONCAT('\"', NR.recipient, '\"') end SEPARATOR ','), \n ']') AS JSON\n from notificationRecipient as NR\n where NR.clientId = C.id\n and NR.userId = U.id\n and NR.notificationType = 2\n and NR.isEnabled = true\n and NR.unsubscribed = false \n and (NR.userAlertConfigurationId IS NULL or NR.userAlertConfigurationId = AC.id )) as phoneNumbers\n , ( SELECT CONCAT('[',\n GROUP_CONCAT( distinct case when NR.isUserProfile = true\n then CONCAT('\"', U.email, '\"') else CONCAT('\"', NR.recipient, '\"') end SEPARATOR ','),\n ']') AS JSON\n from notificationRecipient as NR\n where NR.clientId = C.id\n and NR.userId = U.id\n and NR.notificationType = 1\n and NR.isEnabled = true\n and NR.unsubscribed = false\n and (NR.userAlertConfigurationId IS NULL or NR.userAlertConfigurationId = AC.id ) ) as emailAddresses\n FROM device AS D\n JOIN client AS C\n ON D.clientId = C.id\n JOIN user AS U\n ON U.clientId = C.id and U.status = 'A'\n JOIN userConfiguration AS UC\n ON UC.userId = U.id\n JOIN userAlertConfiguration as AC\n ON AC.userId = U.id\n JOIN alertType AS A\n ON A.id = AC.alertTypeId\n JOIN country AS CO\n ON CO.id = CASE WHEN(U.countryId IS NULL OR U.countryId = 0) THEN 236 ELSE U.countryId END\n WHERE D.imei = ?",[t.filters.imei])).map((e=>({...e,userId:aa(e.userId),isAdmin:1===e.isAdmin,isMetric:1===e.isMetric,alertsNotificationOn:1===e.alertsNotificationsOn,smsNotification:1===e.smsNotification,emailNotification:1===e.emailNotification,pushNotification:1===e.pushNotification,appNotification:1===e.appNotification,phoneNumbers:e.phoneNumbers?JSON.parse(e.phoneNumbers):[],emailAddresses:e.emailAddresses?JSON.parse(e.emailAddresses):[]})))),"UsersRepository::getUsersData",r)})(t,e,this.logger);return this.logger.trace({resultCount:i?.length??0},"UsersRepository::getUsersData result count"),i}async deleteAccount(e){this.logger.trace(e,"UsersRepository::deleteAccount started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{let r=ra(t?.filters?.userId);await e.connect();const a=e.createQueryRunner();try{if(!r&&t?.filters?.email){const i=e.getRepository(Re),a=await i.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();a&&(r=a.id)}let i=t.filters.clientId;if(!i&&t.filters.email){const r=e.getRepository(ce),a=await r.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();a&&(i=a.id)}await a.startTransaction();let n=!1;if(i){await a.manager.delete(ve,{clientId:i}),await a.manager.delete(Se,{clientId:i}),await a.manager.delete(jr,{inviterClientId:i});const e=await a.manager.createQueryBuilder().select("boundary.id").from(Xe,"boundary").where("boundary.clientId = :clientId",{clientId:i}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(Ye,"boundaryEvent").where("boundaryEvent.boundaryId IN (:ids)",{ids:e.map((e=>e.id))}).execute(),await a.manager.delete(Xe,{clientId:i})),await a.manager.delete(ni,{clientId:i}),await a.manager.delete(tt,{clientId:i}),await a.manager.delete(ot,{clientId:i}),n=(await a.manager.delete(ce,i)).affected>0}let o=!1;if(r){await a.manager.delete(Ie,{userId:r}),await a.manager.delete(he,{userId:r});const e=await a.manager.createQueryBuilder().select("userActivation.id").from(di,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(ui,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await a.manager.delete(di,{userId:r})),await a.manager.delete(zr,{userId:r}),await a.manager.delete(mi,{userId:r}),o=(await a.manager.delete(Re,{id:r})).affected>0}return await a.commitTransaction(),n||o}catch(e){throw await a.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteAccount error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteAccount result"),i}async getUserClientRelatedEntitiesCount(e){this.logger.trace(e,"UsersRepository::getUserClientRelatedEntitiesCount started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.userId)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - missing required parameters"),null;const r=ra(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(ce).createQueryBuilder("client").select("client.id","clientId");return i&&a.setQueryRunner(i),t.projectionOptions?.withDevicesCount&&a.addSelect((e=>e.select("COUNT(*)","devicesCount").from("device","d").where("client.id = d.clientId").andWhere("d.status = :deviceStatus",{deviceStatus:h.Active})),"devicesCount"),t.projectionOptions?.withBoundariesCount&&a.addSelect((e=>e.select("COUNT(*)","boundariesCount").from("boundary","b").where("client.id = b.clientId").andWhere("b.status = :boundaryStatus",{boundaryStatus:f.Active})),"boundariesCount"),t.projectionOptions?.withUsersCount&&a.addSelect((e=>e.select("COUNT(*)","usersCount").from("user","u").where("client.id = u.clientId").andWhere("u.status = :userStatus",{userStatus:I.Active})),"usersCount"),a.where("EXISTS (\n SELECT 1\n FROM user u2\n WHERE client.id = u2.clientId\n AND u2.id = :userId\n LIMIT 1\n )",{userId:r}),await a.getRawOne()}),"UsersRepository::getUserClientRelatedEntitiesCount",a)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUserClientRelatedEntitiesCount result"),i}async getUsersInfoWithDevicesInfo(e){this.logger.trace(e,"UsersRepository::getUsersInfoWithDevicesInfo started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userName)return i.warn({params:t},"UsersRepository::getUsersInfoWithDevicesInfo - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Re).createQueryBuilder("user").innerJoin(le,"device","device.clientId = user.clientId and device.status = :status",{status:h.Active}).where("LOWER(user.userName) = LOWER(:userName)",{userName:t.filters.userName.trim()}).orderBy("user.email","ASC").select(["user.id as userId","user.firstName as firstName","user.lastName as lastName","user.email as email","user.userName as userName","device.imei as imei","device.name as deviceName"]);i&&r.setQueryRunner(i);const a=await r.getRawMany(),n=[],o=[];return a.forEach((e=>{const t=aa(e.userId);o.includes(t)||(o.push(t),n.push({userId:t,firstName:e.firstName,lastName:e.lastName,email:e.email,userName:e.userName,devices:[]}));const i=n.findIndex((e=>e.userId===t));n[i].devices.push({imei:e.imei,name:e.deviceName})})),n}),"UsersRepository::getUsersInfoWithDevicesInfo",r)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUsersInfoWithDevicesInfo result"),i}async getUserInfoWithAmazonDevicesInfo(e){this.logger.trace(e,"UsersRepository::getUserInfoWithAmazonDevicesInfo started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - missing required parameters"),null;const r=ra(t.filters.userId);if(!r)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - invalid user ID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(Re).createQueryBuilder("user").innerJoin(ce,"client","client.id = user.clientId").innerJoin(le,"device","device.clientId = user.clientId and device.status = :deviceStatus",{deviceStatus:h.Active}).innerJoin(se,"deviceType","device.deviceTypeId = deviceType.id").leftJoin(s,"acumaticaImeiIccidData","device.imei = acumaticaImeiIccidData.imei").leftJoin(d,"acumaticaShipment","acumaticaImeiIccidData.amazonShipmentId = acumaticaShipment.shipmentId and \n acumaticaShipment.location IS NOT NULL and acumaticaShipment.location <> ''").where("user.id = :userId and user.status = :userStatus",{userId:r,userStatus:I.Active}).distinct(!0).select(["user.id as userId","user.email as email","client.id as clientId","client.useType as useType","client.clientTypeId as clientTypeId","device.imei as imei","device.name as deviceName","device.status as deviceStatus","device.createdAt as deviceCreatedAt","deviceType.id as deviceTypeId","deviceType.brand as deviceBrand","deviceType.model as deviceModel","deviceType.name as deviceTypeName","deviceType.supported as deviceTypeSupported","deviceType.modelFamily as deviceTypeModelFamily","acumaticaShipment.location as amazonShipment","case when acumaticaShipment.location is not null and acumaticaShipment.location <> '' then true else false end as isAmazonDevice"]);let n;return i&&a.setQueryRunner(i),(await a.getRawMany()).forEach((e=>{n||(n={userId:t.filters.userId,email:e.email,clientId:e.clientId,useType:e.useType,clientTypeId:e.clientTypeId,devices:[]}),n.devices.push({imei:e.imei,name:e.deviceName,status:e.deviceStatus,createdAt:e.deviceCreatedAt,amazonShipment:e.amazonShipment,isAmazonDevice:1==e.isAmazonDevice,deviceType:{id:e.deviceTypeId,brand:e.deviceBrand,model:e.deviceModel,name:e.deviceTypeName,supported:1==e.deviceTypeSupported,modelFamily:e.deviceTypeModelFamily}})})),n}),"UsersRepository::getUserInfoWithAmazonDevicesInfo",a)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUserInfoWithAmazonDevicesInfo result"),i}async deleteUserData(e){this.logger.trace(e,"UsersRepository::deleteUserData started with params");const t=new Zr(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.id)return i.warn({params:t},"UsersRepository::deleteUserData - missing required parameters"),!1;const r=ra(t?.id);if(!r?.length)return i.warn({params:t},"UsersRepository::deleteUserData - user id should be a valid UUID"),!1;await e.connect();const a=e.createQueryRunner();try{await a.startTransaction(),await a.manager.delete(ve,{userId:r}),await a.manager.delete(Se,{userId:r}),await a.manager.delete(jr,{inviteeUserId:t.id}),await a.manager.delete(Ie,{userId:r}),await a.manager.delete(he,{userId:r});const e=await a.manager.createQueryBuilder().select("userActivation.id").from(di,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(ui,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await a.manager.delete(di,{userId:r})),await a.manager.delete(zr,{userId:r}),await a.manager.delete(mi,{userId:r});const i=await a.manager.delete(Re,{id:r});return await a.commitTransaction(),i.affected>0}catch(e){throw await a.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteUserData error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUserData result"),i}}});const mn={uuidStringToBinaryBuffer:ra,binaryBufferToUuidString:aa,getRandomBoolean:()=>Math.random()<.5,getRandomImei:(e=15)=>{const t="0123456789";let i="";for(let r=0;r<e;r++){const e=Math.floor(10*Math.random());i+=t.charAt(e)}return i},getRandomDateInRange:e=>{const t=new Date,i=new Date(t);i.setDate(t.getDate()-e);const r=new Date(t);r.setDate(t.getDate()+e);const a=i.getTime()+Math.random()*(r.getTime()-i.getTime());return new Date(a)},getRandomInteger:e=>Math.floor(Math.random()*e)+1,getRandomString:e=>{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let i="";for(let r=0;r<e;r++){const e=Math.floor(62*Math.random());i+=t.charAt(e)}return i},tryParseBoolean:(e,t=null)=>"boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase():t,tryParseDate:(e,t=null)=>{try{return e?new Date(e.toString()):t}catch(e){return t}},tryParseFloat:(e,t=null)=>{const i=Number.parseFloat(e);return Number.isNaN(i)?t:i},allAttributesAreNull:ga,anyAttributeInArrayIsNull:ma,anyAttributeIsNull:pa,now:Ca,addMonthsToNow:e=>Ia.utc().add(e,"month").toDate()};exports.ConsoleLogger=ea,exports.Entities=Jr,exports.Enums=H,exports.NovaDataSource=Zr,exports.Repositories=pn,exports.Types=qr,exports.Utils=mn;
1
+ "use strict";var e=require("typeorm"),t=require("uuid");function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var r=i(require("dayjs"));function a(e,t,i,r){var a,n=arguments.length,o=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(o=(n<3?a(o):n>3?a(t,i,o):a(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o}function n(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}"function"==typeof SuppressedError&&SuppressedError;let o=class{id;sku;asin;description;reviewUrl;productUrl};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],o.prototype,"id",void 0),a([e.Column("varchar",{name:"sku",length:50}),n("design:type",String)],o.prototype,"sku",void 0),a([e.Column("varchar",{name:"asin",length:50}),n("design:type",String)],o.prototype,"asin",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],o.prototype,"description",void 0),a([e.Column("varchar",{name:"reviewUrl",nullable:!0,length:1e3}),n("design:type",String)],o.prototype,"reviewUrl",void 0),a([e.Column("varchar",{name:"productUrl",nullable:!0,length:1e3}),n("design:type",String)],o.prototype,"productUrl",void 0),o=a([e.Entity("acumaticaAmazonProduct",{schema:"nova"})],o);let s=class{id;imei;iccid;amazonShipmentId;deviceModel;deviceCarrier;carrierNetwork;carrierProductId;poNbr;createdBy;createdDate;lastModifiedDate;shipDate;asin;countryCode};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],s.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:50}),n("design:type",String)],s.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:50}),n("design:type",String)],s.prototype,"iccid",void 0),a([e.Column("varchar",{name:"amazonShipmentId",nullable:!0,length:50}),n("design:type",String)],s.prototype,"amazonShipmentId",void 0),a([e.Column("varchar",{name:"deviceModel",nullable:!0,length:50}),n("design:type",String)],s.prototype,"deviceModel",void 0),a([e.Column("varchar",{name:"deviceCarrier",nullable:!0,length:50}),n("design:type",String)],s.prototype,"deviceCarrier",void 0),a([e.Column("varchar",{name:"carrierNetwork",nullable:!0,length:50}),n("design:type",String)],s.prototype,"carrierNetwork",void 0),a([e.Column("varchar",{name:"carrierProductId",nullable:!0,length:50}),n("design:type",String)],s.prototype,"carrierProductId",void 0),a([e.Column("varchar",{name:"poNbr",nullable:!0,length:50}),n("design:type",String)],s.prototype,"poNbr",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],s.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"createdDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"createdDate",void 0),a([e.Column("varchar",{name:"lastModifiedDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"lastModifiedDate",void 0),a([e.Column("varchar",{name:"shipDate",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipDate",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],s.prototype,"asin",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],s.prototype,"countryCode",void 0),s=a([e.Index("ixAcumaticaImeiIccidDataIccid",["iccid"],{}),e.Index("ixAcumaticaImeiIccidDataImei",["imei"],{}),e.Index("ixAcumaticaImeiIccidDataAmazonShipmentId",["amazonShipmentId"],{}),e.Entity("acumaticaImeiIccidData",{schema:"nova"})],s);let l=class{id;imei;shipmentNumber;shipmentStatus;shipmentDate;orderType;orderStatus;iccid;sku};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],l.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],l.prototype,"imei",void 0),a([e.Column("varchar",{name:"shipmentNumber",nullable:!0,length:50}),n("design:type",String)],l.prototype,"shipmentNumber",void 0),a([e.Column("varchar",{name:"shipmentStatus",nullable:!0,length:50}),n("design:type",String)],l.prototype,"shipmentStatus",void 0),a([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],l.prototype,"shipmentDate",void 0),a([e.Column("varchar",{name:"orderType",nullable:!0,length:10}),n("design:type",String)],l.prototype,"orderType",void 0),a([e.Column("varchar",{name:"orderStatus",nullable:!0,length:50}),n("design:type",String)],l.prototype,"orderStatus",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:255}),n("design:type",String)],l.prototype,"iccid",void 0),a([e.Column("varchar",{name:"sku",nullable:!0,length:50}),n("design:type",String)],l.prototype,"sku",void 0),l=a([e.Entity("acumaticaOrderShipmentDetails",{schema:"nova"}),e.Index("ixAcumaticaOrderShipmentDetails_imei_shipmentDate",["imei","shipmentDate"],{})],l);let d=class{shipmentId;shipmentDate;location};a([e.PrimaryColumn("varchar",{name:"shipmentId",length:50}),n("design:type",String)],d.prototype,"shipmentId",void 0),a([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],d.prototype,"shipmentDate",void 0),a([e.Column("varchar",{name:"location",nullable:!0,length:6}),n("design:type",String)],d.prototype,"location",void 0),d=a([e.Entity("acumaticaShipment",{schema:"nova"})],d);let u=class{shipmentId;asin};a([e.Column("varchar",{name:"shipmentId",primary:!0,length:50}),n("design:type",String)],u.prototype,"shipmentId",void 0),a([e.Column("varchar",{name:"asin",primary:!0,length:50}),n("design:type",String)],u.prototype,"asin",void 0),u=a([e.Entity("acumaticaShipmentAmazon",{schema:"nova"})],u);let c=class{id;clientId;token;createdAt;updatedAt;expiresAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],c.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],c.prototype,"clientId",void 0),a([e.Column("binary",{name:"token",length:16}),n("design:type",Buffer)],c.prototype,"token",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],c.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],c.prototype,"updatedAt",void 0),a([e.Column("datetime",{name:"expiresAt",nullable:!0}),n("design:type",Date)],c.prototype,"expiresAt",void 0),c=a([e.Index("ixuAempToken_Token",["token"],{unique:!0}),e.Entity("aempToken",{schema:"nova"})],c);class p{to(e){if(null===e)return null;if(void 0===e)return;return e?1:0}from(e){return null===e?null:void 0!==e?1==e:void 0}}let m=class{id;name;title;description;isSystem;icon;context;identifier;stage;category;key;createdAt};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],m.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],m.prototype,"name",void 0),a([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],m.prototype,"title",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],m.prototype,"description",void 0),a([e.Column("tinyint",{name:"isSystem",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],m.prototype,"isSystem",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],m.prototype,"icon",void 0),a([e.Column("varchar",{name:"context",nullable:!0,length:25}),n("design:type",String)],m.prototype,"context",void 0),a([e.Column("varchar",{name:"identifier",nullable:!0,length:50}),n("design:type",String)],m.prototype,"identifier",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],m.prototype,"stage",void 0),a([e.Column("varchar",{name:"category",nullable:!0,length:25}),n("design:type",String)],m.prototype,"category",void 0),a([e.Column("varchar",{name:"key",nullable:!0,length:50}),n("design:type",String)],m.prototype,"key",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],m.prototype,"createdAt",void 0),m=a([e.Index("ixAlertTypeStage",["stage"],{}),e.Entity("alertType",{schema:"nova"})],m);let g=class{id;alertTypeId;alertType;value;createdAt;userId;messageId;boundaryId;imei;sendTime;lat;lon;address;clientId;isBuffer;isNotification;gpsUtcTime;relevantAddress;gpsMessageId;cellTowerRelevantAddress;userAlertConfigurationId;clientAlertConfigurationId;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],g.prototype,"id",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],g.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],g.prototype,"alertType",void 0),a([e.Column("varchar",{name:"value",nullable:!0,length:5e3}),n("design:type",String)],g.prototype,"value",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],g.prototype,"createdAt",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],g.prototype,"userId",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],g.prototype,"messageId",void 0),a([e.Column("int",{name:"boundaryId",nullable:!0}),n("design:type",Number)],g.prototype,"boundaryId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],g.prototype,"imei",void 0),a([e.Column("datetime",{name:"sendTime",precision:3}),n("design:type",Date)],g.prototype,"sendTime",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],g.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],g.prototype,"lon",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],g.prototype,"address",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],g.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"isBuffer",nullable:!0,width:1}),n("design:type",Boolean)],g.prototype,"isBuffer",void 0),a([e.Column("tinyint",{name:"isNotification",nullable:!0,width:1}),n("design:type",Boolean)],g.prototype,"isNotification",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],g.prototype,"gpsUtcTime",void 0),a([e.Column("varchar",{name:"relevantAddress",nullable:!0,length:255}),n("design:type",String)],g.prototype,"relevantAddress",void 0),a([e.Column("binary",{name:"gpsMessageId",nullable:!0,length:16}),n("design:type",Buffer)],g.prototype,"gpsMessageId",void 0),a([e.Column("varchar",{name:"cellTowerRelevantAddress",nullable:!0,length:255}),n("design:type",String)],g.prototype,"cellTowerRelevantAddress",void 0),a([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],g.prototype,"userAlertConfigurationId",void 0),a([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],g.prototype,"clientAlertConfigurationId",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],g.prototype,"deleted",void 0),g=a([e.Index("ixAlertUserId_Imei_AlertTypeId_SendTime",["userId","imei","alertTypeId","sendTime"],{}),e.Index("ixAlertUserId_AlertTypeId_SendTime",["userId","alertTypeId","sendTime"],{}),e.Index("ixAlertImei",["imei"],{}),e.Index("ixAlertSendTime",["sendTime"],{}),e.Entity("alert",{schema:"nova"})],g);let y=class{id;name;description;statusId};var v,h,f,I,C,b,S,R,D,w,A,T,N,B,U,E,P,M,O,x,k,L,F,Q,q,W,_,j,z,V,G,J,H,K;a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],y.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],y.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],y.prototype,"description",void 0),a([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],y.prototype,"statusId",void 0),y=a([e.Entity("appFeatureType",{schema:"nova"})],y),function(e){e[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner"}(v||(v={})),function(e){e.Active="A",e.Deleted="D",e.Terminated="T",e.Replaced="R"}(h||(h={})),function(e){e[e.Active=1]="Active",e[e.Inactive=2]="Inactive",e[e.Deleted=3]="Deleted"}(f||(f={})),function(e){e.Active="A",e.Deleted="D"}(I||(I={})),function(e){e[e.Pending=1]="Pending",e[e.Redeemed=2]="Redeemed",e[e.Canceled=3]="Canceled"}(C||(C={})),function(e){e[e.b2c=1]="b2c",e[e.b2b=2]="b2b",e[e.test=3]="test"}(b||(b={})),function(e){e.b2c="b2c",e.b2b="b2b",e.test="test"}(S||(S={})),function(e){e.Personal="personal",e.Business="business"}(R||(R={})),function(e){e[e.b2c=3]="b2c",e[e.b2b=50]="b2b"}(D||(D={})),function(e){e.ReportingFrequency="ReportingFrequency",e.Advanced="Advanced",e.Query="Query",e.General="General"}(w||(w={})),function(e){e.Active="active",e.Inactive="inactive"}(A||(A={})),function(e){e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed"}(T||(T={})),function(e){e[e.Email=1]="Email",e[e.Phone=2]="Phone"}(N||(N={})),function(e){e[e.CreditCard=1]="CreditCard",e[e.Email=2]="Email",e[e.Address=3]="Address",e[e.Ip=4]="Ip",e[e.Imei=5]="Imei",e[e.ClientId=6]="ClientId"}(B||(B={})),function(e){e[e.Trip=1]="Trip",e[e.Stop=2]="Stop"}(U||(U={})),function(e){e[e.Current=1]="Current",e[e.Completed=2]="Completed",e[e.Deleted=3]="Deleted",e[e.TempCurrent=10]="TempCurrent",e[e.TempCompleted=20]="TempCompleted"}(E||(E={})),function(e){e.Enter="boundaryEnter",e.Exit="boundaryExit"}(P||(P={})),function(e){e.FreeService="freeService",e.Discount="discount"}(M||(M={})),function(e){e.PendingSync="pendingSync",e.InProgress="inProgress",e.Synced="synced"}(O||(O={})),function(e){e.Positions="positions",e.Alerts="alerts",e.Messages="messages"}(x||(x={})),function(e){e.Started="started",e.Completed="completed",e.Failed="failed"}(k||(k={})),function(e){e.CREATE_CUSTOMER="CREATE_CUSTOMER",e.UPDATE_USER="UPDATE_USER",e.UPDATE_CLIENT="UPDATE_CLIENT",e.AVALARA_EXEMPT="AVALARA_EXEMPT",e.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",e.AVALARA_ITEM="AVALARA_ITEM",e.CREATE_DEVICE="CREATE_DEVICE",e.REMOVE_DEVICE="REMOVE_DEVICE",e.UPDATE_DEVICE="UPDATE_DEVICE",e.SUSPEND_DEVICE="SUSPEND_DEVICE",e.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",e.CANCEL_DEVICE="CANCEL_DEVICE"}(L||(L={})),function(e){e.Image="image",e.Video="video"}(F||(F={})),function(e){e.Front="front",e.Interior="interior"}(Q||(Q={})),function(e){e.SDCard="sdCard",e.Server="server"}(q||(q={})),function(e){e.TakePicture="takePicture",e.TakeVideo="takeVideo",e.UploadPicture="uploadPicture",e.UploadVideo="uploadVideo"}(W||(W={})),function(e){e.Requested="requested",e.Streaming="streaming",e.Closed="closed",e.Failed="failed"}(_||(_={})),function(e){e.shopify="shopify",e.braintree="braintree",e.acumatica="acumatica",e.klarna="klarna",e.amazon="amazon",e.braintree_amazon="braintree_amazon"}(j||(j={})),function(e){e.UNKNOWN="UNKNOWN",e.GV50="GV50",e.GV500="GV500",e.GL501="GL501",e.GL300="GL300",e.GL500="GL500",e.GV350="GV350",e.PRIME="PRIME",e.GV620="GV620",e.GL50="GL50",e.GB100="GB100",e.GL31="GL31",e.GL30="GL30",e.MCX101="MCX101",e.MCX301="MCX301",e.FMM00A="FMM00A"}(z||(z={})),function(e){e.new_activation="new_activation",e.reactivation="reactivation",e.subscription_change="subscription_change",e.resumption="resumption",e.device_swap="device_swap"}(V||(V={})),function(e){e[e.sieva=1]="sieva",e[e.manual=2]="manual",e[e.api=3]="api",e[e.web=4]="web",e[e.mobile=5]="mobile",e[e.ios=6]="ios",e[e.android=7]="android",e[e.activation_site=8]="activation_site"}(G||(G={})),function(e){e.Active="Active",e.Pending="Pending",e.Canceled="Canceled",e.Expired="Expired",e.PastDue="Past Due"}(J||(J={})),function(e){e.temporary="temporary",e.too_expensive="too_expensive",e.no_need="no_need",e.missing_features="missing_features",e.too_difficult="too_difficult",e.no_value="no_value",e.tech_issues="tech_issues",e.missing_hardware="missing_hardware",e.customer_service="customer_service",e.biz_change="biz_change",e.device_paused="device_paused",e.removed_from_account="removed_from_account",e.device_swapped="device_swapped",e.churnbuster_campaign_lost="churnbuster_campaign_lost",e.system_auto="system_auto",e.canceled_sub_active_sim_or_device="canceled_sub_active_sim_or_device"}(H||(H={})),function(e){e.customer="customer",e.customer_support="customer_support",e.system="system"}(K||(K={}));var $=Object.freeze({__proto__:null,get BlacklistType(){return B},get BoundaryEventType(){return P},get BoundaryStatus(){return f},get CameraSource(){return Q},get DataExportStatus(){return k},get DataExportType(){return x},get DeactivationCode(){return H},get DeactivationCreatedBy(){return K},get DeviceActivationSource(){return G},get DeviceBLEMeshStatus(){return O},get DeviceBehaviorStatus(){return A},get DeviceBehaviorTaskStatus(){return T},get DeviceBehaviorType(){return w},get DeviceCameraEventBehaviorType(){return W},get DeviceCameraMediaLocation(){return q},get DeviceEventType(){return V},get DeviceModels(){return z},get DevicePlatform(){return j},get DeviceStatus(){return h},get HapnClientType(){return b},get HapnClientTypeNames(){return S},get HapnSecurityRole(){return v},get HapnUseType(){return R},get M2SyncType(){return L},get MaxUsersAllowed(){return D},get MediaType(){return F},get NotificationRecipientType(){return N},get PromotionType(){return M},get StreamingStatus(){return _},get SubscriptionStatus(){return J},get TripCompletionStatus(){return E},get TripType(){return U},get UserInvitationStatus(){return C},get UserStatus(){return I}});let X=class{imei;promotionId;promotion};a([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],X.prototype,"imei",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],X.prototype,"promotionId",void 0),a([e.ManyToOne((()=>ee),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],X.prototype,"promotion",void 0),X=a([e.Entity("devicePromotion",{schema:"nova"})],X);let Y=class{deviceTypeId;promotionId;promotion};a([e.Column("smallint",{name:"deviceTypeId",primary:!0}),n("design:type",Number)],Y.prototype,"deviceTypeId",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Y.prototype,"promotionId",void 0),a([e.ManyToOne((()=>ee),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Y.prototype,"promotion",void 0),Y=a([e.Entity("deviceTypePromotion",{schema:"nova"})],Y);let Z=class{marketplaceId;promotionId;promotion};a([e.Column("varchar",{name:"marketplaceId",length:15,primary:!0}),n("design:type",String)],Z.prototype,"marketplaceId",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Z.prototype,"promotionId",void 0),a([e.ManyToOne((()=>ee),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Z.prototype,"promotion",void 0),Z=a([e.Entity("marketplacePromotion",{schema:"nova"})],Z);let ee=class{id;name;description;type;discount;discountBillingCycles;freeServiceMonths;startDate;endDate;status;bannerText;trackerText;marketplacePromotions;asinPromotions;devicePromotions;deviceTypePromotions};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ee.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],ee.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],ee.prototype,"description",void 0),a([e.Column("enum",{name:"type",enum:Object.values(M),comment:"The type of promotion: freeService or discount."}),n("design:type",String)],ee.prototype,"type",void 0),a([e.Column("decimal",{name:"discount",nullable:!0,precision:19,scale:4,comment:"The discount value if the type is discount offered in US Dollars."}),n("design:type",Number)],ee.prototype,"discount",void 0),a([e.Column("int",{name:"discountBillingCycles",nullable:!0,comment:"The number of billing cycles that the discount will be applied. Required when type is discount"}),n("design:type",Number)],ee.prototype,"discountBillingCycles",void 0),a([e.Column("int",{name:"freeServiceMonths",nullable:!0,comment:"The number of months that the service will be free. Required when type is freeService"}),n("design:type",Number)],ee.prototype,"freeServiceMonths",void 0),a([e.Column("datetime",{name:"startDate",comment:"The date that the promotion will start"}),n("design:type",Date)],ee.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0,comment:"The date that the promotion will end"}),n("design:type",Date)],ee.prototype,"endDate",void 0),a([e.Column("varchar",{name:"status",length:25,comment:"The status of the promotion: active, inactive"}),n("design:type",String)],ee.prototype,"status",void 0),a([e.Column("varchar",{name:"bannerText",nullable:!0,length:255}),n("design:type",String)],ee.prototype,"bannerText",void 0),a([e.Column("varchar",{name:"trackerText",nullable:!0,length:255}),n("design:type",String)],ee.prototype,"trackerText",void 0),a([e.OneToMany((()=>Z),(e=>e.promotion)),n("design:type",Array)],ee.prototype,"marketplacePromotions",void 0),a([e.OneToMany((()=>te),(e=>e.promotion)),n("design:type",Array)],ee.prototype,"asinPromotions",void 0),a([e.OneToMany((()=>X),(e=>e.promotion)),n("design:type",Array)],ee.prototype,"devicePromotions",void 0),a([e.OneToMany((()=>Y),(e=>e.promotion)),n("design:type",Array)],ee.prototype,"deviceTypePromotions",void 0),ee=a([e.Entity("promotion",{schema:"nova"})],ee);let te=class{asin;promotionId;promotion};a([e.Column("varchar",{name:"asin",length:15,primary:!0}),n("design:type",String)],te.prototype,"asin",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],te.prototype,"promotionId",void 0),a([e.ManyToOne((()=>ee),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],te.prototype,"promotion",void 0),te=a([e.Entity("asinPromotion",{schema:"nova"})],te);let ie=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ie.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ie.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],ie.prototype,"description",void 0),ie=a([e.Index("ixuAssetCategoryName",["name"],{unique:!0}),e.Entity("assetCategory",{schema:"nova"})],ie);let re=class{id;deviceId;assetProfile;name;value;type;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],re.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],re.prototype,"deviceId",void 0),a([e.OneToOne((()=>Be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],re.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],re.prototype,"name",void 0),a([e.Column("varchar",{name:"value",length:50}),n("design:type",String)],re.prototype,"value",void 0),a([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],re.prototype,"type",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],re.prototype,"createdAt",void 0),re=a([e.Index("ix_deviceId",["deviceId"],{}),e.Entity("assetProfileCustomField",{schema:"nova"})],re);let ae=class{id;deviceId;assetProfile;mediaType;fileName;fileExtension;s3FilesPath;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ae.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],ae.prototype,"deviceId",void 0),a([e.OneToOne((()=>Be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],ae.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"mediaType",length:15,comment:"The type of the media: image or document"}),n("design:type",String)],ae.prototype,"mediaType",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],ae.prototype,"fileName",void 0),a([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],ae.prototype,"fileExtension",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],ae.prototype,"s3FilesPath",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ae.prototype,"createdAt",void 0),ae=a([e.Index("ixu_deviceId_fileName",["deviceId","fileName"],{unique:!0}),e.Entity("assetProfileMedia",{schema:"nova"})],ae);const ne={to(e){if(!e)return null;try{const i=t.parse(e);return Buffer.from(i)}catch(t){throw new TypeError(`Invalid UUID string: ${e}`)}},from(e){if(!e)return null;if("string"==typeof e)return e;if(!e||16!==e.length)throw new TypeError("Invalid Buffer length for UUID");return t.stringify(e)}};let oe=class{id;name;description;status};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],oe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],oe.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],oe.prototype,"description",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],oe.prototype,"status",void 0),oe=a([e.Index("ixClientTypeName",["name"],{}),e.Entity("clientType",{schema:"nova"})],oe);let se=class{clientId;client;enterprise;maintenanceModule;billingMethod;customerSegment};a([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],se.prototype,"clientId",void 0),a([e.OneToOne((()=>me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],se.prototype,"client",void 0),a([e.Column("tinyint",{name:"enterprise",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],se.prototype,"enterprise",void 0),a([e.Column("tinyint",{name:"maintenanceModule",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],se.prototype,"maintenanceModule",void 0),a([e.Column("enum",{enum:["credit-card-hubspot","ach-hubspot","credit-card-braintree","ach-braintree","ach-wire","check","dib-sap"],name:"billingMethod",nullable:!0}),n("design:type",String)],se.prototype,"billingMethod",void 0),a([e.Column("enum",{enum:["whale","bass","guppy","guppy-self-serve"],name:"customerSegment",nullable:!0}),n("design:type",String)],se.prototype,"customerSegment",void 0),se=a([e.Entity("customerAttribute",{schema:"nova"})],se);let le=class{id;clientId;fileName;s3FilesPath;altText;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],le.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],le.prototype,"clientId",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],le.prototype,"fileName",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],le.prototype,"s3FilesPath",void 0),a([e.Column("varchar",{name:"altText",nullable:!0,length:100}),n("design:type",String)],le.prototype,"altText",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],le.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],le.prototype,"modifiedAt",void 0),le=a([e.Index("ixClientDeviceIcon_clientId_fileName",["clientId","fileName"],{unique:!0}),e.Entity("clientDeviceIcon",{schema:"nova"})],le);let de=class{id;brand;model;modelFamily;description;tags;url;name;pictureUrl;userManualUrl;notes;supported;activatable;selfActivatable;port;protocolMatch;stage;identifierType;landingPage;troubleshooting;protocol;readOnly;devices};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],de.prototype,"id",void 0),a([e.Column("varchar",{name:"brand",length:50}),n("design:type",String)],de.prototype,"brand",void 0),a([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],de.prototype,"model",void 0),a([e.Column("varchar",{name:"modelFamily",length:50}),n("design:type",String)],de.prototype,"modelFamily",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],de.prototype,"description",void 0),a([e.Column("varchar",{name:"tags",nullable:!0,length:255}),n("design:type",String)],de.prototype,"tags",void 0),a([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"url",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],de.prototype,"name",void 0),a([e.Column("varchar",{name:"pictureUrl",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"pictureUrl",void 0),a([e.Column("varchar",{name:"userManualUrl",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"userManualUrl",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:2e3}),n("design:type",String)],de.prototype,"notes",void 0),a([e.Column("tinyint",{name:"supported",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],de.prototype,"supported",void 0),a([e.Column("tinyint",{name:"activatable",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],de.prototype,"activatable",void 0),a([e.Column("tinyint",{name:"selfActivatable",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],de.prototype,"selfActivatable",void 0),a([e.Column("smallint",{name:"port",nullable:!0}),n("design:type",Number)],de.prototype,"port",void 0),a([e.Column("varchar",{name:"protocolMatch",nullable:!0,length:5}),n("design:type",String)],de.prototype,"protocolMatch",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],de.prototype,"stage",void 0),a([e.Column("varchar",{name:"identifierType",length:20}),n("design:type",String)],de.prototype,"identifierType",void 0),a([e.Column("varchar",{name:"landingPage",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"landingPage",void 0),a([e.Column("varchar",{name:"troubleshooting",nullable:!0,length:1e3}),n("design:type",String)],de.prototype,"troubleshooting",void 0),a([e.Column("varchar",{name:"protocol",nullable:!0,length:50}),n("design:type",String)],de.prototype,"protocol",void 0),a([e.Column("tinyint",{name:"readOnly",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],de.prototype,"readOnly",void 0),a([e.OneToMany((()=>ue),(e=>e.deviceType)),n("design:type",Array)],de.prototype,"devices",void 0),de=a([e.Entity("deviceType",{schema:"nova"})],de);let ue=class{id;identifier;identifierKey;deviceTypeId;deviceType;imei;clientId;client;createdAt;name;status;iccid;modifiedAt;createdBy;modifiedBy;forward;color;icon;customIconId;customIcon;description;dataSourceTypeId;assetCategoryId;usageRegion;btmac;serialNumber;assignedTo;assignmentMode;iccidCarrier;clientDeviceSetting;securityGroupEntityTags;devicePairing;extendedAttributes};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ue.prototype,"id",void 0),a([e.Column("varchar",{name:"identifier",length:100}),n("design:type",String)],ue.prototype,"identifier",void 0),a([e.Column("varchar",{name:"identifierKey",length:255}),n("design:type",String)],ue.prototype,"identifierKey",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],ue.prototype,"deviceTypeId",void 0),a([e.ManyToOne((()=>de),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ue.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ue.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ue.prototype,"clientId",void 0),a([e.OneToOne((()=>me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ue.prototype,"client",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ue.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],ue.prototype,"name",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ue.prototype,"status",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],ue.prototype,"iccid",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ue.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],ue.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],ue.prototype,"modifiedBy",void 0),a([e.Column("tinyint",{name:"forward",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],ue.prototype,"forward",void 0),a([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],ue.prototype,"color",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],ue.prototype,"icon",void 0),a([e.Column("int",{name:"customIconId",nullable:!0}),n("design:type",Number)],ue.prototype,"customIconId",void 0),a([e.OneToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],ue.prototype,"customIcon",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],ue.prototype,"description",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],ue.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"assetCategoryId",nullable:!0}),n("design:type",Number)],ue.prototype,"assetCategoryId",void 0),a([e.Column("varchar",{name:"usageRegion",nullable:!0,length:25}),n("design:type",String)],ue.prototype,"usageRegion",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],ue.prototype,"btmac",void 0),a([e.Column("varchar",{name:"serialNumber",nullable:!0,length:25}),n("design:type",String)],ue.prototype,"serialNumber",void 0),a([e.Column("varchar",{name:"assignedTo",nullable:!0,length:255}),n("design:type",String)],ue.prototype,"assignedTo",void 0),a([e.Column("varchar",{name:"assignmentMode",nullable:!0,length:50}),n("design:type",String)],ue.prototype,"assignmentMode",void 0),a([e.Column("json",{name:"extendedAttributes",nullable:!0}),n("design:type",Object)],ue.prototype,"extendedAttributes",void 0),ue=a([e.Index("ixuDeviceIdentifierKey",["identifierKey"],{unique:!0}),e.Index("ixDeviceClientId",["clientId"],{}),e.Index("ixDeviceClientIdStatus",["clientId","status"],{}),e.Index("ixDeviceDeviceTypeId",["deviceTypeId"],{}),e.Index("ixDeviceIccidImei",["iccid","imei"],{}),e.Index("ixDeviceImei",["imei"],{}),e.Index("ixDeviceImeiLower",{synchronize:!1}),e.Index("ixDeviceStatus",["status"],{}),e.Index("ixDeviceClientIdImei",["clientId","imei"],{}),e.Index("ixDeviceCreatedAt",["createdAt"],{}),e.Entity("device",{schema:"nova"})],ue);let ce=class{id;clientId;client;deviceTypeId;imei;configFileUrl;skipActivationDefaults;createdAt;po};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],ce.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],ce.prototype,"clientId",void 0),a([e.ManyToOne((()=>me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ce.prototype,"client",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ce.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ce.prototype,"imei",void 0),a([e.Column("varchar",{name:"configFileUrl",nullable:!0,length:1e3}),n("design:type",String)],ce.prototype,"configFileUrl",void 0),a([e.Column("tinyint",{name:"skipActivationDefaults",width:1,default:0,transformer:new p}),n("design:type",Boolean)],ce.prototype,"skipActivationDefaults",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ce.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],ce.prototype,"po",void 0),ce=a([e.Index("ixDeviceCustomConfigurationsClientId",["clientId"],{}),e.Entity("deviceCustomConfiguration",{schema:"nova"})],ce);let pe=class{id;name;description;websiteUrl;address;mainContact};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],pe.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],pe.prototype,"description",void 0),a([e.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),n("design:type",String)],pe.prototype,"websiteUrl",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],pe.prototype,"address",void 0),a([e.Column("binary",{name:"mainContact",length:16}),n("design:type",Buffer)],pe.prototype,"mainContact",void 0),pe=a([e.Entity("organization",{schema:"nova"})],pe);let me=class{id;name;createdAt;modifiedAt;uuid;email;modifiedBy;createdBy;dataSourceTypeId;clientTypeId;clientType;salesforceId;accumaticaId;expirationDate;useType;btCustomerId;activationCampaign;organizationId;organization;users;devices;deviceCustomConfigurations;customerAttribute};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],me.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],me.prototype,"name",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],me.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],me.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"uuid",nullable:!0,length:16}),n("design:type",Buffer)],me.prototype,"uuid",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],me.prototype,"email",void 0),a([e.Column("smallint",{name:"modifiedBy",nullable:!0}),n("design:type",Number)],me.prototype,"modifiedBy",void 0),a([e.Column("smallint",{name:"createdBy",nullable:!0}),n("design:type",Number)],me.prototype,"createdBy",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],me.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"clientTypeId",default:()=>"'1'"}),n("design:type",Number)],me.prototype,"clientTypeId",void 0),a([e.ManyToOne((()=>oe),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],me.prototype,"clientType",void 0),a([e.Column("varchar",{name:"salesforceId",nullable:!0,length:50}),n("design:type",String)],me.prototype,"salesforceId",void 0),a([e.Column("varchar",{name:"accumaticaId",nullable:!0,length:50}),n("design:type",String)],me.prototype,"accumaticaId",void 0),a([e.Column("datetime",{name:"expirationDate",nullable:!0}),n("design:type",Date)],me.prototype,"expirationDate",void 0),a([e.Column("varchar",{name:"useType",nullable:!0,length:25}),n("design:type",String)],me.prototype,"useType",void 0),a([e.Column("varchar",{name:"btCustomerId",nullable:!0,length:50}),n("design:type",String)],me.prototype,"btCustomerId",void 0),a([e.Column("varchar",{name:"activationCampaign",nullable:!0,length:50}),n("design:type",String)],me.prototype,"activationCampaign",void 0),a([e.Column("int",{name:"organizationId",nullable:!0}),n("design:type",Number)],me.prototype,"organizationId",void 0),a([e.OneToOne((()=>pe),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],me.prototype,"organization",void 0),a([e.OneToMany((()=>we),(e=>e.client)),n("design:type",Array)],me.prototype,"users",void 0),a([e.OneToMany((()=>ue),(e=>e.client)),n("design:type",Array)],me.prototype,"devices",void 0),a([e.OneToMany((()=>ce),(e=>e.client)),n("design:type",Array)],me.prototype,"deviceCustomConfigurations",void 0),a([e.OneToOne((()=>se),(e=>e.client)),n("design:type",Object)],me.prototype,"customerAttribute",void 0),me=a([e.Index("ixClientClientTypeId",["clientTypeId"],{}),e.Index("ixClientCreatedAt",["createdAt"],{}),e.Index("ixClientEmail",["email"],{}),e.Index("ixClientEmailLower",{synchronize:!1}),e.Entity("client",{schema:"nova"})],me);let ge=class{id;name;currencies;capital;region;subregion;languages;lat;lon;borders;area;internationalDirectDialing;alpha2Code;alpha3Code};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ge.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],ge.prototype,"name",void 0),a([e.Column("varchar",{name:"currencies",nullable:!0,length:255}),n("design:type",String)],ge.prototype,"currencies",void 0),a([e.Column("varchar",{name:"capital",nullable:!0,length:50}),n("design:type",String)],ge.prototype,"capital",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],ge.prototype,"region",void 0),a([e.Column("varchar",{name:"subregion",nullable:!0,length:50}),n("design:type",String)],ge.prototype,"subregion",void 0),a([e.Column("varchar",{name:"languages",nullable:!0,length:255}),n("design:type",String)],ge.prototype,"languages",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ge.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ge.prototype,"lon",void 0),a([e.Column("varchar",{name:"borders",nullable:!0,length:255}),n("design:type",String)],ge.prototype,"borders",void 0),a([e.Column("int",{name:"area",nullable:!0}),n("design:type",Number)],ge.prototype,"area",void 0),a([e.Column("varchar",{name:"internationalDirectDialing",nullable:!0,length:10}),n("design:type",String)],ge.prototype,"internationalDirectDialing",void 0),a([e.Column("varchar",{name:"alpha2Code",nullable:!0,length:2}),n("design:type",String)],ge.prototype,"alpha2Code",void 0),a([e.Column("varchar",{name:"alpha3Code",nullable:!0,length:3}),n("design:type",String)],ge.prototype,"alpha3Code",void 0),ge=a([e.Index("ixCountryAlpha2Code",["alpha2Code"],{}),e.Index("ixCountryName",["name"],{}),e.Entity("country",{schema:"nova"})],ge);let ye=class{id;userId;user;alertTypeId;alertType;clientId;client;email;reason;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ye.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],ye.prototype,"userId",void 0),a([e.ManyToOne((()=>we),(e=>e.userAlertComplain),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],ye.prototype,"user",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],ye.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],ye.prototype,"alertType",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ye.prototype,"clientId",void 0),a([e.ManyToOne((()=>me),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],ye.prototype,"client",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],ye.prototype,"email",void 0),a([e.Column("varchar",{name:"reason",length:25}),n("design:type",String)],ye.prototype,"reason",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ye.prototype,"createdAt",void 0),ye=a([e.Index("ixuUserAlertComplainUserIdAlertTypeId",["userId","alertTypeId"],{unique:!0}),e.Entity("userAlertComplain",{schema:"nova"})],ye);let ve=class{id;clientAlertConfigurationId;clientAlertConfiguration;userId;roleId;isEnabled;smsNotification;emailNotification;appNotification;pushNotification};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ve.prototype,"id",void 0),a([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],ve.prototype,"clientAlertConfigurationId",void 0),a([e.ManyToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],ve.prototype,"clientAlertConfiguration",void 0),a([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],ve.prototype,"userId",void 0),a([e.Column("tinyint",{name:"roleId",nullable:!0}),n("design:type",Number)],ve.prototype,"roleId",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p,default:()=>"'1'"}),n("design:type",Boolean)],ve.prototype,"isEnabled",void 0),a([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ve.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ve.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ve.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ve.prototype,"pushNotification",void 0),ve=a([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Entity("clientAlertRecipient",{schema:"nova"})],ve);let he=class{id;clientId;alertTypeId;name;description;status;alertValue;alertMetadata;filter;readOnly;createdAt;createdBy;modifiedBy;internalRecipients;externalRecipients};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],he.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],he.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],he.prototype,"alertTypeId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],he.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],he.prototype,"description",void 0),a([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],he.prototype,"status",void 0),a([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],he.prototype,"alertValue",void 0),a([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],he.prototype,"alertMetadata",void 0),a([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],he.prototype,"filter",void 0),a([e.Column("tinyint",{name:"readOnly",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],he.prototype,"readOnly",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],he.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],he.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],he.prototype,"modifiedBy",void 0),a([e.OneToMany((()=>ve),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],he.prototype,"internalRecipients",void 0),a([e.OneToMany((()=>fe),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],he.prototype,"externalRecipients",void 0),he=a([e.Index("ixClientAlertConfigurationClientIdAlertTypeId",["clientId","alertTypeId"],{unique:!1}),e.Index("ixClientAlertConfigurationClientIdCreatedAt",["clientId","createdAt"],{unique:!1}),e.Entity("clientAlertConfiguration",{schema:"nova"})],he);let fe=class{id;clientId;notificationType;recipient;isEnabled;isUserProfile;createdAt;modifiedAt;dataSourceTypeId;unsubscribed;unsubscribedInfo;userId;userAlertConfigurationId;userAlertConfiguration;clientAlertConfigurationId;clientAlertConfiguration};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fe.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],fe.prototype,"clientId",void 0),a([e.Column("tinyint",{name:"notificationType"}),n("design:type",Number)],fe.prototype,"notificationType",void 0),a([e.Column("varchar",{name:"recipient",length:100}),n("design:type",String)],fe.prototype,"recipient",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p}),n("design:type",Boolean)],fe.prototype,"isEnabled",void 0),a([e.Column("tinyint",{name:"isUserProfile",width:1,transformer:new p}),n("design:type",Boolean)],fe.prototype,"isUserProfile",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],fe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],fe.prototype,"modifiedAt",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],fe.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"unsubscribed",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],fe.prototype,"unsubscribed",void 0),a([e.Column("varchar",{name:"unsubscribedInfo",nullable:!0,length:256}),n("design:type",String)],fe.prototype,"unsubscribedInfo",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],fe.prototype,"userId",void 0),a([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],fe.prototype,"userAlertConfigurationId",void 0),a([e.ManyToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"userAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],fe.prototype,"userAlertConfiguration",void 0),a([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],fe.prototype,"clientAlertConfigurationId",void 0),a([e.ManyToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],fe.prototype,"clientAlertConfiguration",void 0),fe=a([e.Index("ixuNotificationRecipientClientIdRecipientUserId",["clientId","recipient","userId"],{unique:!0}),e.Index("ixNotificationRecipientClientId",["clientId"],{}),e.Index("ixNotificationRecipientIsEnabled",["isEnabled"],{}),e.Index("ixNotificationRecipientIsUserProfile",["isUserProfile"],{}),e.Index("ixNotificationRecipientNotificationType",["notificationType"],{}),e.Index("ixNotificationRecipientRecipient",["recipient"],{}),e.Index("ixNotificationRecipientNotificationTypeRecipient",["notificationType","recipient"],{}),e.Index("ixNotificationRecipientClientIdUserIdNotificationTypeRecipient",["clientId","userId","notificationType","recipient"],{}),e.Entity("notificationRecipient",{schema:"nova"})],fe);let Ie=class{id;userId;user;smsNotification;emailNotification;alertTypeId;alertType;alertValue;appNotification;dataSourceTypeId;pushNotification;alertMetadata;filter;enabled;createdBy;name;notificationRecipients};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ie.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ie.prototype,"userId",void 0),a([e.ManyToOne((()=>we),(e=>e.userAlertConfiguration),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Ie.prototype,"user",void 0),a([e.Column("tinyint",{name:"smsNotification",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Ie.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Ie.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],Ie.prototype,"alertTypeId",void 0),a([e.OneToOne((()=>m),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Ie.prototype,"alertType",void 0),a([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"alertValue",void 0),a([e.Column("tinyint",{name:"appNotification",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ie.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ie.prototype,"dataSourceTypeId",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ie.prototype,"pushNotification",void 0),a([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],Ie.prototype,"alertMetadata",void 0),a([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],Ie.prototype,"filter",void 0),a([e.Column("tinyint",{name:"enabled",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ie.prototype,"enabled",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Ie.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],Ie.prototype,"name",void 0),a([e.OneToMany((()=>fe),(e=>e.userAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"userAlertConfigurationId"}),n("design:type",Array)],Ie.prototype,"notificationRecipients",void 0),Ie=a([e.Index("ixUserAlertConfigurationUserIdAlertTypeId",["userId","alertTypeId"],{unique:!1}),e.Entity("userAlertConfiguration",{schema:"nova"})],Ie);let Ce=class{id;clientAlertConfigurationId;userId;user;smsNotification;emailNotification;appNotification;pushNotification};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ce.prototype,"id",void 0),a([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],Ce.prototype,"clientAlertConfigurationId",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ce.prototype,"userId",void 0),a([e.ManyToOne((()=>we),(e=>e.clientAlertNotificationOverride),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Ce.prototype,"user",void 0),a([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ce.prototype,"smsNotification",void 0),a([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ce.prototype,"emailNotification",void 0),a([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ce.prototype,"appNotification",void 0),a([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ce.prototype,"pushNotification",void 0),Ce=a([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Index("ixUserId",["userId"],{unique:!1}),e.Index("ixUserIdClientAlertConfigurationId",["userId","clientAlertConfigurationId"],{unique:!0}),e.Entity("userAlertNotificationsConfig",{schema:"nova"})],Ce);let be=class{id;userId;user;isMetric;timezone;createdAt;modifiedAt;defaultMapLayer;speedUnits;distanceUnits;alertsNotificationsOn;dataSourceTypeId;homepage;temperatureUnits;addressFormat};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],be.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],be.prototype,"userId",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],be.prototype,"user",void 0),a([e.Column("tinyint",{name:"isMetric",width:1,transformer:new p}),n("design:type",Boolean)],be.prototype,"isMetric",void 0),a([e.Column("varchar",{name:"timezone",nullable:!0,length:255,default:()=>"'EST'"}),n("design:type",String)],be.prototype,"timezone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],be.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],be.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"defaultMapLayer",nullable:!0,length:25}),n("design:type",String)],be.prototype,"defaultMapLayer",void 0),a([e.Column("varchar",{name:"speedUnits",nullable:!0,length:10}),n("design:type",String)],be.prototype,"speedUnits",void 0),a([e.Column("varchar",{name:"distanceUnits",nullable:!0,length:10}),n("design:type",String)],be.prototype,"distanceUnits",void 0),a([e.Column("tinyint",{name:"alertsNotificationsOn",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],be.prototype,"alertsNotificationsOn",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],be.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"homepage",nullable:!0,length:50}),n("design:type",String)],be.prototype,"homepage",void 0),a([e.Column("varchar",{name:"temperatureUnits",nullable:!0,length:10}),n("design:type",String)],be.prototype,"temperatureUnits",void 0),a([e.Column("varchar",{name:"addressFormat",nullable:!0,length:100}),n("design:type",String)],be.prototype,"addressFormat",void 0),be=a([e.Index("ixUserConfigurationUserId",["userId"],{}),e.Entity("userConfiguration",{schema:"nova"})],be);let Se=class{id;key;name;description;ordinalPosition;userSecurityRoles};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Se.prototype,"id",void 0),a([e.Column("varchar",{name:"key",length:25}),n("design:type",String)],Se.prototype,"key",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Se.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],Se.prototype,"description",void 0),a([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Se.prototype,"ordinalPosition",void 0),a([e.OneToMany((()=>De),(e=>e.securityRole),{createForeignKeyConstraints:!1}),n("design:type",Array)],Se.prototype,"userSecurityRoles",void 0),Se=a([e.Entity("securityRole",{schema:"nova"})],Se);const Re=["full","limited"];let De=class{clientId;userId;user;securityRole;securityRoleId;devicesAccess;boundariesAccess;minAccessDate};a([e.Column("int",{name:"clientId"}),n("design:type",Number)],De.prototype,"clientId",void 0),a([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],De.prototype,"userId",void 0),a([e.ManyToOne((()=>we),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],De.prototype,"user",void 0),a([e.ManyToOne((()=>Se),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],De.prototype,"securityRole",void 0),a([e.Column("tinyint",{primary:!0,name:"securityRoleId"}),n("design:type",Number)],De.prototype,"securityRoleId",void 0),a([e.Column("enum",{name:"access",enum:Re,default:"full"}),n("design:type",String)],De.prototype,"devicesAccess",void 0),a([e.Column("enum",{name:"boundariesAccess",enum:Re,default:"full"}),n("design:type",String)],De.prototype,"boundariesAccess",void 0),a([e.Column("datetime",{name:"minAccessDate",nullable:!0,precision:0}),n("design:type",Date)],De.prototype,"minAccessDate",void 0),De=a([e.Index("ixUserSecurityRoleClientId",["clientId"],{}),e.Index("ixUserSecurityRoleSecurityRoleId",["securityRoleId"],{}),e.Index("ixUserSecurityRoleUserId",["userId"],{}),e.Entity("userSecurityRole",{schema:"nova"})],De);let we=class{id;numberId;firstName;lastName;companyName;telephone;street;postalCode;city;region;email;userName;createdAt;modifiedAt;status;clientId;client;pincode;isAdmin;countryId;country;telephoneCountryId;telephoneCountry;dataSourceTypeId;preferredUserName;lastLoginAt;emailVerified;lat;lon;userConfiguration;userAlertConfiguration;clientAlertNotificationOverride;userAlertComplain;userSecurityRoles;securityGroupEntityTags};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],we.prototype,"id",void 0),a([e.Column("int",{name:"numberId",nullable:!0,unique:!0}),e.Generated("increment"),n("design:type",Number)],we.prototype,"numberId",void 0),a([e.Column("varchar",{name:"firstName",length:100}),n("design:type",String)],we.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",length:100}),n("design:type",String)],we.prototype,"lastName",void 0),a([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],we.prototype,"companyName",void 0),a([e.Column("varchar",{name:"telephone",nullable:!0,length:20}),n("design:type",String)],we.prototype,"telephone",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],we.prototype,"street",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],we.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],we.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],we.prototype,"region",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],we.prototype,"email",void 0),a([e.Column("varchar",{name:"userName",length:255}),n("design:type",String)],we.prototype,"userName",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],we.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],we.prototype,"modifiedAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],we.prototype,"status",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],we.prototype,"clientId",void 0),a([e.ManyToOne((()=>me),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],we.prototype,"client",void 0),a([e.Column("varchar",{name:"pincode",nullable:!0,length:20}),n("design:type",String)],we.prototype,"pincode",void 0),a([e.Column("tinyint",{name:"isAdmin",width:1,transformer:new p}),n("design:type",Boolean)],we.prototype,"isAdmin",void 0),a([e.Column("smallint",{name:"countryId",nullable:!0}),n("design:type",Number)],we.prototype,"countryId",void 0),a([e.OneToOne((()=>ge),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],we.prototype,"country",void 0),a([e.Column("smallint",{name:"telephoneCountryId",nullable:!0}),n("design:type",Number)],we.prototype,"telephoneCountryId",void 0),a([e.OneToOne((()=>ge),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],we.prototype,"telephoneCountry",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],we.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"preferredUserName",nullable:!0,length:255}),n("design:type",String)],we.prototype,"preferredUserName",void 0),a([e.Column("datetime",{name:"lastLoginAt",nullable:!0}),n("design:type",Date)],we.prototype,"lastLoginAt",void 0),a([e.Column("tinyint",{name:"emailVerified",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],we.prototype,"emailVerified",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],we.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],we.prototype,"lon",void 0),a([e.OneToOne((()=>be),(e=>e.user)),n("design:type",Object)],we.prototype,"userConfiguration",void 0),a([e.OneToMany((()=>Ie),(e=>e.user)),n("design:type",Array)],we.prototype,"userAlertConfiguration",void 0),a([e.OneToMany((()=>Ce),(e=>e.user)),n("design:type",Array)],we.prototype,"clientAlertNotificationOverride",void 0),a([e.OneToMany((()=>ye),(e=>e.user)),n("design:type",Array)],we.prototype,"userAlertComplain",void 0),a([e.OneToMany((()=>De),(e=>e.user),{createForeignKeyConstraints:!1}),n("design:type",Array)],we.prototype,"userSecurityRoles",void 0),we=a([e.Index("ixUserClientId",["clientId"],{}),e.Index("ixUserCreatedAt",["createdAt"],{}),e.Index("ixUserEmail",["email"],{}),e.Index("ixUserEmailLower",{synchronize:!1}),e.Index("ixUserLastLoginAt",["lastLoginAt"],{}),e.Index("ixUserStatus",["status"],{}),e.Index("ixUserUserName",["userName"],{}),e.Index("ixUserTelephone",["telephone"],{}),e.Index("ixNumberId",["numberId"],{}),e.Index("ixCountryId",["countryId"],{}),e.Index("ixRegion",["region"],{}),e.Index("ixCountryIdRegion",["countryId","region"],{}),e.Entity("user",{schema:"nova"})],we);let Ae=class{id;deviceId;assetProfile;note;userId;user;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ae.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],Ae.prototype,"deviceId",void 0),a([e.OneToOne((()=>Be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"deviceId",referencedColumnName:"deviceId"}),n("design:type",Object)],Ae.prototype,"assetProfile",void 0),a([e.Column("varchar",{name:"note",length:255}),n("design:type",String)],Ae.prototype,"note",void 0),a([e.Column("binary",{name:"userId",length:16,transformer:ne}),n("design:type",String)],Ae.prototype,"userId",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ae.prototype,"user",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ae.prototype,"createdAt",void 0),Ae=a([e.Index("ix_deviceId",["deviceId"],{}),e.Entity("assetProfileNote",{schema:"nova"})],Ae);let Te=class{id;name;assetProfileTypes};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Te.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Te.prototype,"name",void 0),a([e.OneToMany((()=>Ne),(e=>e.assetProfileCategory)),n("design:type",Array)],Te.prototype,"assetProfileTypes",void 0),Te=a([e.Index("ixuAssetProfileCategoryName",["name"],{unique:!0}),e.Entity("assetProfileCategory",{schema:"nova"})],Te);let Ne=class{id;name;assetProfileCategoryId;assetProfileCategory;clientId};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ne.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ne.prototype,"name",void 0),a([e.Column("tinyint",{name:"assetProfileCategoryId"}),n("design:type",Number)],Ne.prototype,"assetProfileCategoryId",void 0),a([e.OneToOne((()=>Te),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ne.prototype,"assetProfileCategory",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ne.prototype,"clientId",void 0),Ne=a([e.Index("ixu_assetProfileCategoryId_name_clientId",["assetProfileCategoryId","name","clientId"],{unique:!0}),e.Entity("assetProfileType",{schema:"nova"})],Ne);let Be=class{deviceId;name;clientId;device;assetProfileTypeId;assetProfileType;make;model;serialNumber;year;status;createdAt;modifiedAt;medias;notes;customFields};a([e.PrimaryColumn("int",{name:"deviceId"}),n("design:type",Number)],Be.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"name",length:50,nullable:!0}),n("design:type",String)],Be.prototype,"name",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Be.prototype,"clientId",void 0),a([e.OneToOne((()=>ue),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Be.prototype,"device",void 0),a([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Be.prototype,"assetProfileTypeId",void 0),a([e.OneToOne((()=>Ne),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Be.prototype,"assetProfileType",void 0),a([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Be.prototype,"make",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Be.prototype,"model",void 0),a([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Be.prototype,"serialNumber",void 0),a([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Be.prototype,"year",void 0),a([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Be.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Be.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Be.prototype,"modifiedAt",void 0),a([e.OneToMany((()=>ae),(e=>e.assetProfile)),n("design:type",Array)],Be.prototype,"medias",void 0),a([e.OneToMany((()=>Ae),(e=>e.assetProfile)),n("design:type",Array)],Be.prototype,"notes",void 0),a([e.OneToMany((()=>re),(e=>e.assetProfile)),n("design:type",Array)],Be.prototype,"customFields",void 0),Be=a([e.Index("ix_clientId",["clientId"],{}),e.Entity("assetProfile",{schema:"nova"})],Be);class Ue{to(e){return e||null}from(e){return e?new Date(e):null}}let Ee=class{id;clientId;fileName;expirationDate;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Ee.prototype,"id",void 0),a([e.Column("int",{name:"clientId",unique:!0}),n("design:type",Number)],Ee.prototype,"clientId",void 0),a([e.Column("varchar",{name:"fileName",length:1e3}),n("design:type",String)],Ee.prototype,"fileName",void 0),a([e.Column("date",{name:"expirationDate",transformer:new Ue}),n("design:type",Date)],Ee.prototype,"expirationDate",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Ee.prototype,"createdAt",void 0),Ee=a([e.Index("ixAvalaraExemptCertClientId",["clientId"],{unique:!0}),e.Entity("avalaraExemptCert",{schema:"nova"})],Ee);let Pe=class{id;subscriptionId;planId;priceIncrease;priceDecrease;status;attempts;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Pe.prototype,"id",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Pe.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:256}),n("design:type",String)],Pe.prototype,"planId",void 0),a([e.Column("decimal",{name:"priceIncrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Pe.prototype,"priceIncrease",void 0),a([e.Column("decimal",{name:"priceDecrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Pe.prototype,"priceDecrease",void 0),a([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Pe.prototype,"status",void 0),a([e.Column("tinyint",{name:"attempts",default:()=>"'0'"}),n("design:type",Number)],Pe.prototype,"attempts",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Pe.prototype,"createdAt",void 0),Pe=a([e.Index("ixAvalaraQueueSubscriptionId",["subscriptionId"]),e.Entity("avalaraQueue",{schema:"nova"})],Pe);let Me=class{id;clientId;deviceId;bleMeshId;status;createdAt;modifiedAt;device;bleMesh};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Me.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Me.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],Me.prototype,"deviceId",void 0),a([e.Column("int",{name:"bleMeshId"}),n("design:type",Number)],Me.prototype,"bleMeshId",void 0),a([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],Me.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Me.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Me.prototype,"modifiedAt",void 0),a([e.OneToOne((()=>ue),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Me.prototype,"device",void 0),a([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Me.prototype,"bleMesh",void 0),Me=a([e.Index("ixDeviceBleMesh_clientId",["clientId"],{}),e.Index("ixuDeviceBleMesh_deviceId",["deviceId"],{unique:!0}),e.Entity("deviceBleMesh",{schema:"nova"})],Me);let Oe=class{id;clientId;name;address;lat;lon;createdAt;modifiedAt;beacons;devices};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Oe.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Oe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:150}),n("design:type",String)],Oe.prototype,"name",void 0),a([e.Column("varchar",{name:"address",length:500}),n("design:type",String)],Oe.prototype,"address",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Oe.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Oe.prototype,"lon",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Oe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Oe.prototype,"modifiedAt",void 0),a([e.OneToMany((()=>xe),(e=>e.bleMesh)),n("design:type",Array)],Oe.prototype,"beacons",void 0),a([e.OneToMany((()=>Me),(e=>e.bleMesh)),n("design:type",Array)],Oe.prototype,"devices",void 0),Oe=a([e.Index("ixBLEMesh_clientId",["clientId"],{}),e.Entity("bleMesh",{schema:"nova"})],Oe);let xe=class{id;clientId;name;bleMac;bleMeshId;createdAt;bleMesh};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],xe.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],xe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:250,nullable:!0}),n("design:type",String)],xe.prototype,"name",void 0),a([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],xe.prototype,"bleMac",void 0),a([e.Column("int",{name:"bleMeshId",nullable:!0}),n("design:type",Number)],xe.prototype,"bleMeshId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],xe.prototype,"createdAt",void 0),a([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"bleMesh",void 0),xe=a([e.Index("ixBeaconMesh_clientId",["clientId"],{}),e.Index("ixuBeaconMesh_bleMac",["bleMac"],{unique:!0}),e.Entity("beaconBleMesh",{schema:"nova"})],xe);let ke=class{id;name;description;billingFrequencyMonths;price;trialPeriod;discount;platform;planGroup;gracePeriod;status;platformPrice;servicePlan;contractLengthMonths};a([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],ke.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ke.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],ke.prototype,"description",void 0),a([e.Column("tinyint",{name:"billingFrequencyMonths"}),n("design:type",Number)],ke.prototype,"billingFrequencyMonths",void 0),a([e.Column("float",{name:"price"}),n("design:type",Number)],ke.prototype,"price",void 0),a([e.Column("varchar",{name:"trialPeriod",nullable:!0,length:25}),n("design:type",String)],ke.prototype,"trialPeriod",void 0),a([e.Column("float",{name:"discount",nullable:!0}),n("design:type",Number)],ke.prototype,"discount",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],ke.prototype,"platform",void 0),a([e.Column("varchar",{name:"planGroup",nullable:!0,length:25}),n("design:type",String)],ke.prototype,"planGroup",void 0),a([e.Column("varchar",{name:"gracePeriod",nullable:!0,length:25}),n("design:type",String)],ke.prototype,"gracePeriod",void 0),a([e.Column("char",{name:"status",length:1}),n("design:type",String)],ke.prototype,"status",void 0),a([e.Column("float",{name:"platformPrice",nullable:!0}),n("design:type",Number)],ke.prototype,"platformPrice",void 0),a([e.Column("varchar",{name:"servicePlan",nullable:!0,length:10}),n("design:type",String)],ke.prototype,"servicePlan",void 0),a([e.Column("tinyint",{name:"contractLengthMonths"}),n("design:type",Number)],ke.prototype,"contractLengthMonths",void 0),ke=a([e.Entity("plan",{schema:"nova"})],ke);let Le=class{id;deviceId;imei;planId;plan;subscriptionId;platform;status;createdAt;updatedAt;subscriptionValue;subscriptionPeriodMonths;subscriptionValueMonthly;clientId;client};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Le.prototype,"id",void 0),a([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Le.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Le.prototype,"imei",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"planId",void 0),a([e.OneToOne((()=>ke),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Le.prototype,"plan",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Le.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Le.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Le.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Le.prototype,"updatedAt",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Le.prototype,"subscriptionValue",void 0),a([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],Le.prototype,"subscriptionPeriodMonths",void 0),a([e.Column("decimal",{name:"subscriptionValueMonthly",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Le.prototype,"subscriptionValueMonthly",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Le.prototype,"clientId",void 0),a([e.OneToOne((()=>me),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Le.prototype,"client",void 0),Le=a([e.Index("ixuBillingImei",["imei"],{unique:!0}),e.Index("ixBillingClientId",["clientId"],{}),e.Index("ixBillingPlanId",["planId"],{}),e.Index("ixBillingSubscriptionId",["subscriptionId"],{}),e.Entity("billing",{schema:"nova"})],Le);let Fe=class{clientId;firstName;lastName;email;streetAddress;city;region;country;postalCode;phone;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Fe.prototype,"clientId",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Fe.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Fe.prototype,"lastName",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Fe.prototype,"email",void 0),a([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],Fe.prototype,"streetAddress",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"region",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"country",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],Fe.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],Fe.prototype,"createdAt",void 0),Fe=a([e.Index("ixBillingCustomerAmazonEmail",["email"],{}),e.Index("ixBillingCustomerAmazonClientId",["clientId"],{}),e.Entity("billingCustomerAmazon",{schema:"nova"})],Fe);let Qe=class{id;firstName;lastName;company;email;phone;createdAt;updatedAt;churnStatus};a([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Qe.prototype,"id",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:50}),n("design:type",String)],Qe.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:50}),n("design:type",String)],Qe.prototype,"lastName",void 0),a([e.Column("varchar",{name:"company",nullable:!0,length:100}),n("design:type",String)],Qe.prototype,"company",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Qe.prototype,"email",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:150}),n("design:type",String)],Qe.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Qe.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Qe.prototype,"updatedAt",void 0),a([e.Column("varchar",{name:"churnStatus",nullable:!0,length:50}),n("design:type",String)],Qe.prototype,"churnStatus",void 0),Qe=a([e.Index("ixBillingCustomerBraintreeEmail",["email"],{}),e.Entity("billingCustomerBraintree",{schema:"nova"})],Qe);let qe=class{id;clientId;deviceId;imei;planId;subscriptionId;platform;status;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],qe.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],qe.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],qe.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],qe.prototype,"imei",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],qe.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],qe.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],qe.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],qe.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],qe.prototype,"createdAt",void 0),qe=a([e.Entity("billingDeviceHistory",{schema:"nova"})],qe);let We=class{planId;targetCustomer;code;status;platform;billingFrequency;contractLength;numberOfBillingCycles;description;name;price;trialDuration;trialDurationUnit;trialPeriod;createdAt;updatedAt;addOns;discounts;startDate;endDate};a([e.PrimaryColumn({type:"varchar",name:"planId",length:50}),n("design:type",String)],We.prototype,"planId",void 0),a([e.Column("varchar",{name:"targetCustomer",length:20}),n("design:type",String)],We.prototype,"targetCustomer",void 0),a([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],We.prototype,"code",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],We.prototype,"status",void 0),a([e.Column("varchar",{name:"platform",length:255}),n("design:type",String)],We.prototype,"platform",void 0),a([e.Column("smallint",{name:"billingFrequency"}),n("design:type",Number)],We.prototype,"billingFrequency",void 0),a([e.Column("smallint",{name:"contractLength"}),n("design:type",Number)],We.prototype,"contractLength",void 0),a([e.Column("smallint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],We.prototype,"numberOfBillingCycles",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],We.prototype,"description",void 0),a([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],We.prototype,"name",void 0),a([e.Column("varchar",{name:"price",length:50}),n("design:type",String)],We.prototype,"price",void 0),a([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],We.prototype,"trialDuration",void 0),a([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:20}),n("design:type",String)],We.prototype,"trialDurationUnit",void 0),a([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],We.prototype,"trialPeriod",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],We.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",precision:0}),n("design:type",Date)],We.prototype,"updatedAt",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Array)],We.prototype,"addOns",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Array)],We.prototype,"discounts",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0,precision:0}),n("design:type",Date)],We.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0,precision:0}),n("design:type",Date)],We.prototype,"endDate",void 0),We=a([e.Index("ixBillingPlansPlanId",["planId"],{}),e.Index("ixBillingPlansStatus",["status"],{}),e.Index("ixBillingPlansTargetCustomer",["targetCustomer"],{}),e.Index("ixBillingPlansStartDate_EndDate",["startDate","endDate"],{}),e.Entity("billingPlans",{schema:"nova"})],We);let _e=class{id;deviceTypeId;planId;deviceTypeModel;deviceType;createdAt;status;billingPlans};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],_e.prototype,"id",void 0),a([e.Column("int",{name:"deviceTypeId"}),n("design:type",Number)],_e.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],_e.prototype,"planId",void 0),a([e.Column("varchar",{name:"deviceTypeModel",length:50}),n("design:type",String)],_e.prototype,"deviceTypeModel",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],_e.prototype,"deviceType",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],_e.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],_e.prototype,"status",void 0),a([e.ManyToOne((()=>We),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"planId",referencedColumnName:"planId"}),n("design:type",Object)],_e.prototype,"billingPlans",void 0),_e=a([e.Index("ixBillingDeviceTypePlanDeviceTypeId",["deviceTypeId"],{}),e.Index("ixBillingDeviceTypePlanStatus",["status"],{}),e.Index("ixBillingDeviceTypePlanPlanId",["planId"],{}),e.Index("ixBillingDeviceTypePlanDeviceTypeModel",["deviceTypeModel"],{}),e.Entity("billingDeviceTypePlan",{schema:"nova"})],_e);let je=class{id;owner;amountPaid;bankOfIssuer;billingAddress;billingAddressCity;billingAddressCountry;billingAddressLine1;billingAddressLine2;billingAddressState;billingAddressZip;createdByUserId;currencyCode;customer;grossAmount;lastFourDigits;lineItemDiscountAmount;netAmount;objectCreateDateTime;objectId;objectLastModifiedDateTime;orderDiscountAmount;orderDiscountCode;orderDiscountPercentage;ownerAssignedDateTime;paymentDateTime;paymentId;paymentMethod;paymentSourceName;paymentType;processingFees;refunded;shippingAddress;shippingAddressCity;shippingAddressCountry;shippingAddressLine1;shippingAddressLine2;shippingAddressState;shippingAddressZip;source;sourceId;sourceUrl;status;statusUpdatedOn;totalDiscountAmount;totalFees;totalTaxes;updatedByUserId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],je.prototype,"id",void 0),a([e.Column("varchar",{name:"owner",nullable:!0,length:50}),n("design:type",String)],je.prototype,"owner",void 0),a([e.Column("decimal",{name:"amountPaid",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"amountPaid",void 0),a([e.Column("varchar",{name:"bankOfIssuer",nullable:!0,length:50}),n("design:type",String)],je.prototype,"bankOfIssuer",void 0),a([e.Column("varchar",{name:"billingAddress",nullable:!0,length:255}),n("design:type",String)],je.prototype,"billingAddress",void 0),a([e.Column("varchar",{name:"billingAddressCity",nullable:!0,length:50}),n("design:type",String)],je.prototype,"billingAddressCity",void 0),a([e.Column("varchar",{name:"billingAddressCountry",nullable:!0,length:3}),n("design:type",String)],je.prototype,"billingAddressCountry",void 0),a([e.Column("varchar",{name:"billingAddressLine1",nullable:!0,length:255}),n("design:type",String)],je.prototype,"billingAddressLine1",void 0),a([e.Column("varchar",{name:"billingAddressLine2",nullable:!0,length:255}),n("design:type",String)],je.prototype,"billingAddressLine2",void 0),a([e.Column("varchar",{name:"billingAddressState",nullable:!0,length:50}),n("design:type",String)],je.prototype,"billingAddressState",void 0),a([e.Column("varchar",{name:"billingAddressZip",nullable:!0,length:50}),n("design:type",String)],je.prototype,"billingAddressZip",void 0),a([e.Column("varchar",{name:"createdByUserId",nullable:!0,length:50}),n("design:type",String)],je.prototype,"createdByUserId",void 0),a([e.Column("varchar",{name:"currencyCode",nullable:!0,length:3}),n("design:type",String)],je.prototype,"currencyCode",void 0),a([e.Column("varchar",{name:"customer",nullable:!0,length:50}),n("design:type",String)],je.prototype,"customer",void 0),a([e.Column("decimal",{name:"grossAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"grossAmount",void 0),a([e.Column("varchar",{name:"lastFourDigits",nullable:!0,length:4}),n("design:type",String)],je.prototype,"lastFourDigits",void 0),a([e.Column("decimal",{name:"lineItemDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"lineItemDiscountAmount",void 0),a([e.Column("decimal",{name:"netAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"netAmount",void 0),a([e.Column("datetime",{name:"objectCreateDateTime",nullable:!0}),n("design:type",Date)],je.prototype,"objectCreateDateTime",void 0),a([e.Column("varchar",{name:"objectId",nullable:!0,length:20}),n("design:type",String)],je.prototype,"objectId",void 0),a([e.Column("datetime",{name:"objectLastModifiedDateTime",nullable:!0}),n("design:type",Date)],je.prototype,"objectLastModifiedDateTime",void 0),a([e.Column("decimal",{name:"orderDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"orderDiscountAmount",void 0),a([e.Column("varchar",{name:"orderDiscountCode",nullable:!0,length:50}),n("design:type",String)],je.prototype,"orderDiscountCode",void 0),a([e.Column("smallint",{name:"orderDiscountPercentage",default:0}),n("design:type",Number)],je.prototype,"orderDiscountPercentage",void 0),a([e.Column("datetime",{name:"ownerAssignedDateTime",nullable:!0}),n("design:type",Date)],je.prototype,"ownerAssignedDateTime",void 0),a([e.Column("datetime",{name:"paymentDateTime",nullable:!0}),n("design:type",Date)],je.prototype,"paymentDateTime",void 0),a([e.Column("varchar",{name:"paymentId",nullable:!0,length:20}),n("design:type",String)],je.prototype,"paymentId",void 0),a([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:10}),n("design:type",String)],je.prototype,"paymentMethod",void 0),a([e.Column("varchar",{name:"paymentSourceName",nullable:!0,length:255}),n("design:type",String)],je.prototype,"paymentSourceName",void 0),a([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],je.prototype,"paymentType",void 0),a([e.Column("decimal",{name:"processingFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"processingFees",void 0),a([e.Column("decimal",{name:"refunded",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"refunded",void 0),a([e.Column("varchar",{name:"shippingAddress",nullable:!0,length:255}),n("design:type",String)],je.prototype,"shippingAddress",void 0),a([e.Column("varchar",{name:"shippingAddressCity",nullable:!0,length:50}),n("design:type",String)],je.prototype,"shippingAddressCity",void 0),a([e.Column("varchar",{name:"shippingAddressCountry",nullable:!0,length:3}),n("design:type",String)],je.prototype,"shippingAddressCountry",void 0),a([e.Column("varchar",{name:"shippingAddressLine1",nullable:!0,length:255}),n("design:type",String)],je.prototype,"shippingAddressLine1",void 0),a([e.Column("varchar",{name:"shippingAddressLine2",nullable:!0,length:255}),n("design:type",String)],je.prototype,"shippingAddressLine2",void 0),a([e.Column("varchar",{name:"shippingAddressState",nullable:!0,length:50}),n("design:type",String)],je.prototype,"shippingAddressState",void 0),a([e.Column("varchar",{name:"shippingAddressZip",nullable:!0,length:50}),n("design:type",String)],je.prototype,"shippingAddressZip",void 0),a([e.Column("varchar",{name:"source",nullable:!0,length:20}),n("design:type",String)],je.prototype,"source",void 0),a([e.Column("varchar",{name:"sourceId",nullable:!0,length:20}),n("design:type",String)],je.prototype,"sourceId",void 0),a([e.Column("varchar",{name:"sourceUrl",nullable:!0,length:255}),n("design:type",String)],je.prototype,"sourceUrl",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],je.prototype,"status",void 0),a([e.Column("datetime",{name:"statusUpdatedOn",nullable:!0}),n("design:type",Date)],je.prototype,"statusUpdatedOn",void 0),a([e.Column("decimal",{name:"totalDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"totalDiscountAmount",void 0),a([e.Column("decimal",{name:"totalFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"totalFees",void 0),a([e.Column("decimal",{name:"totalTaxes",nullable:!0,precision:19,scale:4}),n("design:type",Number)],je.prototype,"totalTaxes",void 0),a([e.Column("varchar",{name:"updatedByUserId",nullable:!0,length:20}),n("design:type",String)],je.prototype,"updatedByUserId",void 0),je=a([e.Entity("billingHubspotPaymentLog",{schema:"nova"})],je);let ze=class{clientId;firstName;lastName;billingEmail;shippingEmail;streetAddress;city;region;country;postalCode;phone;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ze.prototype,"clientId",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],ze.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],ze.prototype,"lastName",void 0),a([e.Column("varchar",{name:"billingEmail",nullable:!0,length:255}),n("design:type",String)],ze.prototype,"billingEmail",void 0),a([e.Column("varchar",{name:"shippingEmail",nullable:!0,length:255}),n("design:type",String)],ze.prototype,"shippingEmail",void 0),a([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],ze.prototype,"streetAddress",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],ze.prototype,"city",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],ze.prototype,"region",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],ze.prototype,"country",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],ze.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],ze.prototype,"phone",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ze.prototype,"createdAt",void 0),ze=a([e.Index("ixBillingKlarnaCustomerShippingEmail",["shippingEmail"],{}),e.Index("ixBillingKlarnaCustomerClientId",["clientId"],{}),e.Entity("billingKlarnaCustomer",{schema:"nova"})],ze);let Ve=class{imei;clientId;orderId;deviceType;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;paymentType;createdAt};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Ve.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ve.prototype,"clientId",void 0),a([e.Column("varchar",{name:"orderId",length:255}),n("design:type",String)],Ve.prototype,"orderId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Ve.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ve.prototype,"planId",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ve.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ve.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ve.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ve.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ve.prototype,"status",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],Ve.prototype,"discounts",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],Ve.prototype,"addOns",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ve.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],Ve.prototype,"paymentMethodToken",void 0),a([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],Ve.prototype,"paymentType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],Ve.prototype,"createdAt",void 0),Ve=a([e.Index("ixBillingKlarnaOrderOrderId",["orderId"],{}),e.Entity("billingKlarnaOrder",{schema:"nova"})],Ve);let Ge=class{featureId;planId;feature;status};a([e.PrimaryGeneratedColumn({type:"int",name:"featureId"}),n("design:type",Number)],Ge.prototype,"featureId",void 0),a([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],Ge.prototype,"planId",void 0),a([e.Column("text",{name:"feature",nullable:!0}),n("design:type",String)],Ge.prototype,"feature",void 0),a([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],Ge.prototype,"status",void 0),Ge=a([e.Entity("billingPlanFeatures",{schema:"nova"})],Ge);let Je=class{id;timestamp;status;balance;price;currencyIsoCode;planId;subscriptionId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Je.prototype,"id",void 0),a([e.Column("varchar",{name:"timestamp",nullable:!0,length:255}),n("design:type",String)],Je.prototype,"timestamp",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Je.prototype,"status",void 0),a([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"balance",void 0),a([e.Column("decimal",{name:"price",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"price",void 0),a([e.Column("varchar",{name:"currencyIsoCode",nullable:!0,length:3}),n("design:type",String)],Je.prototype,"currencyIsoCode",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:25}),n("design:type",String)],Je.prototype,"subscriptionId",void 0),Je=a([e.Index("ixBillingStatusHistoryBraintreeSubscriptionIdTimestamp",["subscriptionId","timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeTimestamp",["timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingStatusHistoryBraintree",{schema:"nova"})],Je);let He=class{imei;clientId;subscriptionId;deviceType;asin;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;scheduledSuspension;paymentSkipped;existsInBraintree;createdAt};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],He.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],He.prototype,"clientId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],He.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],He.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],He.prototype,"asin",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],He.prototype,"planId",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ue}),n("design:type",Date)],He.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ue}),n("design:type",Date)],He.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ue}),n("design:type",Date)],He.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],He.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],He.prototype,"status",void 0),a([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],He.prototype,"discounts",void 0),a([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],He.prototype,"addOns",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],He.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],He.prototype,"paymentMethodToken",void 0),a([e.Column("datetime",{name:"scheduledSuspension",nullable:!0,transformer:new Ue}),n("design:type",Date)],He.prototype,"scheduledSuspension",void 0),a([e.Column("tinyint",{name:"paymentSkipped",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],He.prototype,"paymentSkipped",void 0),a([e.Column("tinyint",{name:"existsInBraintree",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],He.prototype,"existsInBraintree",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],He.prototype,"createdAt",void 0),He=a([e.Index("ixBillingSubscriptionAmazonSubscriptionId",["subscriptionId"]),e.Entity("billingSubscriptionAmazon",{schema:"nova"})],He);let Ke=class{subscriptionId;customerId;planId;createdAt;updatedAt;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;subscriptionPeriodMonths;paymentInstrumentType;paymentInstrumentDetails;isPaused;discountDetails;addons;balance;currentBillingCycle;daysPastDue;description;descriptor;failureCount;firstBillingDate;merchantAccountId;nextBillingPeriodAmount;numberOfBillingCycles;paidThroughDate;paymentMethodToken;statusHistory;trialDuration;trialDurationUnit;trialPeriod};a([e.Column("varchar",{primary:!0,name:"subscriptionId",length:50}),n("design:type",String)],Ke.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"customerId",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"customerId",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"planId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"updatedAt",void 0),a([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ke.prototype,"subscriptionStart",void 0),a([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ke.prototype,"subscriptionEnd",void 0),a([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ke.prototype,"nextBillingDate",void 0),a([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ke.prototype,"subscriptionValue",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ke.prototype,"status",void 0),a([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],Ke.prototype,"subscriptionPeriodMonths",void 0),a([e.Column("varchar",{name:"paymentInstrumentType",nullable:!0,length:20}),n("design:type",String)],Ke.prototype,"paymentInstrumentType",void 0),a([e.Column("json",{name:"paymentInstrumentDetails",nullable:!0}),n("design:type",Object)],Ke.prototype,"paymentInstrumentDetails",void 0),a([e.Column("tinyint",{name:"isPaused",nullable:!0,width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Ke.prototype,"isPaused",void 0),a([e.Column("json",{name:"discountDetails",nullable:!0}),n("design:type",Object)],Ke.prototype,"discountDetails",void 0),a([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],Ke.prototype,"addons",void 0),a([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ke.prototype,"balance",void 0),a([e.Column("tinyint",{name:"currentBillingCycle",nullable:!0}),n("design:type",Number)],Ke.prototype,"currentBillingCycle",void 0),a([e.Column("tinyint",{name:"daysPastDue",nullable:!0}),n("design:type",Number)],Ke.prototype,"daysPastDue",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Ke.prototype,"description",void 0),a([e.Column("json",{name:"descriptor",nullable:!0}),n("design:type",Object)],Ke.prototype,"descriptor",void 0),a([e.Column("tinyint",{name:"failureCount",nullable:!0}),n("design:type",Number)],Ke.prototype,"failureCount",void 0),a([e.Column("date",{name:"firstBillingDate",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ke.prototype,"firstBillingDate",void 0),a([e.Column("varchar",{name:"merchantAccountId",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"merchantAccountId",void 0),a([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ke.prototype,"nextBillingPeriodAmount",void 0),a([e.Column("tinyint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],Ke.prototype,"numberOfBillingCycles",void 0),a([e.Column("date",{name:"paidThroughDate",nullable:!0,transformer:new Ue}),n("design:type",Date)],Ke.prototype,"paidThroughDate",void 0),a([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"paymentMethodToken",void 0),a([e.Column("json",{name:"statusHistory",nullable:!0}),n("design:type",Object)],Ke.prototype,"statusHistory",void 0),a([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],Ke.prototype,"trialDuration",void 0),a([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:10}),n("design:type",String)],Ke.prototype,"trialDurationUnit",void 0),a([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],Ke.prototype,"trialPeriod",void 0),Ke=a([e.Index("ixBillingSubscriptionBraintreeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingSubscriptionBraintree",{schema:"nova"})],Ke);let $e=class{blacklistTypeId;value;notes;createdAt;createdBy;modifiedAt;modifiedBy};a([e.Column("tinyint",{primary:!0,name:"blacklistTypeId"}),n("design:type",Number)],$e.prototype,"blacklistTypeId",void 0),a([e.Column("varchar",{primary:!0,name:"value",length:255}),n("design:type",String)],$e.prototype,"value",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],$e.prototype,"notes",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],$e.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",length:255}),n("design:type",String)],$e.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],$e.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:255}),n("design:type",String)],$e.prototype,"modifiedBy",void 0),$e=a([e.Entity("blacklist",{schema:"nova"})],$e);let Xe=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Xe.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Xe.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],Xe.prototype,"description",void 0),Xe=a([e.Entity("blacklistType",{schema:"nova"})],Xe);let Ye=class{id;imeiMain;btmacMain;bleMac;connectionType;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ye.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],Ye.prototype,"imeiMain",void 0),a([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],Ye.prototype,"btmacMain",void 0),a([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],Ye.prototype,"bleMac",void 0),a([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],Ye.prototype,"connectionType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ye.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ye.prototype,"modifiedAt",void 0),Ye=a([e.Index("ixuBLEMeshConfigurationImeiMainBLEMac",["imeiMain","bleMac"],{unique:!0}),e.Entity("bleMeshConfiguration",{schema:"nova"})],Ye);let Ze=class{id;name;type;buffer;createdAt;modifiedAt;createdBy;modifiedBy;clientId;location;status;radiusDisplayUnit;dataSourceTypeId;geometry;color;isUserCreated;area;centerLat;centerLon;securityGroupEntityTags};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ze.prototype,"id",void 0),a([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],Ze.prototype,"name",void 0),a([e.Column("char",{name:"type",nullable:!0,length:1}),n("design:type",String)],Ze.prototype,"type",void 0),a([e.Column("varchar",{name:"buffer",nullable:!0,length:50}),n("design:type",String)],Ze.prototype,"buffer",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ze.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ze.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],Ze.prototype,"createdBy",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],Ze.prototype,"modifiedBy",void 0),a([e.Column("int",{name:"clientId",default:()=>"'0'"}),n("design:type",Number)],Ze.prototype,"clientId",void 0),a([e.Column("varchar",{name:"location",nullable:!0,length:255}),n("design:type",String)],Ze.prototype,"location",void 0),a([e.Column("tinyint",{name:"status",default:()=>"'1'"}),n("design:type",Number)],Ze.prototype,"status",void 0),a([e.Column("char",{name:"radiusDisplayUnit",nullable:!0,length:2}),n("design:type",String)],Ze.prototype,"radiusDisplayUnit",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ze.prototype,"dataSourceTypeId",void 0),a([e.Column("text",{name:"geometry",nullable:!0}),n("design:type",String)],Ze.prototype,"geometry",void 0),a([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],Ze.prototype,"color",void 0),a([e.Column("tinyint",{name:"isUserCreated",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Ze.prototype,"isUserCreated",void 0),a([e.Column("float",{name:"area",nullable:!0}),n("design:type",Number)],Ze.prototype,"area",void 0),a([e.Column("decimal",{name:"centerLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ze.prototype,"centerLat",void 0),a([e.Column("decimal",{name:"centerLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ze.prototype,"centerLon",void 0),Ze=a([e.Index("ixBoundaryClientIdStatus",["clientId","status"],{}),e.Index("ixBoundaryStatus",["status"],{}),e.Entity("boundary",{schema:"nova"})],Ze);let et=class{id;deviceId;boundaryId;inDate;inLat;inLon;inAddress;outDate;outLat;outLon;outAddress;inOutDuration;createdAt;modifiedAt;imei;userId;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],et.prototype,"id",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],et.prototype,"deviceId",void 0),a([e.Column("int",{name:"boundaryId"}),n("design:type",Number)],et.prototype,"boundaryId",void 0),a([e.Column("datetime",{name:"inDate",precision:3,nullable:!0}),n("design:type",Date)],et.prototype,"inDate",void 0),a([e.Column("decimal",{name:"inLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],et.prototype,"inLat",void 0),a([e.Column("decimal",{name:"inLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],et.prototype,"inLon",void 0),a([e.Column("varchar",{name:"inAddress",nullable:!0,length:255}),n("design:type",String)],et.prototype,"inAddress",void 0),a([e.Column("datetime",{name:"outDate",precision:3,nullable:!0}),n("design:type",Date)],et.prototype,"outDate",void 0),a([e.Column("decimal",{name:"outLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],et.prototype,"outLat",void 0),a([e.Column("decimal",{name:"outLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],et.prototype,"outLon",void 0),a([e.Column("varchar",{name:"outAddress",nullable:!0,length:255}),n("design:type",String)],et.prototype,"outAddress",void 0),a([e.Column("int",{name:"inOutDuration",nullable:!0}),n("design:type",Number)],et.prototype,"inOutDuration",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],et.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],et.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],et.prototype,"imei",void 0),a([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],et.prototype,"userId",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],et.prototype,"deleted",void 0),et=a([e.Index("ixBoundaryEventDeviceId_BoundaryId_UserId_InDate",["deviceId","boundaryId","userId","inDate"],{}),e.Index("ixBoundaryEventDeviceId_BoundaryId_UserId_OutDate",["deviceId","boundaryId","userId","outDate"],{}),e.Index("ixBoundaryEventDeviceId",["deviceId"],{}),e.Index("ixBoundaryEventBoundaryId",["boundaryId"],{}),e.Index("ixBoundaryEventOutAtInAt",["outDate","inDate"],{}),e.Index("ixBoundaryEventUserId",["userId"],{}),e.Entity("boundaryEvent",{schema:"nova"})],et);let tt=class{id;mcc;mnc;lac;radio;lat;lon;range;createdAt;updatedAt};a([e.Column("int",{primary:!0,name:"id"}),n("design:type",Number)],tt.prototype,"id",void 0),a([e.Column("tinyint",{name:"mcc",nullable:!0}),n("design:type",Number)],tt.prototype,"mcc",void 0),a([e.Column("tinyint",{name:"mnc",nullable:!0}),n("design:type",Number)],tt.prototype,"mnc",void 0),a([e.Column("mediumint",{name:"lac",nullable:!0}),n("design:type",Number)],tt.prototype,"lac",void 0),a([e.Column("varchar",{name:"radio",nullable:!0,length:5}),n("design:type",String)],tt.prototype,"radio",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],tt.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],tt.prototype,"lon",void 0),a([e.Column("mediumint",{name:"range",nullable:!0}),n("design:type",Number)],tt.prototype,"range",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],tt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],tt.prototype,"updatedAt",void 0),tt=a([e.Entity("cellTower",{schema:"nova"})],tt);let it=class{clientId;appFeatureTypeId;appFeatureType;entityId;statusId};a([e.Column({type:"int",name:"clientId",primary:!0}),n("design:type",Number)],it.prototype,"clientId",void 0),a([e.Column({type:"int",name:"appFeatureTypeId",primary:!0}),n("design:type",Number)],it.prototype,"appFeatureTypeId",void 0),a([e.ManyToOne((()=>y),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],it.prototype,"appFeatureType",void 0),a([e.Column({type:"int",name:"entityId",primary:!0}),n("design:type",Number)],it.prototype,"entityId",void 0),a([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],it.prototype,"statusId",void 0),it=a([e.Entity("clientAppFeature",{schema:"nova"})],it);let rt=class{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels};a([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],rt.prototype,"clientId",void 0),a([e.Column("double",{name:"movementTripThreshold",nullable:!0}),n("design:type",Number)],rt.prototype,"movementTripThreshold",void 0),a([e.Column("double",{name:"stopTripThreshold",nullable:!0}),n("design:type",Number)],rt.prototype,"stopTripThreshold",void 0),a([e.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),n("design:type",Number)],rt.prototype,"mapUpdateMode",void 0),a([e.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),n("design:type",Number)],rt.prototype,"maxUsersAllowed",void 0),a([e.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),n("design:type",String)],rt.prototype,"ssoDomain",void 0),a([e.Column("json",{name:"ssoMetadata",nullable:!0}),n("design:type",Object)],rt.prototype,"ssoMetadata",void 0),a([e.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),n("design:type",Object)],rt.prototype,"assetProfileStatusLabels",void 0),rt=a([e.Entity("clientConfiguration",{schema:"nova"}),e.Index("ssoDomain",["ssoDomain"],{unique:!0})],rt);let at=class{id;clientId;imei;movingPingFrequency;stoppedPingFrequency;fixedStatus;generateTrips;stopThresholdMinutes;offlineThresholdMinutes;movementThresholdSpeed;externalBatteryInformation;reportingMode;starterInterruptInstalled};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],at.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],at.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],at.prototype,"imei",void 0),a([e.Column("mediumint",{name:"movingPingFrequency",nullable:!0}),n("design:type",Number)],at.prototype,"movingPingFrequency",void 0),a([e.Column("mediumint",{name:"stoppedPingFrequency",nullable:!0}),n("design:type",Number)],at.prototype,"stoppedPingFrequency",void 0),a([e.Column("varchar",{name:"fixedStatus",nullable:!0,length:3}),n("design:type",String)],at.prototype,"fixedStatus",void 0),a([e.Column("tinyint",{name:"generateTrips",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],at.prototype,"generateTrips",void 0),a([e.Column("smallint",{name:"stopThresholdMinutes",nullable:!0}),n("design:type",Number)],at.prototype,"stopThresholdMinutes",void 0),a([e.Column("smallint",{name:"offlineThresholdMinutes",nullable:!0}),n("design:type",Number)],at.prototype,"offlineThresholdMinutes",void 0),a([e.Column("float",{name:"movementThresholdSpeed",nullable:!0}),n("design:type",Number)],at.prototype,"movementThresholdSpeed",void 0),a([e.Column("tinyint",{name:"externalBatteryInformation",nullable:!0,width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],at.prototype,"externalBatteryInformation",void 0),a([e.Column("varchar",{length:30,nullable:!0,default:""}),n("design:type",String)],at.prototype,"reportingMode",void 0),a([e.Column("tinyint",{name:"starterInterruptInstalled",width:1,default:()=>"'0'",transformer:new p,nullable:!0}),n("design:type",Boolean)],at.prototype,"starterInterruptInstalled",void 0),at=a([e.Index("ixuUserDeviceSettingClientIdImei",["clientId","imei"],{unique:!0}),e.Index("ixClientDeviceSettingImei",["imei"],{}),e.Entity("clientDeviceSetting",{schema:"nova"})],at);let nt=class{id;clientId;userActivationId;tokenUrl;fleetUrl;requestParams;isEnabled;systemName;synchroParams};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],nt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],nt.prototype,"clientId",void 0),a([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],nt.prototype,"userActivationId",void 0),a([e.Column("varchar",{name:"tokenUrl",length:250}),n("design:type",String)],nt.prototype,"tokenUrl",void 0),a([e.Column("varchar",{name:"fleetUrl",length:250}),n("design:type",String)],nt.prototype,"fleetUrl",void 0),a([e.Column("json",{name:"requestParams"}),n("design:type",Object)],nt.prototype,"requestParams",void 0),a([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new p,default:()=>"'1'"}),n("design:type",Boolean)],nt.prototype,"isEnabled",void 0),a([e.Column("varchar",{name:"systemName",length:250,default:"aemp"}),n("design:type",String)],nt.prototype,"systemName",void 0),a([e.Column("json",{name:"synchroParams",nullable:!0}),n("design:type",Object)],nt.prototype,"synchroParams",void 0),nt=a([e.Index("ixClientIngestorConfigurationClientId",["clientId"],{}),e.Entity("clientIngestorConfiguration",{schema:"nova"})],nt);let ot=class{id;clientId;createdAt;completedAt;dataType;status;parameters;exportLocation;downloadLink;imei;client};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],ot.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ot.prototype,"clientId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ot.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],ot.prototype,"completedAt",void 0),a([e.Column("varchar",{name:"dataType",length:100,nullable:!0}),n("design:type",String)],ot.prototype,"dataType",void 0),a([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],ot.prototype,"status",void 0),a([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],ot.prototype,"parameters",void 0),a([e.Column("varchar",{name:"exportLocation",length:500,nullable:!0}),n("design:type",String)],ot.prototype,"exportLocation",void 0),a([e.Column("varchar",{name:"downloadLink",length:3e3,nullable:!0}),n("design:type",String)],ot.prototype,"downloadLink",void 0),a([e.Column("varchar",{name:"imei",length:16,nullable:!0}),n("design:type",String)],ot.prototype,"imei",void 0),a([e.OneToOne((()=>me),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],ot.prototype,"client",void 0),ot=a([e.Entity("dataExport",{schema:"nova"})],ot);let st=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],st.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],st.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],st.prototype,"description",void 0),st=a([e.Entity("dataSourceType",{schema:"nova"})],st);let lt=class{id;imei;clientId;billingSubscriptionId;planId;billingPlatform;deactivationReason;deactivationReasonId;createdBy;createdAt;scheduledDate;displayOrder};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],lt.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],lt.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],lt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"billingSubscriptionId",length:50,nullable:!0}),n("design:type",String)],lt.prototype,"billingSubscriptionId",void 0),a([e.Column("varchar",{name:"planId",length:50,nullable:!0}),n("design:type",String)],lt.prototype,"planId",void 0),a([e.Column("varchar",{name:"billingPlatform",length:100,nullable:!0}),n("design:type",String)],lt.prototype,"billingPlatform",void 0),a([e.Column("varchar",{name:"deactivationReason",nullable:!0,length:2e3}),n("design:type",String)],lt.prototype,"deactivationReason",void 0),a([e.Column("tinyint",{name:"deactivationReasonId",nullable:!0}),n("design:type",Number)],lt.prototype,"deactivationReasonId",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],lt.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],lt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"scheduledDate",nullable:!0}),n("design:type",Date)],lt.prototype,"scheduledDate",void 0),a([e.Column("tinyint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],lt.prototype,"displayOrder",void 0),lt=a([e.Index("ixDeactivationClientId",["clientId"],{}),e.Index("ixDeactivationBillingSubscriptionIdDeactivationReasonId",["billingSubscriptionId","deactivationReasonId"],{}),e.Index("ixDeactivationDeactivationReasonId",["deactivationReasonId"],{}),e.Index("ixDeactivationImei",["imei"],{}),e.Entity("deactivation",{schema:"nova"})],lt);let dt=class{id;text;code;customerVisible};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],dt.prototype,"id",void 0),a([e.Column("varchar",{name:"text",length:255}),n("design:type",String)],dt.prototype,"text",void 0),a([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],dt.prototype,"code",void 0),a([e.Column("tinyint",{name:"customerVisible",width:1,default:()=>"'1'"}),n("design:type",Boolean)],dt.prototype,"customerVisible",void 0),dt=a([e.Entity("deactivationReason",{schema:"nova"})],dt);let ut=class{id;deviceTypeId;name;description;type;status;behaviorName;behaviorParams;extraParams;pendingNotes;clientId;imei;icon;confirmationNotes;ordinalPosition;stage;additionalSettings;blocking;displayType;minWebVersion;minAppVersion;minProtocolVersion;maxProtocolVersion;isACKBehavior};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ut.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],ut.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ut.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],ut.prototype,"description",void 0),a([e.Column("varchar",{name:"type",nullable:!0,length:25}),n("design:type",String)],ut.prototype,"type",void 0),a([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],ut.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],ut.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],ut.prototype,"behaviorParams",void 0),a([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],ut.prototype,"extraParams",void 0),a([e.Column("varchar",{name:"pendingNotes",nullable:!0,length:1e3}),n("design:type",String)],ut.prototype,"pendingNotes",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],ut.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ut.prototype,"imei",void 0),a([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"icon",void 0),a([e.Column("varchar",{name:"confirmationNotes",nullable:!0,length:1e3}),n("design:type",String)],ut.prototype,"confirmationNotes",void 0),a([e.Column("tinyint",{name:"ordinalPosition",default:()=>"'1'"}),n("design:type",Number)],ut.prototype,"ordinalPosition",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],ut.prototype,"stage",void 0),a([e.Column("json",{name:"additionalSettings",nullable:!0}),n("design:type",Object)],ut.prototype,"additionalSettings",void 0),a([e.Column("tinyint",{name:"blocking",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ut.prototype,"blocking",void 0),a([e.Column("varchar",{name:"displayType",nullable:!0,length:25}),n("design:type",String)],ut.prototype,"displayType",void 0),a([e.Column("varchar",{name:"minWebVersion",nullable:!0,length:20}),n("design:type",String)],ut.prototype,"minWebVersion",void 0),a([e.Column("varchar",{name:"minAppVersion",nullable:!0,length:20}),n("design:type",String)],ut.prototype,"minAppVersion",void 0),a([e.Column("varchar",{name:"minProtocolVersion",nullable:!0}),n("design:type",String)],ut.prototype,"minProtocolVersion",void 0),a([e.Column("varchar",{name:"maxProtocolVersion",nullable:!0}),n("design:type",String)],ut.prototype,"maxProtocolVersion",void 0),a([e.Column("tinyint",{name:"isACKBehavior",nullable:!0,width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],ut.prototype,"isACKBehavior",void 0),ut=a([e.Index("ixDeviceBehaviorDeviceTypeId",["deviceTypeId"],{}),e.Index("ixDeviceBehaviorClientId",["clientId"],{}),e.Index("ixDeviceBehaviorImei",["imei"],{}),e.Index("ixDeviceBehaviorType",["type"],{}),e.Index("ixDeviceBehaviorOrdinalPosition",["ordinalPosition"],{}),e.Entity("deviceBehavior",{schema:"nova"})],ut);let ct=class{id;clientId;deviceId;deviceBleMeshId;status;behaviorName;behaviorParams;createdAt;modifiedAt;device;deviceBleMesh};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],ct.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ct.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],ct.prototype,"deviceId",void 0),a([e.Column("int",{name:"deviceBleMeshId"}),n("design:type",Number)],ct.prototype,"deviceBleMeshId",void 0),a([e.Column("varchar",{name:"status",length:100}),n("design:type",String)],ct.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",nullable:!0,length:100}),n("design:type",String)],ct.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],ct.prototype,"behaviorParams",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ct.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ct.prototype,"modifiedAt",void 0),a([e.OneToOne((()=>ue),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ct.prototype,"device",void 0),a([e.OneToOne((()=>Me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ct.prototype,"deviceBleMesh",void 0),ct=a([e.Index("ixDeviceBleMeshUpdateTask_clientId_modifiedAt",["clientId","modifiedAt"],{}),e.Entity("deviceBleMeshUpdateTask",{schema:"nova"})],ct);let pt=class{id;code;name;bitPosition};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],pt.prototype,"id",void 0),a([e.Column("varchar",{name:"code",length:2}),n("design:type",String)],pt.prototype,"code",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],pt.prototype,"name",void 0),a([e.Column("smallint",{name:"bitPosition",nullable:!0}),n("design:type",Number)],pt.prototype,"bitPosition",void 0),pt=a([e.Index("ixCode",["code"],{unique:!0}),e.Entity("deviceCameraMediaEventType",{schema:"nova"})],pt);let mt=class{id;commandSequenceNumber;clientId;imei;cameraSource;createdAt;status;receivedFileName;requestedBy;requestedByUser};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],mt.prototype,"id",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],mt.prototype,"commandSequenceNumber",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],mt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],mt.prototype,"imei",void 0),a([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],mt.prototype,"cameraSource",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],mt.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],mt.prototype,"status",void 0),a([e.Column("varchar",{name:"receivedFileName",nullable:!0}),n("design:type",String)],mt.prototype,"receivedFileName",void 0),a([e.Column("binary",{name:"requestedBy",length:16,transformer:ne}),n("design:type",String)],mt.prototype,"requestedBy",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],mt.prototype,"requestedByUser",void 0),mt=a([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Index("ix_commandSequenceNumber",["commandSequenceNumber"],{unique:!0}),e.Entity("deviceCameraRequestedPictureData",{schema:"nova"})],mt);let gt=class{id;commandSequenceNumber;clientId;imei;startTime;duration;cameraSource;createdAt;totalFilesCount;receivedFilesCount;receivedFiles;status;resultFileName;requestedBy;requestedByUser};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],gt.prototype,"id",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],gt.prototype,"commandSequenceNumber",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],gt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],gt.prototype,"imei",void 0),a([e.Column("datetime",{name:"startTime"}),n("design:type",Date)],gt.prototype,"startTime",void 0),a([e.Column("int",{name:"duration"}),n("design:type",Number)],gt.prototype,"duration",void 0),a([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],gt.prototype,"cameraSource",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],gt.prototype,"createdAt",void 0),a([e.Column("int",{name:"totalFilesCount",nullable:!0,default:0}),n("design:type",Number)],gt.prototype,"totalFilesCount",void 0),a([e.Column("int",{name:"receivedFilesCount",nullable:!0,default:0}),n("design:type",Number)],gt.prototype,"receivedFilesCount",void 0),a([e.Column("json",{name:"receivedFiles",nullable:!0}),n("design:type",Array)],gt.prototype,"receivedFiles",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],gt.prototype,"status",void 0),a([e.Column("varchar",{name:"resultFileName",nullable:!0}),n("design:type",String)],gt.prototype,"resultFileName",void 0),a([e.Column("binary",{name:"requestedBy",length:16,transformer:ne}),n("design:type",String)],gt.prototype,"requestedBy",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],gt.prototype,"requestedByUser",void 0),gt=a([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Index("ix_commandSequenceNumber",["commandSequenceNumber"],{unique:!0}),e.Entity("deviceCameraRequestedVideoData",{schema:"nova"})],gt);let yt=class{clientId;imei;mediaFileName;s3FilesPath;thumbnailsFileName;lat;lon;address;messageId;eventTypeId;mediaType;cameraSource;mediaLocation;eventType;createdAt;tripId;requestedVideoDataId;requestedVideoData;requestedPictureDataId;requestedPictureData};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],yt.prototype,"clientId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],yt.prototype,"imei",void 0),a([e.PrimaryColumn("varchar",{name:"mediaFileName",length:255}),n("design:type",String)],yt.prototype,"mediaFileName",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],yt.prototype,"s3FilesPath",void 0),a([e.Column("varchar",{name:"thumbnailsFileName",nullable:!0,length:255}),n("design:type",String)],yt.prototype,"thumbnailsFileName",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],yt.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],yt.prototype,"lon",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],yt.prototype,"address",void 0),a([e.Column("binary",{name:"messageId",nullable:!0,length:16}),n("design:type",Buffer)],yt.prototype,"messageId",void 0),a([e.Column("smallint",{name:"eventTypeId",nullable:!0}),n("design:type",Number)],yt.prototype,"eventTypeId",void 0),a([e.Column("enum",{name:"mediaType",nullable:!0,enum:Object.values(F),comment:"The type of the media: image or video"}),n("design:type",String)],yt.prototype,"mediaType",void 0),a([e.Column("enum",{name:"cameraSource",nullable:!0,enum:Object.values(Q),comment:"The camera source: front or interior"}),n("design:type",String)],yt.prototype,"cameraSource",void 0),a([e.Column("enum",{name:"mediaLocation",enum:Object.values(q),default:"sdCard",comment:"The location of the media: sdCard or server"}),n("design:type",String)],yt.prototype,"mediaLocation",void 0),a([e.OneToOne((()=>pt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"eventTypeId",referencedColumnName:"id"}),n("design:type",Object)],yt.prototype,"eventType",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],yt.prototype,"createdAt",void 0),a([e.Column("binary",{name:"tripId",length:16,transformer:ne,nullable:!0}),n("design:type",String)],yt.prototype,"tripId",void 0),a([e.Column("int",{name:"requestedVideoDataId",nullable:!0}),n("design:type",Number)],yt.prototype,"requestedVideoDataId",void 0),a([e.OneToOne((()=>gt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedVideoDataId",referencedColumnName:"id"}),n("design:type",Object)],yt.prototype,"requestedVideoData",void 0),a([e.Column("int",{name:"requestedPictureDataId",nullable:!0}),n("design:type",Number)],yt.prototype,"requestedPictureDataId",void 0),a([e.OneToOne((()=>mt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedPictureDataId",referencedColumnName:"id"}),n("design:type",Object)],yt.prototype,"requestedPictureData",void 0),yt=a([e.Index("ixClientIdImeiCreatedAt",["clientId","imei","createdAt"],{}),e.Index("ixDeviceCameraMedia_TripId",["tripId"]),e.Entity("deviceCameraMedia",{schema:"nova"})],yt);let vt=class{imei;cameraSource;mediaLiveInputId;mediaLiveChannelId;rtmpServerUrl;rtmpStreamKey;outputUrl;status;commandSequenceNumber;lastRequestedAt;lastRequestedBy;lastRequestedByUser};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],vt.prototype,"imei",void 0),a([e.PrimaryColumn("enum",{name:"cameraSource",enum:Object.values(Q),comment:"The camera source: front or interior"}),n("design:type",String)],vt.prototype,"cameraSource",void 0),a([e.Column("varchar",{name:"mediaLiveInputId",length:50,nullable:!0}),n("design:type",String)],vt.prototype,"mediaLiveInputId",void 0),a([e.Column("varchar",{name:"mediaLiveChannelId",length:50,nullable:!0}),n("design:type",String)],vt.prototype,"mediaLiveChannelId",void 0),a([e.Column("varchar",{name:"rtmpServerUrl",length:100,nullable:!0}),n("design:type",String)],vt.prototype,"rtmpServerUrl",void 0),a([e.Column("varchar",{name:"rtmpStreamKey",length:20,nullable:!0}),n("design:type",String)],vt.prototype,"rtmpStreamKey",void 0),a([e.Column("varchar",{name:"outputUrl",length:255,nullable:!0}),n("design:type",String)],vt.prototype,"outputUrl",void 0),a([e.Column("enum",{name:"status",enum:Object.values(_),nullable:!0}),n("design:type",String)],vt.prototype,"status",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],vt.prototype,"commandSequenceNumber",void 0),a([e.Column("datetime",{name:"lastRequestedAt",nullable:!0}),n("design:type",Date)],vt.prototype,"lastRequestedAt",void 0),a([e.Column("binary",{name:"lastRequestedBy",length:16,transformer:ne,nullable:!0}),n("design:type",String)],vt.prototype,"lastRequestedBy",void 0),a([e.OneToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"lastRequestedBy",referencedColumnName:"id"}),n("design:type",Object)],vt.prototype,"lastRequestedByUser",void 0),vt=a([e.Entity("deviceCameraMediaStreamingData",{schema:"nova"})],vt);let ht=class{imei;startTime;endTime;status;retries;totalFrames;syncedFrames;commandSequenceNumber;updatedAt;syncedFrameIds};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ht.prototype,"imei",void 0),a([e.PrimaryColumn("datetime",{name:"startTime"}),n("design:type",Date)],ht.prototype,"startTime",void 0),a([e.PrimaryColumn("datetime",{name:"endTime"}),n("design:type",Date)],ht.prototype,"endTime",void 0),a([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],ht.prototype,"status",void 0),a([e.Column("int",{name:"retries",default:0}),n("design:type",Number)],ht.prototype,"retries",void 0),a([e.Column("int",{name:"totalFrames",default:0}),n("design:type",Number)],ht.prototype,"totalFrames",void 0),a([e.Column("int",{name:"syncedFrames",default:0}),n("design:type",Number)],ht.prototype,"syncedFrames",void 0),a([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],ht.prototype,"commandSequenceNumber",void 0),a([e.Column("datetime",{name:"updatedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ht.prototype,"updatedAt",void 0),a([e.Column("json",{name:"syncedFrameIds",nullable:!0}),n("design:type",Array)],ht.prototype,"syncedFrameIds",void 0),ht=a([e.Index("ixDeviceCameraMediaSyncStatus_imei_status_updatedAt",["imei","status","updatedAt"],{}),e.Entity("deviceCameraMediaSyncStatus",{schema:"nova"})],ht);let ft=class{id;clientId;imei;assignedTo;startDate;endDate};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ft.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ft.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ft.prototype,"imei",void 0),a([e.Column("varchar",{name:"assignedTo",length:255}),n("design:type",String)],ft.prototype,"assignedTo",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ft.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],ft.prototype,"endDate",void 0),ft=a([e.Index("ixuDeviceChangesHistoryClientIdImei",["clientId","imei"]),e.Entity("deviceChangesHistory",{schema:"nova"})],ft);let It=class{clientId;imei;eventBehaviorType;eventsConfiguration;pendingEventsConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],It.prototype,"clientId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],It.prototype,"imei",void 0),a([e.PrimaryColumn("enum",{name:"eventBehaviorType",enum:Object.values(W)}),n("design:type",String)],It.prototype,"eventBehaviorType",void 0),a([e.Column("json",{name:"eventsConfiguration",nullable:!0}),n("design:type",Array)],It.prototype,"eventsConfiguration",void 0),a([e.Column("json",{name:"pendingEventsConfiguration",nullable:!0}),n("design:type",Array)],It.prototype,"pendingEventsConfiguration",void 0),a([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],It.prototype,"updateConfigPendingCommandId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],It.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],It.prototype,"modifiedAt",void 0),It=a([e.Entity("deviceEventsTriggerConfiguration",{schema:"nova"})],It);let Ct=class{id;clientId;imei;trackerName;status;createAt};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",String)],Ct.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ct.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ct.prototype,"imei",void 0),a([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],Ct.prototype,"trackerName",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ct.prototype,"status",void 0),a([e.Column("datetime",{name:"createAt",nullable:!0}),n("design:type",Date)],Ct.prototype,"createAt",void 0),Ct=a([e.Entity("deviceHistory",{schema:"nova"})],Ct);let bt=class{id;url;portNumber;protocol;deviceTypeId;status};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],bt.prototype,"id",void 0),a([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],bt.prototype,"url",void 0),a([e.Column("smallint",{name:"portNumber",nullable:!0}),n("design:type",Number)],bt.prototype,"portNumber",void 0),a([e.Column("varchar",{name:"protocol",nullable:!0,length:5}),n("design:type",String)],bt.prototype,"protocol",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],bt.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],bt.prototype,"status",void 0),bt=a([e.Entity("deviceModelListener",{schema:"nova"})],bt);let St=class{id;imeiMain;btmacMain;imeiSecondary;btmacSecondary;pairingMode;connectionType;mainDeviceStatus;secondaryDeviceStatus;notes;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],St.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],St.prototype,"imeiMain",void 0),a([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],St.prototype,"btmacMain",void 0),a([e.Column("varchar",{name:"imeiSecondary",length:15}),n("design:type",String)],St.prototype,"imeiSecondary",void 0),a([e.Column("varchar",{name:"btmacSecondary",length:20}),n("design:type",String)],St.prototype,"btmacSecondary",void 0),a([e.Column("varchar",{name:"pairingMode",nullable:!0,length:20}),n("design:type",String)],St.prototype,"pairingMode",void 0),a([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],St.prototype,"connectionType",void 0),a([e.Column("varchar",{name:"mainDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],St.prototype,"mainDeviceStatus",void 0),a([e.Column("varchar",{name:"secondaryDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],St.prototype,"secondaryDeviceStatus",void 0),a([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],St.prototype,"notes",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],St.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],St.prototype,"modifiedAt",void 0),St=a([e.Index("ixDevicePairingImeiSecondary",["imeiSecondary"],{}),e.Index("ixuDevicePairingImeiMainImeiSecondary",["imeiMain","imeiSecondary"],{unique:!0}),e.Entity("devicePairing",{schema:"nova"})],St);let Rt=class{id;imeiOld;iccidOld;imeiNew;iccidNew;userId;clientId;createAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Rt.prototype,"id",void 0),a([e.Column("varchar",{name:"imeiOld",length:15}),n("design:type",String)],Rt.prototype,"imeiOld",void 0),a([e.Column("varchar",{name:"iccidOld",length:25}),n("design:type",String)],Rt.prototype,"iccidOld",void 0),a([e.Column("varchar",{name:"imeiNew",length:15}),n("design:type",String)],Rt.prototype,"imeiNew",void 0),a([e.Column("varchar",{name:"iccidNew",length:25}),n("design:type",String)],Rt.prototype,"iccidNew",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Rt.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Rt.prototype,"clientId",void 0),a([e.Column("datetime",{name:"createAt"}),n("design:type",Date)],Rt.prototype,"createAt",void 0),Rt=a([e.Index("ixDeviceReplacementClientId",["clientId"],{}),e.Index("ixDeviceReplacementImeiOld",["imeiOld"],{}),e.Entity("deviceReplacement",{schema:"nova"})],Rt);let Dt=class{imei;clientId;created;sendTime;data;client;device;clientDeviceSetting};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Dt.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Dt.prototype,"clientId",void 0),a([e.Column("datetime",{name:"created"}),n("design:type",Date)],Dt.prototype,"created",void 0),a([e.Column("datetime",{name:"sendTime"}),n("design:type",Date)],Dt.prototype,"sendTime",void 0),a([e.Column("json",{name:"data",nullable:!0}),n("design:type",Object)],Dt.prototype,"data",void 0),a([e.OneToOne((()=>me),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"clientId",referencedColumnName:"id"}),n("design:type",me)],Dt.prototype,"client",void 0),Dt=a([e.Index("ixDeviceStatusClientId_SendTime",["clientId","sendTime"],{}),e.Index("ixDeviceStatusSendTime",["sendTime"],{}),e.Index("ixDeviceStatusCreated",["created"],{}),e.Entity("deviceStatus",{schema:"nova"})],Dt);let wt=class{id;clientId;title;description;repeats;dueDate;dueOdometer;dueActiveHours;intervalDays;intervalStartDate;intervalOdometer;intervalStartingOdometer;intervalActiveHours;intervalStartingActiveHours;notes;createdBy;createdAt;modifiedBy;modifiedAt;deletedBy;deletedAt;status;assignedTo;deviceTasks;totalDevicesCount};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],wt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],wt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"title",length:50}),n("design:type",String)],wt.prototype,"title",void 0),a([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],wt.prototype,"description",void 0),a([e.Column("tinyint",{name:"repeats",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],wt.prototype,"repeats",void 0),a([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],wt.prototype,"dueDate",void 0),a([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],wt.prototype,"dueOdometer",void 0),a([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],wt.prototype,"dueActiveHours",void 0),a([e.Column("double",{name:"intervalDays",nullable:!0}),n("design:type",Number)],wt.prototype,"intervalDays",void 0),a([e.Column("datetime",{name:"intervalStartDate",nullable:!0}),n("design:type",Date)],wt.prototype,"intervalStartDate",void 0),a([e.Column("double",{name:"intervalOdometer",nullable:!0}),n("design:type",Number)],wt.prototype,"intervalOdometer",void 0),a([e.Column("double",{name:"intervalStartingOdometer",nullable:!0}),n("design:type",Number)],wt.prototype,"intervalStartingOdometer",void 0),a([e.Column("double",{name:"intervalActiveHours",nullable:!0}),n("design:type",Number)],wt.prototype,"intervalActiveHours",void 0),a([e.Column("double",{name:"intervalStartingActiveHours",nullable:!0}),n("design:type",Number)],wt.prototype,"intervalStartingActiveHours",void 0),a([e.Column("text",{name:"notes",nullable:!0}),n("design:type",String)],wt.prototype,"notes",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],wt.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],wt.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],wt.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],wt.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],wt.prototype,"deletedBy",void 0),a([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],wt.prototype,"deletedAt",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],wt.prototype,"status",void 0),a([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],wt.prototype,"assignedTo",void 0),a([e.OneToMany((()=>At),(e=>e.taskSchedule)),n("design:type",Array)],wt.prototype,"deviceTasks",void 0),wt=a([e.Index("ixTaskScheduleClientId",["clientId"],{}),e.Index("ixTaskScheduleStatus",["status"],{}),e.Entity("taskSchedule",{schema:"nova"})],wt);let At=class{taskScheduleId;imei;clientId;taskSchedule};a([e.Column({type:"int",primary:!0,name:"taskScheduleId"}),n("design:type",Number)],At.prototype,"taskScheduleId",void 0),a([e.Column("varchar",{name:"imei",primary:!0,length:15}),n("design:type",String)],At.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],At.prototype,"clientId",void 0),a([e.OneToOne((()=>wt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],At.prototype,"taskSchedule",void 0),At=a([e.Index("ixDeviceTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixDeviceTask_ClientId",["clientId"],{}),e.Index("ixDeviceTask_Imei",["imei"],{}),e.Entity("deviceTask",{schema:"nova"})],At);let Tt=class{deviceTypeId;featureKey;value};a([e.Column("smallint",{primary:!0,name:"deviceTypeId"}),n("design:type",Number)],Tt.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{primary:!0,name:"featureKey",length:50}),n("design:type",String)],Tt.prototype,"featureKey",void 0),a([e.Column("varchar",{name:"value",nullable:!0,length:255}),n("design:type",String)],Tt.prototype,"value",void 0),Tt=a([e.Index("ixDeviceTypeFeatureFeatureKey",["featureKey"],{}),e.Entity("deviceTypeFeature",{schema:"nova"})],Tt);let Nt=class{id;deviceTypeId;deviceType;sourceFirmwareVersion;firmwareVersion;firmwareCode;firmwareUrl;releaseDate;description;enabled;upgradeType;postUpgradeConfig;stage;parentId;maxDeployPercentage;qmsRate;pendingTimeout;forceSMS;MCUFirmwareVersion;sourceMCUFirmwareVersion;sourceBTFirmwareVersion;BTFirmwareVersion;sourceModemFirmwareVersion;modemFirmwareVersion};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Nt.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],Nt.prototype,"deviceTypeId",void 0),a([e.ManyToOne((()=>de),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Nt.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"sourceFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"sourceFirmwareVersion",void 0),a([e.Column("varchar",{name:"firmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"firmwareVersion",void 0),a([e.Column("varchar",{name:"firmwareCode",nullable:!0,length:50}),n("design:type",String)],Nt.prototype,"firmwareCode",void 0),a([e.Column("varchar",{name:"firmwareUrl",nullable:!0,length:1e3}),n("design:type",String)],Nt.prototype,"firmwareUrl",void 0),a([e.Column("datetime",{name:"releaseDate",nullable:!0}),n("design:type",Date)],Nt.prototype,"releaseDate",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],Nt.prototype,"description",void 0),a([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Nt.prototype,"enabled",void 0),a([e.Column("varchar",{name:"upgradeType",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"upgradeType",void 0),a([e.Column("varchar",{name:"postUpgradeConfig",nullable:!0,length:1e3}),n("design:type",String)],Nt.prototype,"postUpgradeConfig",void 0),a([e.Column("varchar",{name:"stage",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"stage",void 0),a([e.Column({type:"mediumint",name:"parentId",nullable:!0}),n("design:type",Number)],Nt.prototype,"parentId",void 0),a([e.Column("smallint",{name:"maxDeployPercentage",nullable:!0}),n("design:type",Number)],Nt.prototype,"maxDeployPercentage",void 0),a([e.Column({type:"smallint",name:"qmsRate",nullable:!0}),n("design:type",Number)],Nt.prototype,"qmsRate",void 0),a([e.Column({type:"smallint",name:"pendingTimeout",nullable:!0}),n("design:type",Number)],Nt.prototype,"pendingTimeout",void 0),a([e.Column("tinyint",{name:"forceSMS",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Nt.prototype,"forceSMS",void 0),a([e.Column("varchar",{name:"MCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"MCUFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceMCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"sourceMCUFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceBTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"sourceBTFirmwareVersion",void 0),a([e.Column("varchar",{name:"BTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"BTFirmwareVersion",void 0),a([e.Column("varchar",{name:"sourceModemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"sourceModemFirmwareVersion",void 0),a([e.Column("varchar",{name:"modemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],Nt.prototype,"modemFirmwareVersion",void 0),Nt=a([e.Index("ixDeviceTypeFirmwareDeviceTypeId",["deviceTypeId"],{}),e.Entity("deviceTypeFirmware",{schema:"nova"})],Nt);let Bt=class{id;name;isBusiness};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Bt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100,nullable:!0}),n("design:type",String)],Bt.prototype,"name",void 0),a([e.Column("tinyint",{name:"isBusiness",nullable:!0,width:1,default:0,transformer:new p}),n("design:type",Boolean)],Bt.prototype,"isBusiness",void 0),Bt=a([e.Entity("emailDomain",{schema:"nova"})],Bt);let Ut=class{id;tagId;clientId;entityType;entityId;metadata;createdBy;createdAt;modifiedBy;modifiedAt;userId;imei;isSecurityGroup};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ut.prototype,"id",void 0),a([e.Column("int",{name:"tagId"}),n("design:type",Number)],Ut.prototype,"tagId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ut.prototype,"clientId",void 0),a([e.Column("enum",{enum:["Device","Boundary","User","UserInvitation","ClientAlertConfiguration","LiveLink"],name:"entityType"}),n("design:type",String)],Ut.prototype,"entityType",void 0),a([e.Column("int",{name:"entityId"}),n("design:type",Number)],Ut.prototype,"entityId",void 0),a([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",String)],Ut.prototype,"metadata",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],Ut.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Ut.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],Ut.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ut.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],Ut.prototype,"userId",void 0),a([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],Ut.prototype,"imei",void 0),a([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Ut.prototype,"isSecurityGroup",void 0),Ut=a([e.Index("ixEntityTagEntityType",["entityType"],{}),e.Index("ixEntityTagEntityId",["entityId"],{}),e.Index("ixEntityTagTagId",["tagId"],{}),e.Index("ixEntityTagClientId",["clientId"],{}),e.Index("ixEntityTagImeiIsSecurityGroupTagId",["imei","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagUserIdIsSecurityGroupTagId",["userId","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagUserIdEntityTypeIsSecurityGroupTagId",["userId","entityType","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagEntityIdEntityTypeIsSecurityGroupTagId",["entityId","entityType","isSecurityGroup","tagId"],{}),e.Index("ixEntityTagClientIdEntityIdTagIdEntityType",["clientId","entityId","tagId","entityType"],{unique:!0}),e.Entity("entityTag",{schema:"nova"})],Ut);let Et=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Et.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Et.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],Et.prototype,"description",void 0),Et=a([e.Entity("entityType",{schema:"nova"})],Et);let Pt=class{key;name;description;tags};a([e.Column("varchar",{primary:!0,name:"key",length:50}),n("design:type",String)],Pt.prototype,"key",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Pt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Pt.prototype,"description",void 0),a([e.Column("varchar",{name:"tags",nullable:!0,length:500}),n("design:type",String)],Pt.prototype,"tags",void 0),Pt=a([e.Entity("feature",{schema:"nova"})],Pt);let Mt=class{id;clientId;deviceTypeId;imei};a([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Mt.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Mt.prototype,"clientId",void 0),a([e.Column("int",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],Mt.prototype,"deviceTypeId",void 0),a([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],Mt.prototype,"imei",void 0),Mt=a([e.Index("ixFirmwareAutoUpgradeBlacklistClientId",["clientId"],{}),e.Index("ixuFirmwareAutoUpgradeBlacklistClientIdDeviceTypeId",["clientId","deviceTypeId"],{unique:!0}),e.Entity("firmwareAutoUpgradeBlacklist",{schema:"nova"})],Mt);let Ot=class{id;deviceTypeFirmwareId;deviceTypeFirmware;clientId;imei;status;behaviorName;behaviorParams;createdAt;modifiedAt;preConfig;postConfig;commandsTaskId;postUpgradeCompleted;fwCompletedOn;device};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Ot.prototype,"id",void 0),a([e.Column("mediumint",{name:"deviceTypeFirmwareId"}),n("design:type",Number)],Ot.prototype,"deviceTypeFirmwareId",void 0),a([e.ManyToOne((()=>Nt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ot.prototype,"deviceTypeFirmware",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ot.prototype,"clientId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ot.prototype,"imei",void 0),a([e.Column("varchar",{name:"status",length:40}),n("design:type",String)],Ot.prototype,"status",void 0),a([e.Column("varchar",{name:"behaviorName",nullable:!0,length:25}),n("design:type",String)],Ot.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Ot.prototype,"behaviorParams",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ot.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ot.prototype,"modifiedAt",void 0),a([e.Column("text",{name:"preConfig",nullable:!0}),n("design:type",String)],Ot.prototype,"preConfig",void 0),a([e.Column("text",{name:"postConfig",nullable:!0}),n("design:type",String)],Ot.prototype,"postConfig",void 0),a([e.Column("varchar",{name:"commandsTaskId",nullable:!0,length:50}),n("design:type",String)],Ot.prototype,"commandsTaskId",void 0),a([e.Column("tinyint",{name:"postUpgradeCompleted",nullable:!0,width:1,default:0,transformer:new p}),n("design:type",Boolean)],Ot.prototype,"postUpgradeCompleted",void 0),a([e.Column("datetime",{name:"fwCompletedOn",nullable:!0}),n("design:type",Date)],Ot.prototype,"fwCompletedOn",void 0),Ot=a([e.Index("ixFirmwareUpgradeTaskDeviceTypeFirmwareId",["deviceTypeFirmwareId"],{}),e.Index("ixFirmwareUpgradeTaskDeviceTypeFirmwareIdModifiedAt",["deviceTypeFirmwareId","modifiedAt"],{}),e.Index("ixFirmwareUpgradeTaskImeiModifiedAt",["imei","modifiedAt"],{}),e.Index("ixFirmwareUpgradeTaskStatusEtc",["status","postUpgradeCompleted","deviceTypeFirmwareId","modifiedAt"],{}),e.Entity("firmwareUpgradeTask",{schema:"nova"})],Ot);let xt=class{id;planId;name;description;consumer;modelFamily;model;planCode;price;totalPrice;billingInterval;annual;prepaid;legacy;test;validFrom;validUntil;createdAt;new;enabled};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],xt.prototype,"id",void 0),a([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],xt.prototype,"planId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],xt.prototype,"name",void 0),a([e.Column("varchar",{name:"description",nullable:!0,length:256}),n("design:type",String)],xt.prototype,"description",void 0),a([e.Column("varchar",{name:"consumer",length:30}),n("design:type",String)],xt.prototype,"consumer",void 0),a([e.Column("varchar",{name:"modelFamily",length:30}),n("design:type",String)],xt.prototype,"modelFamily",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:30}),n("design:type",String)],xt.prototype,"model",void 0),a([e.Column("varchar",{name:"planCode",length:100}),n("design:type",String)],xt.prototype,"planCode",void 0),a([e.Column("decimal",{name:"price",precision:19,scale:4}),n("design:type",Number)],xt.prototype,"price",void 0),a([e.Column("decimal",{name:"totalPrice",precision:19,scale:4}),n("design:type",Number)],xt.prototype,"totalPrice",void 0),a([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],xt.prototype,"billingInterval",void 0),a([e.Column("tinyint",{name:"annual",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"annual",void 0),a([e.Column("tinyint",{name:"prepaid",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"prepaid",void 0),a([e.Column("tinyint",{name:"legacy",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"legacy",void 0),a([e.Column("tinyint",{name:"test",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"test",void 0),a([e.Column("date",{name:"validFrom",nullable:!0,transformer:new Ue}),n("design:type",Date)],xt.prototype,"validFrom",void 0),a([e.Column("date",{name:"validUntil",nullable:!0,transformer:new Ue}),n("design:type",Date)],xt.prototype,"validUntil",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],xt.prototype,"createdAt",void 0),a([e.Column("tinyint",{name:"new",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"new",void 0),a([e.Column("tinyint",{name:"enabled",width:1,transformer:new p}),n("design:type",Boolean)],xt.prototype,"enabled",void 0),xt=a([e.Index("ixuHistoricalBillingPlanPlanIdConsumerModelValidFromValidUntil",["planId","consumer","model","validFrom","validUntil"],{unique:!0}),e.Entity("historicalBillingPlan",{schema:"nova"})],xt);let kt=class{iccid;status;processing;carrierFound;modifiedAt};a([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],kt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:100}),n("design:type",String)],kt.prototype,"status",void 0),a([e.Column("tinyint",{name:"processing",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],kt.prototype,"processing",void 0),a([e.Column("int",{name:"carrierFound",nullable:!0}),n("design:type",Number)],kt.prototype,"carrierFound",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],kt.prototype,"modifiedAt",void 0),kt=a([e.Index("ixIccidStatusProcessing",["processing"],{}),e.Index("ixIccidStatusModifiedAt",["modifiedAt"],{}),e.Entity("iccidStatus",{schema:"nova"})],kt);let Lt=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;model;realModel;po;outOfInventory;apn;createdAt;modifiedAt;itsEsim;btmac;serviceProvider;deviceType};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Lt.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Lt.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],Lt.prototype,"iccid",void 0),a([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],Lt.prototype,"carrier",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],Lt.prototype,"phone",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],Lt.prototype,"deviceTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],Lt.prototype,"serviceProviderProductId",void 0),a([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'",transformer:new p}),n("design:type",Boolean)],Lt.prototype,"isValid",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"model",void 0),a([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"realModel",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],Lt.prototype,"po",void 0),a([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Lt.prototype,"outOfInventory",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"apn",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Lt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Lt.prototype,"modifiedAt",void 0),a([e.Column("tinyint",{name:"itsEsim",width:1,nullable:!0,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Lt.prototype,"itsEsim",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Lt.prototype,"btmac",void 0),Lt=a([e.Index("ixImeiIccidCarrierCarrier",["carrier"],{}),e.Index("ixImeiIccidCarrierDeviceTypeId",["deviceTypeId"],{}),e.Index("ixImeiIccidCarrierIccid",["iccid"],{}),e.Index("ixImeiIccidCarrierImei",["imei"],{}),e.Index("ixImeiIccidCarrierModifiedAt",["modifiedAt"],{}),e.Index("ixImeiIccidCarrierProductId",["serviceProviderProductId"],{}),e.Entity("imeiIccidCarrier",{schema:"nova"})],Lt);let Ft=class{id;iccid;imei;carrier;lastUpdatedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ft.prototype,"id",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],Ft.prototype,"iccid",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ft.prototype,"imei",void 0),a([e.Column("tinyint",{name:"carrier"}),n("design:type",Number)],Ft.prototype,"carrier",void 0),a([e.Column("datetime",{name:"lastUpdatedAt"}),n("design:type",Date)],Ft.prototype,"lastUpdatedAt",void 0),Ft=a([e.Index("ixImeiIccidHistoryIccid",["iccid"],{}),e.Index("ixImeiIccidHistoryImei",["imei"],{}),e.Entity("imeiIccidHistory",{schema:"nova"})],Ft);let Qt=class{imei;iccid;btmac};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Qt.prototype,"imei",void 0),a([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],Qt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Qt.prototype,"btmac",void 0),Qt=a([e.Entity("imeiIccidImport",{schema:"nova"})],Qt);let qt=class{id;industry;mainIndustry;group;sector;displayName};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],qt.prototype,"id",void 0),a([e.Column("varchar",{name:"industry",length:100}),n("design:type",String)],qt.prototype,"industry",void 0),a([e.Column("varchar",{name:"mainIndustry",length:100}),n("design:type",String)],qt.prototype,"mainIndustry",void 0),a([e.Column("varchar",{name:"group",length:100}),n("design:type",String)],qt.prototype,"group",void 0),a([e.Column("varchar",{name:"sector",length:100}),n("design:type",String)],qt.prototype,"sector",void 0),a([e.Column("varchar",{name:"displayName",nullable:!0,length:100}),n("design:type",String)],qt.prototype,"displayName",void 0),qt=a([e.Entity("industry",{schema:"nova"})],qt);let Wt=class{imei;positionId;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Wt.prototype,"imei",void 0),a([e.Column({type:"bigint",name:"positionId"}),n("design:type",Number)],Wt.prototype,"positionId",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Wt.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Wt.prototype,"lon",void 0),a([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],Wt.prototype,"actualDate",void 0),a([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],Wt.prototype,"speed",void 0),a([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],Wt.prototype,"odometer",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],Wt.prototype,"createdAt",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],Wt.prototype,"messageId",void 0),a([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],Wt.prototype,"batteryPercentage",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Wt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Wt.prototype,"address",void 0),a([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],Wt.prototype,"sendTime",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],Wt.prototype,"gpsUtcTime",void 0),a([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],Wt.prototype,"externalBatteryPercentage",void 0),a([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],Wt.prototype,"externalPowerVoltage",void 0),a([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],Wt.prototype,"azimuth",void 0),a([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],Wt.prototype,"motionDetected",void 0),Wt=a([e.Index("ixuLatestPositionMessageId",["messageId"],{unique:!0}),e.Index("ixLatestPositionActualDate",["actualDate"],{}),e.Index("ixLatestPositionClientId",["clientId"],{}),e.Index("ixLatestPositionId",["positionId"]),e.Entity("latestPosition",{schema:"nova"})],Wt);let _t=class{id;userId;deviceOs;appVersion;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],_t.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],_t.prototype,"userId",void 0),a([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],_t.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],_t.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],_t.prototype,"createdAt",void 0),_t=a([e.Index("ixLatestUserAppInfoUserId",["userId"],{unique:!0}),e.Entity("latestUserAppInfo",{schema:"nova"})],_t);let jt=class{id;liveLinkId;liveLink;fileName;fileExtension;s3FilesPath;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],jt.prototype,"id",void 0),a([e.Column("binary",{name:"liveLinkId",length:16,transformer:ne}),n("design:type",String)],jt.prototype,"liveLinkId",void 0),a([e.OneToOne((()=>zt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"liveLinkId",referencedColumnName:"id"}),n("design:type",Object)],jt.prototype,"liveLink",void 0),a([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],jt.prototype,"fileName",void 0),a([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],jt.prototype,"fileExtension",void 0),a([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],jt.prototype,"s3FilesPath",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],jt.prototype,"createdAt",void 0),jt=a([e.Index("ixu_liveLinkId_fileName",["liveLinkId","fileName"],{unique:!0}),e.Entity("liveLinkMedia",{schema:"nova"})],jt);let zt=class{id;name;clientId;status;startDate;endDate;deviceAccess;devices;createdAt;createdBy;modifiedAt;modifiedBy;historyAccess;estimatedTheftValue;licensePlate;suspectDescription;medias;generateDefaults(){this.id||(this.id=t.v4()),this.createdAt||(this.createdAt=new Date),this.modifiedAt||(this.modifiedAt=new Date)}updateModifiedAt(){this.modifiedAt=new Date}};a([e.Column("binary",{primary:!0,name:"id",length:16,transformer:ne}),n("design:type",String)],zt.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],zt.prototype,"name",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],zt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],zt.prototype,"status",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],zt.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],zt.prototype,"endDate",void 0),a([e.Column("varchar",{name:"deviceAccess"}),n("design:type",String)],zt.prototype,"deviceAccess",void 0),a([e.Column("json",{name:"devices",nullable:!0}),n("design:type",Object)],zt.prototype,"devices",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],zt.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],zt.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],zt.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],zt.prototype,"modifiedBy",void 0),a([e.Column("tinyint",{name:"historyAccess",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],zt.prototype,"historyAccess",void 0),a([e.Column("decimal",{name:"estimatedTheftValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],zt.prototype,"estimatedTheftValue",void 0),a([e.Column("varchar",{name:"licensePlate",nullable:!0,length:50}),n("design:type",String)],zt.prototype,"licensePlate",void 0),a([e.Column("varchar",{name:"suspectDescription",nullable:!0,length:255}),n("design:type",String)],zt.prototype,"suspectDescription",void 0),a([e.OneToMany((()=>jt),(e=>e.liveLink)),n("design:type",Array)],zt.prototype,"medias",void 0),a([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],zt.prototype,"generateDefaults",null),a([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],zt.prototype,"updateModifiedAt",null),zt=a([e.Index("ixLiveLinkClientId",["clientId"],{}),e.Entity("liveLink",{schema:"nova"})],zt);let Vt=class{id;clientId;userId;email;braintreeCustomerId;paymentMethodToken;subscriptionId;imei;syncType;status;createdAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Vt.prototype,"id",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Vt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"userId",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"userId",void 0),a([e.Column("varchar",{name:"email",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"email",void 0),a([e.Column("varchar",{name:"braintreeCustomerId",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"braintreeCustomerId",void 0),a([e.Column("varchar",{name:"paymentMethodToken",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"paymentMethodToken",void 0),a([e.Column("varchar",{name:"subscriptionId",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"imei",length:255,nullable:!0}),n("design:type",String)],Vt.prototype,"imei",void 0),a([e.Column("enum",{enum:["CREATE_CUSTOMER","UPDATE_USER","UPDATE_CLIENT","AVALARA_EXEMPT","AVALARA_EXEMPT_REMOVE","AVALARA_ITEM","CREATE_DEVICE","REMOVE_DEVICE","UPDATE_DEVICE","SUSPEND_DEVICE","UNSUSPEND_DEVICE","CANCEL_DEVICE"],name:"syncType",nullable:!0}),n("design:type",String)],Vt.prototype,"syncType",void 0),a([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],Vt.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Vt.prototype,"createdAt",void 0),Vt=a([e.Entity("m2Sync",{schema:"nova"})],Vt);let Gt=class{id;customerId;email;customerUpdatedAt;createdIn;firstName;lastName;middleName;postcode;prefix;region;street;city;telephone;countryId;company;btAccountId;phoneCode;phoneCodeCountryId;pinCode;stripeCustomerId;activationCreated;imei;deviceId;deviceType;deviceColor;btSubscriptionId;servicePlanId;billingInterval;status;orderId;deviceUpdatedAt;deviceCreatedAt;importedDevice;trackerName;trackerUse;deviceStatus;planCode;platformCode;platformName;stripeCreatedAt;stripeUpdatedAt;dateCaptured;cancelationReason;cancelationCreated;cancelationReactivated;clientId;itemsForRecovery;platform};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Gt.prototype,"id",void 0),a([e.Column("varchar",{name:"customerId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"customerId",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"email",void 0),a([e.Column("varchar",{name:"customerUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"customerUpdatedAt",void 0),a([e.Column("varchar",{name:"createdIn",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"createdIn",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"lastName",void 0),a([e.Column("varchar",{name:"middleName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"middleName",void 0),a([e.Column("varchar",{name:"postcode",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"postcode",void 0),a([e.Column("varchar",{name:"prefix",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"prefix",void 0),a([e.Column("varchar",{name:"region",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"region",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"street",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"city",void 0),a([e.Column("varchar",{name:"telephone",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"telephone",void 0),a([e.Column("varchar",{name:"countryId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"countryId",void 0),a([e.Column("varchar",{name:"company",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"company",void 0),a([e.Column("varchar",{name:"btAccountId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"btAccountId",void 0),a([e.Column("varchar",{name:"phoneCode",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"phoneCode",void 0),a([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"phoneCodeCountryId",void 0),a([e.Column("varchar",{name:"pinCode",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"pinCode",void 0),a([e.Column("varchar",{name:"stripeCustomerId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"stripeCustomerId",void 0),a([e.Column("varchar",{name:"activationCreated",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"activationCreated",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"imei",void 0),a([e.Column("varchar",{name:"deviceId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"deviceColor",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceColor",void 0),a([e.Column("varchar",{name:"btSubscriptionId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"btSubscriptionId",void 0),a([e.Column("varchar",{name:"servicePlanId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"servicePlanId",void 0),a([e.Column("varchar",{name:"billingInterval",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"billingInterval",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"status",void 0),a([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"orderId",void 0),a([e.Column("varchar",{name:"deviceUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceUpdatedAt",void 0),a([e.Column("varchar",{name:"deviceCreatedAt",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceCreatedAt",void 0),a([e.Column("varchar",{name:"importedDevice",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"importedDevice",void 0),a([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"trackerName",void 0),a([e.Column("varchar",{name:"trackerUse",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"trackerUse",void 0),a([e.Column("varchar",{name:"deviceStatus",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"deviceStatus",void 0),a([e.Column("varchar",{name:"planCode",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"planCode",void 0),a([e.Column("varchar",{name:"platformCode",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"platformCode",void 0),a([e.Column("varchar",{name:"platformName",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"platformName",void 0),a([e.Column("varchar",{name:"stripeCreatedAt",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"stripeCreatedAt",void 0),a([e.Column("varchar",{name:"stripeUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"stripeUpdatedAt",void 0),a([e.Column("varchar",{name:"dateCaptured",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"dateCaptured",void 0),a([e.Column("text",{name:"cancelationReason",nullable:!0}),n("design:type",String)],Gt.prototype,"cancelationReason",void 0),a([e.Column("varchar",{name:"cancelationCreated",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"cancelationCreated",void 0),a([e.Column("varchar",{name:"cancelationReactivated",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"cancelationReactivated",void 0),a([e.Column("varchar",{name:"clientId",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"clientId",void 0),a([e.Column("text",{name:"itemsForRecovery",nullable:!0}),n("design:type",String)],Gt.prototype,"itemsForRecovery",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:255}),n("design:type",String)],Gt.prototype,"platform",void 0),Gt=a([e.Index("ixMagento2GpsbtSubscriptionId",["btSubscriptionId"],{}),e.Index("ixMagento2GpsImei",["imei"],{}),e.Entity("magento2Gps",{schema:"nova"})],Gt);let Jt=class{magentoPlanCode;magentoBillingInterval;planAnnual;planId};a([e.Column("varchar",{primary:!0,name:"magentoPlanCode",length:100}),n("design:type",String)],Jt.prototype,"magentoPlanCode",void 0),a([e.Column("varchar",{primary:!0,name:"magentoBillingInterval",length:50}),n("design:type",String)],Jt.prototype,"magentoBillingInterval",void 0),a([e.Column("tinyint",{name:"planAnnual",width:1,transformer:new p}),n("design:type",Boolean)],Jt.prototype,"planAnnual",void 0),a([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],Jt.prototype,"planId",void 0),Jt=a([e.Index("ixMagento2PlanPlanId",["planId"],{}),e.Index("ixMagento2PlanPlanIdMagentoBillingIntervalMagentoPlanCode",["planId","magentoBillingInterval","magentoPlanCode"],{}),e.Entity("magento2Plan",{schema:"nova"})],Jt);let Ht=class{id;mcc;mnc;networkName;operatorName;countryCode;countryName};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ht.prototype,"id",void 0),a([e.Column("smallint",{name:"mcc"}),n("design:type",Number)],Ht.prototype,"mcc",void 0),a([e.Column("smallint",{name:"mnc"}),n("design:type",Number)],Ht.prototype,"mnc",void 0),a([e.Column("varchar",{name:"networkName",nullable:!0,length:255}),n("design:type",String)],Ht.prototype,"networkName",void 0),a([e.Column("varchar",{name:"operatorName",nullable:!0,length:100}),n("design:type",String)],Ht.prototype,"operatorName",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:50}),n("design:type",String)],Ht.prototype,"countryCode",void 0),a([e.Column("varchar",{name:"countryName",nullable:!0,length:100}),n("design:type",String)],Ht.prototype,"countryName",void 0),Ht=a([e.Entity("mobileNetwork",{schema:"nova"})],Ht);let Kt=class{imei;iccid;model;labelModel;partNo;serialNo;shipNum;workOrder;cartonNo;location};a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Kt.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",length:50}),n("design:type",String)],Kt.prototype,"iccid",void 0),a([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],Kt.prototype,"model",void 0),a([e.Column("varchar",{name:"labelModel",length:50}),n("design:type",String)],Kt.prototype,"labelModel",void 0),a([e.Column("varchar",{name:"partNo",length:50}),n("design:type",String)],Kt.prototype,"partNo",void 0),a([e.Column("varchar",{name:"serialNo",length:50}),n("design:type",String)],Kt.prototype,"serialNo",void 0),a([e.PrimaryColumn("varchar",{name:"shipNum",length:50}),n("design:type",String)],Kt.prototype,"shipNum",void 0),a([e.Column("varchar",{name:"workOrder",length:50}),n("design:type",String)],Kt.prototype,"workOrder",void 0),a([e.Column("varchar",{name:"cartonNo",length:50}),n("design:type",String)],Kt.prototype,"cartonNo",void 0),a([e.Column("varchar",{name:"location",length:6}),n("design:type",String)],Kt.prototype,"location",void 0),Kt=a([e.Entity("orderShipmentInternational",{schema:"nova"})],Kt);let $t=class{id;imei;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected;deleted};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],$t.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],$t.prototype,"imei",void 0),a([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],$t.prototype,"lat",void 0),a([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],$t.prototype,"lon",void 0),a([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],$t.prototype,"actualDate",void 0),a([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],$t.prototype,"speed",void 0),a([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],$t.prototype,"odometer",void 0),a([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],$t.prototype,"createdAt",void 0),a([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],$t.prototype,"messageId",void 0),a([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],$t.prototype,"batteryPercentage",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],$t.prototype,"clientId",void 0),a([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"address",void 0),a([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],$t.prototype,"sendTime",void 0),a([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],$t.prototype,"gpsUtcTime",void 0),a([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],$t.prototype,"externalBatteryPercentage",void 0),a([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],$t.prototype,"externalPowerVoltage",void 0),a([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],$t.prototype,"azimuth",void 0),a([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new p}),n("design:type",Boolean)],$t.prototype,"motionDetected",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],$t.prototype,"deleted",void 0),$t=a([e.Index("ixuPositionMessageId",["messageId"],{unique:!0}),e.Index("ixPositionImei",["imei"],{}),e.Index("ixPositionClientId_ActualDate",["clientId","actualDate"],{}),e.Index("ixPositionClientId_Imei_ActualDate",["clientId","imei","actualDate"],{}),e.Entity("position",{schema:"nova"})],$t);let Xt=class{imei;promotionId;clientId;marketPlaceId;asin;promotionType;promotionDiscount;promotionDiscountBillingCycles;promotionFreeServiceMonths;appliedAt};a([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],Xt.prototype,"imei",void 0),a([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Xt.prototype,"promotionId",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Xt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"marketPlaceId",length:25,nullable:!0,comment:"The marketplace of the device at the time the promotion was applied"}),n("design:type",String)],Xt.prototype,"marketPlaceId",void 0),a([e.Column("varchar",{name:"asin",nullable:!0,length:25}),n("design:type",String)],Xt.prototype,"asin",void 0),a([e.Column("varchar",{name:"promotionType",length:25,comment:"The type of promotion: freeService or discount."}),n("design:type",String)],Xt.prototype,"promotionType",void 0),a([e.Column("decimal",{name:"promotionDiscount",nullable:!0,precision:19,scale:4,comment:"The discount value if the type is discount offered in US Dollars."}),n("design:type",Number)],Xt.prototype,"promotionDiscount",void 0),a([e.Column("int",{name:"promotionDiscountBillingCycles",nullable:!0,comment:"The number of billing cycles that the discount will be applied. Required when type is discount"}),n("design:type",Number)],Xt.prototype,"promotionDiscountBillingCycles",void 0),a([e.Column("int",{name:"promotionFreeServiceMonths",nullable:!0,comment:"The number of months that the service will be free. Required when type is freeService"}),n("design:type",Number)],Xt.prototype,"promotionFreeServiceMonths",void 0),a([e.Column("datetime",{name:"appliedAt",comment:"The date that the promotion was applied"}),n("design:type",Date)],Xt.prototype,"appliedAt",void 0),Xt=a([e.Entity("promotionHistory",{schema:"nova"})],Xt);let Yt=class{id;countryCode;countryName;regionName;regionCode;regionType;regionLat;regionLong};a([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Yt.prototype,"id",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:255}),n("design:type",String)],Yt.prototype,"countryCode",void 0),a([e.Column("varchar",{name:"countryName",nullable:!0,length:255}),n("design:type",String)],Yt.prototype,"countryName",void 0),a([e.Column("varchar",{name:"regionName",nullable:!0,length:255}),n("design:type",String)],Yt.prototype,"regionName",void 0),a([e.Column("varchar",{name:"regionCode",nullable:!0,length:255}),n("design:type",String)],Yt.prototype,"regionCode",void 0),a([e.Column("varchar",{name:"regionType",nullable:!0,length:255}),n("design:type",String)],Yt.prototype,"regionType",void 0),a([e.Column("decimal",{name:"regionLat",nullable:!0,precision:19,scale:10}),n("design:type",Number)],Yt.prototype,"regionLat",void 0),a([e.Column("decimal",{name:"regionLong",nullable:!0,precision:19,scale:10}),n("design:type",Number)],Yt.prototype,"regionLong",void 0),Yt=a([e.Index("ix_countryName_regionName",["countryName","regionName"]),e.Index("ix_countryCode_regionCode",["countryCode","regionCode"]),e.Index("ix_countryName_regionCode",["countryName","regionCode"]),e.Entity("region",{schema:"nova"})],Yt);let Zt=class{id;clientId;reportName;status;emailMessage;frequency;timeOfDay;daysOfWeek;monthlyOption;dayOfMonth;recipients;format;createdAt;updatedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Zt.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Zt.prototype,"clientId",void 0),a([e.Column("varchar",{name:"reportName",length:100}),n("design:type",String)],Zt.prototype,"reportName",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'Active'"}),n("design:type",String)],Zt.prototype,"status",void 0),a([e.Column("varchar",{name:"emailMessage",length:255,nullable:!0}),n("design:type",String)],Zt.prototype,"emailMessage",void 0),a([e.Column("varchar",{name:"frequency",length:10,nullable:!0}),n("design:type",String)],Zt.prototype,"frequency",void 0),a([e.Column("time",{name:"timeOfDay",nullable:!0}),n("design:type",String)],Zt.prototype,"timeOfDay",void 0),a([e.Column("json",{name:"daysOfWeek",nullable:!0}),n("design:type",Array)],Zt.prototype,"daysOfWeek",void 0),a([e.Column("varchar",{name:"monthlyOption",length:20,nullable:!0}),n("design:type",String)],Zt.prototype,"monthlyOption",void 0),a([e.Column("int",{name:"dayOfMonth",nullable:!0}),n("design:type",Number)],Zt.prototype,"dayOfMonth",void 0),a([e.Column("varchar",{name:"recipients",nullable:!0,length:255}),n("design:type",String)],Zt.prototype,"recipients",void 0),a([e.Column("varchar",{name:"format",length:10,nullable:!0}),n("design:type",String)],Zt.prototype,"format",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP",nullable:!0}),n("design:type",Date)],Zt.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Zt.prototype,"updatedAt",void 0),Zt=a([e.Entity("reportScheduleConfiguration",{schema:"nova"})],Zt);let ei=class{id;name;description;loginUrl;apn};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ei.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ei.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],ei.prototype,"description",void 0),a([e.Column("varchar",{name:"loginUrl",nullable:!0,length:1e3}),n("design:type",String)],ei.prototype,"loginUrl",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],ei.prototype,"apn",void 0),ei=a([e.Entity("serviceProvider",{schema:"nova"})],ei);let ti=class{id;productId;name;serviceProviderProductTypeId;serviceProviderProductNetworkId;mbIncluded;bundleCost};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ti.prototype,"id",void 0),a([e.Column("varchar",{name:"productId",length:100}),n("design:type",String)],ti.prototype,"productId",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ti.prototype,"name",void 0),a([e.Column("tinyint",{name:"serviceProviderProductTypeId",nullable:!0}),n("design:type",Number)],ti.prototype,"serviceProviderProductTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductNetworkId",nullable:!0}),n("design:type",Number)],ti.prototype,"serviceProviderProductNetworkId",void 0),a([e.Column("smallint",{name:"mbIncluded",nullable:!0}),n("design:type",Number)],ti.prototype,"mbIncluded",void 0),a([e.Column("decimal",{name:"bundleCost",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ti.prototype,"bundleCost",void 0),ti=a([e.Index("ixServiceProviderProductServiceProviderProductNetworkId",["serviceProviderProductNetworkId"],{}),e.Index("ixServiceProviderProductServiceProviderProductTypeId",["serviceProviderProductTypeId"],{}),e.Entity("serviceProviderProduct",{schema:"nova"})],ti);let ii=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ii.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ii.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],ii.prototype,"description",void 0),ii=a([e.Entity("serviceProviderProductNetwork",{schema:"nova"})],ii);let ri=class{id;name;description};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ri.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ri.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],ri.prototype,"description",void 0),ri=a([e.Entity("serviceProviderProductType",{schema:"nova"})],ri);let ai=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;realModel;po;outOfInventory;apn;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ai.prototype,"id",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ai.prototype,"imei",void 0),a([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],ai.prototype,"iccid",void 0),a([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],ai.prototype,"carrier",void 0),a([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],ai.prototype,"phone",void 0),a([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ai.prototype,"deviceTypeId",void 0),a([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],ai.prototype,"serviceProviderProductId",void 0),a([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'"}),n("design:type",Boolean)],ai.prototype,"isValid",void 0),a([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],ai.prototype,"realModel",void 0),a([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],ai.prototype,"po",void 0),a([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'"}),n("design:type",Boolean)],ai.prototype,"outOfInventory",void 0),a([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],ai.prototype,"apn",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ai.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ai.prototype,"modifiedAt",void 0),ai=a([e.Index("ixImeiIccidCarrierCarrier",["carrier"],{}),e.Index("ixImeiIccidCarrierDeviceTypeId",["deviceTypeId"],{}),e.Index("ixImeiIccidCarrierIccid",["iccid"],{}),e.Index("ixImeiIccidCarrierImei",["imei"],{}),e.Index("ixImeiIccidCarrierModifiedAt",["modifiedAt"],{}),e.Index("ixImeiIccidCarrierProductId",["serviceProviderProductId"],{}),e.Entity("sim",{schema:"nova"})],ai);let ni=class{id;clientId;name;description;color;createdBy;createdAt;modifiedBy;modifiedAt;metadata;isSecurityGroup};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ni.prototype,"id",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ni.prototype,"clientId",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ni.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:255,nullable:!0}),n("design:type",String)],ni.prototype,"description",void 0),a([e.Column("varchar",{name:"color",length:32,nullable:!0}),n("design:type",String)],ni.prototype,"color",void 0),a([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],ni.prototype,"createdBy",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ni.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],ni.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ni.prototype,"modifiedAt",void 0),a([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",Object)],ni.prototype,"metadata",void 0),a([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new p}),n("design:type",Boolean)],ni.prototype,"isSecurityGroup",void 0),ni=a([e.Index("ixTagClientIdName",["clientId","name"],{unique:!0}),e.Entity("tag",{schema:"nova"})],ni);let oi=class{id;taskScheduleId;taskSchedule;deviceStatus;imei;clientId;dueDate;dueOdometer;dueActiveHours;startDate;startingOdometer;startingActiveHours;status;createdAt;pastDueAt;completedAt;completionNotes;completionOdometer;completionActiveHours;completedBy;modifiedAt;modifiedBy;queuedAt;predictedDueDate;deletedAt;deletedBy;completionMetadata;includeTimeInCompletedAt;assignedTo;timeSpent;cost};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],oi.prototype,"id",void 0),a([e.Column({type:"int",name:"taskScheduleId"}),n("design:type",Number)],oi.prototype,"taskScheduleId",void 0),a([e.ManyToOne((()=>wt),{createForeignKeyConstraints:!1}),n("design:type",Object)],oi.prototype,"taskSchedule",void 0),a([e.OneToOne((()=>Dt),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"imei",referencedColumnName:"imei"}]),n("design:type",Object)],oi.prototype,"deviceStatus",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],oi.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],oi.prototype,"clientId",void 0),a([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],oi.prototype,"dueDate",void 0),a([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"dueOdometer",void 0),a([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"dueActiveHours",void 0),a([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],oi.prototype,"startDate",void 0),a([e.Column("double",{name:"startingOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"startingOdometer",void 0),a([e.Column("double",{name:"startingActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"startingActiveHours",void 0),a([e.Column("varchar",{name:"status",length:10,default:()=>"'pending'"}),n("design:type",String)],oi.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],oi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"pastDueAt",nullable:!0}),n("design:type",Date)],oi.prototype,"pastDueAt",void 0),a([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"completedAt",void 0),a([e.Column("text",{name:"completionNotes",nullable:!0}),n("design:type",String)],oi.prototype,"completionNotes",void 0),a([e.Column("double",{name:"completionOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"completionOdometer",void 0),a([e.Column("double",{name:"completionActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"completionActiveHours",void 0),a([e.Column("varchar",{name:"completedBy",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"completedBy",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"modifiedAt",void 0),a([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"modifiedBy",void 0),a([e.Column("datetime",{name:"queuedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"queuedAt",void 0),a([e.Column("datetime",{name:"predictedDueDate",nullable:!0}),n("design:type",Date)],oi.prototype,"predictedDueDate",void 0),a([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"deletedAt",void 0),a([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"deletedBy",void 0),a([e.Column("json",{name:"completionMetadata",nullable:!0}),n("design:type",Object)],oi.prototype,"completionMetadata",void 0),a([e.Column("tinyint",{name:"includeTimeInCompletedAt",width:1,transformer:new p,nullable:!0}),n("design:type",Boolean)],oi.prototype,"includeTimeInCompletedAt",void 0),a([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"assignedTo",void 0),a([e.Column("double",{name:"timeSpent",nullable:!0}),n("design:type",Number)],oi.prototype,"timeSpent",void 0),a([e.Column("double",{name:"cost",nullable:!0}),n("design:type",Number)],oi.prototype,"cost",void 0),oi=a([e.Index("ixTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixTask_Imei",["imei"],{}),e.Index("ixTask_ClientId",["clientId"],{}),e.Index("ixTask_Status",["status"],{}),e.Entity("task",{schema:"nova"})],oi);let si=class{id;tripGuid;imei;startDate;endDate;distance;startLat;startLon;endLat;endLon;createdAt;startAddress;endAddress;positionStart;positionEnd;tripCompletionStatusId;clientId;duration;tripType;startMessageId;endMessageId;startSendTimeMessage;endSendTimeMessage;deleted;startOdometer;endOdometer;startPositionId;endPositionId};a([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],si.prototype,"id",void 0),a([e.Column("binary",{name:"tripGuid",length:16,transformer:ne}),n("design:type",String)],si.prototype,"tripGuid",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],si.prototype,"imei",void 0),a([e.Column("datetime",{name:"startDate"}),n("design:type",Date)],si.prototype,"startDate",void 0),a([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],si.prototype,"endDate",void 0),a([e.Column("float",{name:"distance"}),n("design:type",Number)],si.prototype,"distance",void 0),a([e.Column("decimal",{name:"startLat",precision:8,scale:6}),n("design:type",Number)],si.prototype,"startLat",void 0),a([e.Column("decimal",{name:"startLon",precision:9,scale:6}),n("design:type",Number)],si.prototype,"startLon",void 0),a([e.Column("decimal",{name:"endLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],si.prototype,"endLat",void 0),a([e.Column("decimal",{name:"endLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],si.prototype,"endLon",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],si.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"startAddress",length:255}),n("design:type",String)],si.prototype,"startAddress",void 0),a([e.Column("varchar",{name:"endAddress",nullable:!0,length:255}),n("design:type",String)],si.prototype,"endAddress",void 0),a([e.Column("varchar",{name:"positionStart",length:255}),n("design:type",String)],si.prototype,"positionStart",void 0),a([e.Column("varchar",{name:"positionEnd",nullable:!0,length:255}),n("design:type",String)],si.prototype,"positionEnd",void 0),a([e.Column("tinyint",{name:"tripCompletionStatusId",default:()=>"'1'"}),n("design:type",Number)],si.prototype,"tripCompletionStatusId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],si.prototype,"clientId",void 0),a([e.Column("int",{name:"duration"}),n("design:type",Number)],si.prototype,"duration",void 0),a([e.Column("tinyint",{name:"tripType"}),n("design:type",Number)],si.prototype,"tripType",void 0),a([e.Column("binary",{name:"startMessageId",length:16,transformer:ne}),n("design:type",String)],si.prototype,"startMessageId",void 0),a([e.Column("binary",{name:"endMessageId",length:16,nullable:!0,transformer:ne}),n("design:type",String)],si.prototype,"endMessageId",void 0),a([e.Column("datetime",{name:"startSendTimeMessage",nullable:!0}),n("design:type",Date)],si.prototype,"startSendTimeMessage",void 0),a([e.Column("datetime",{name:"endSendTimeMessage",nullable:!0}),n("design:type",Date)],si.prototype,"endSendTimeMessage",void 0),a([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new p,default:()=>"'0'"}),n("design:type",Boolean)],si.prototype,"deleted",void 0),a([e.Column("double",{name:"startOdometer",nullable:!0}),n("design:type",Number)],si.prototype,"startOdometer",void 0),a([e.Column("double",{name:"endOdometer",nullable:!0}),n("design:type",Number)],si.prototype,"endOdometer",void 0),a([e.Column("bigint",{name:"startPositionId",nullable:!0}),n("design:type",Number)],si.prototype,"startPositionId",void 0),a([e.Column("bigint",{name:"endPositionId",nullable:!0}),n("design:type",Number)],si.prototype,"endPositionId",void 0),si=a([e.Index("ixuTripGuid",["tripGuid"],{unique:!0}),e.Index("ixTripClientId",["clientId"],{}),e.Index("ixTripImei",["imei"],{}),e.Index("ixTripStartDate",["startDate"],{}),e.Index("ixTripEndDate",["endDate"],{}),e.Index("ixCreatedAt",["createdAt"],{}),e.Index("ixTripClientIdImeiStartDate",["clientId","imei","startDate"],{}),e.Entity("trip",{schema:"nova"})],si);let li=class{id;name;description;statusId};a([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],li.prototype,"id",void 0),a([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],li.prototype,"name",void 0),a([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],li.prototype,"description",void 0),a([e.Column("tinyint",{name:"statusId",width:1,default:()=>"'1'"}),n("design:type",Boolean)],li.prototype,"statusId",void 0),li=a([e.Entity("tripCompletionStatus",{schema:"nova"})],li);let di=class{tripId;positionId};a([e.Column("bigint",{primary:!0,name:"tripId"}),n("design:type",String)],di.prototype,"tripId",void 0),a([e.Column("bigint",{primary:!0,name:"positionId"}),n("design:type",String)],di.prototype,"positionId",void 0),di=a([e.Entity("tripPosition",{schema:"nova"})],di);let ui=class{imei;clientId;tripGuid;tripStartDate};a([e.Column("varchar",{primary:!0,name:"imei",length:15}),n("design:type",String)],ui.prototype,"imei",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ui.prototype,"clientId",void 0),a([e.Column("binary",{name:"tripGuid",length:16,nullable:!0,transformer:ne}),n("design:type",String)],ui.prototype,"tripGuid",void 0),a([e.Column("datetime",{name:"tripStartDate",nullable:!0}),n("design:type",Date)],ui.prototype,"tripStartDate",void 0),ui=a([e.Entity("tripStatus",{schema:"nova"})],ui);let ci=class{id;createdAt;status;userId;legacyCreatedAt;clientId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ci.prototype,"id",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ci.prototype,"createdAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],ci.prototype,"status",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],ci.prototype,"userId",void 0),a([e.Column("datetime",{name:"legacyCreatedAt",nullable:!0}),n("design:type",Date)],ci.prototype,"legacyCreatedAt",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],ci.prototype,"clientId",void 0),ci=a([e.Index("ixUserActivationUserId",["userId"],{}),e.Entity("userActivation",{schema:"nova"})],ci);let pi=class{id;userActivation;userActivationId;device;deviceId;imei;model;billingInterval;deviceName;createdAt;modifiedAt;status;trackingReason;deviceColor;notificationByEmail;notificationBySms;planAnnual;dataSourceTypeId;subscriptionId;platform;eventType;planCode;servicePlan};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pi.prototype,"id",void 0),a([e.OneToOne((()=>ci),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],pi.prototype,"userActivation",void 0),a([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],pi.prototype,"userActivationId",void 0),a([e.OneToOne((()=>ue),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],pi.prototype,"device",void 0),a([e.Column("int",{name:"deviceId"}),n("design:type",Number)],pi.prototype,"deviceId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],pi.prototype,"imei",void 0),a([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],pi.prototype,"model",void 0),a([e.Column("varchar",{name:"billingInterval",nullable:!0,length:25}),n("design:type",String)],pi.prototype,"billingInterval",void 0),a([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],pi.prototype,"deviceName",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],pi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],pi.prototype,"modifiedAt",void 0),a([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],pi.prototype,"status",void 0),a([e.Column("varchar",{name:"trackingReason",nullable:!0,length:500}),n("design:type",String)],pi.prototype,"trackingReason",void 0),a([e.Column("varchar",{name:"deviceColor",nullable:!0,length:25}),n("design:type",String)],pi.prototype,"deviceColor",void 0),a([e.Column("tinyint",{name:"notificationByEmail",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],pi.prototype,"notificationByEmail",void 0),a([e.Column("tinyint",{name:"notificationBySms",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],pi.prototype,"notificationBySms",void 0),a([e.Column("tinyint",{name:"planAnnual",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],pi.prototype,"planAnnual",void 0),a([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],pi.prototype,"dataSourceTypeId",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],pi.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],pi.prototype,"platform",void 0),a([e.Column("varchar",{name:"eventType",nullable:!0,length:50}),n("design:type",String)],pi.prototype,"eventType",void 0),a([e.Column("varchar",{name:"planCode",nullable:!0,length:50}),n("design:type",String)],pi.prototype,"planCode",void 0),a([e.Column("varchar",{name:"servicePlan",nullable:!0,length:50}),n("design:type",String)],pi.prototype,"servicePlan",void 0),pi=a([e.Index("ixUserActivationDeviceCreatedAt",["createdAt"],{}),e.Index("ixUserActivationDeviceDeviceId",["deviceId"],{}),e.Index("ixUserActivationDeviceImei",["imei"],{}),e.Index("ixUserActivationDeviceActivationId",["userActivationId"],{}),e.Index("ixUserActivationDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userActivationDevice",{schema:"nova"})],pi);let mi=class{userId;eventId;eventName;eventValue;eventMetadata;createdAt;platform;ip;userAgent};a([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],mi.prototype,"userId",void 0),a([e.Column("binary",{primary:!0,name:"eventId",length:16}),n("design:type",Buffer)],mi.prototype,"eventId",void 0),a([e.Column("text",{name:"eventName"}),n("design:type",String)],mi.prototype,"eventName",void 0),a([e.Column("text",{name:"eventValue",nullable:!0}),n("design:type",String)],mi.prototype,"eventValue",void 0),a([e.Column("text",{name:"eventMetadata",nullable:!0}),n("design:type",String)],mi.prototype,"eventMetadata",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],mi.prototype,"createdAt",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],mi.prototype,"platform",void 0),a([e.Column("text",{name:"ip",nullable:!0}),n("design:type",String)],mi.prototype,"ip",void 0),a([e.Column("text",{name:"userAgent",nullable:!0}),n("design:type",String)],mi.prototype,"userAgent",void 0),mi=a([e.Entity("userActivationEvent",{schema:"nova"})],mi);let gi=class{id;userId;firstName;lastName;email;phone;trackingReason;companyName;role;industry;devicesActivatingCategory;assetsCountRange;devicesActivatingCount;plan;usersInvitedCount;meetingScheduled;createdAt;modifiedAt;planAnnual;planId;spyEnvironment;jarvisScore;enrichmentCompanyDescription;jarvisEnrichmentCompanyEin;enrichmentCompanyEmployees;enrichmentCompanyIndustry;enrichmentCompanyLocation;enrichmentCompanyName;enrichmentCompanyRevenue;enrichmentPrivateDomain;enrichmentPublicTicker;enrichmentRole;enrichmentTags;jenrichmentTitle;enrichmentVerifiedEmployment};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],gi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],gi.prototype,"userId",void 0),a([e.Column("text",{name:"firstName"}),n("design:type",String)],gi.prototype,"firstName",void 0),a([e.Column("text",{name:"lastName"}),n("design:type",String)],gi.prototype,"lastName",void 0),a([e.Column("text",{name:"email"}),n("design:type",String)],gi.prototype,"email",void 0),a([e.Column("text",{name:"phone",nullable:!0}),n("design:type",String)],gi.prototype,"phone",void 0),a([e.Column("text",{name:"trackingReason",nullable:!0}),n("design:type",String)],gi.prototype,"trackingReason",void 0),a([e.Column("text",{name:"companyName",nullable:!0}),n("design:type",String)],gi.prototype,"companyName",void 0),a([e.Column("text",{name:"role",nullable:!0}),n("design:type",String)],gi.prototype,"role",void 0),a([e.Column("text",{name:"industry",nullable:!0}),n("design:type",String)],gi.prototype,"industry",void 0),a([e.Column("text",{name:"devicesActivatingCategory",nullable:!0}),n("design:type",String)],gi.prototype,"devicesActivatingCategory",void 0),a([e.Column("text",{name:"assetsCountRange",nullable:!0}),n("design:type",String)],gi.prototype,"assetsCountRange",void 0),a([e.Column("decimal",{name:"devicesActivatingCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],gi.prototype,"devicesActivatingCount",void 0),a([e.Column("text",{name:"plan",nullable:!0}),n("design:type",String)],gi.prototype,"plan",void 0),a([e.Column("decimal",{name:"usersInvitedCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],gi.prototype,"usersInvitedCount",void 0),a([e.Column("tinyint",{name:"meetingScheduled",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],gi.prototype,"meetingScheduled",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],gi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],gi.prototype,"modifiedAt",void 0),a([e.Column("text",{name:"planAnnual",nullable:!0}),n("design:type",String)],gi.prototype,"planAnnual",void 0),a([e.Column("text",{name:"planId",nullable:!0}),n("design:type",String)],gi.prototype,"planId",void 0),a([e.Column("text",{name:"spyEnvironment",nullable:!0}),n("design:type",String)],gi.prototype,"spyEnvironment",void 0),a([e.Column("int",{name:"jarvisScore",nullable:!0}),n("design:type",Number)],gi.prototype,"jarvisScore",void 0),a([e.Column("text",{name:"enrichmentCompanyDescription",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyDescription",void 0),a([e.Column("text",{name:"jarvisEnrichmentCompanyEin",nullable:!0}),n("design:type",String)],gi.prototype,"jarvisEnrichmentCompanyEin",void 0),a([e.Column("text",{name:"enrichmentCompanyEmployees",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyEmployees",void 0),a([e.Column("text",{name:"enrichmentCompanyIndustry",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyIndustry",void 0),a([e.Column("text",{name:"enrichmentCompanyLocation",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyLocation",void 0),a([e.Column("text",{name:"enrichmentCompanyName",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyName",void 0),a([e.Column("text",{name:"enrichmentCompanyRevenue",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentCompanyRevenue",void 0),a([e.Column("text",{name:"enrichmentPrivateDomain",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentPrivateDomain",void 0),a([e.Column("text",{name:"enrichmentPublicTicker",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentPublicTicker",void 0),a([e.Column("text",{name:"enrichmentRole",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentRole",void 0),a([e.Column("text",{name:"enrichmentTags",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentTags",void 0),a([e.Column("text",{name:"jenrichmentTitle",nullable:!0}),n("design:type",String)],gi.prototype,"jenrichmentTitle",void 0),a([e.Column("text",{name:"enrichmentVerifiedEmployment",nullable:!0}),n("design:type",String)],gi.prototype,"enrichmentVerifiedEmployment",void 0),gi=a([e.Index("ixuUserActivationMetricUserId",["userId"],{unique:!0}),e.Entity("userActivationMetric",{schema:"nova"})],gi);let yi=class{id;userId;platform;appVersion;feedback;createdAt;amazonReviewDate};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],yi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],yi.prototype,"userId",void 0),a([e.Column("varchar",{name:"platform",length:25}),n("design:type",String)],yi.prototype,"platform",void 0),a([e.Column("varchar",{name:"appVersion",length:20}),n("design:type",String)],yi.prototype,"appVersion",void 0),a([e.Column("varchar",{name:"feedback",nullable:!0,length:2e3}),n("design:type",String)],yi.prototype,"feedback",void 0),a([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],yi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"amazonReviewDate",nullable:!0}),n("design:type",Date)],yi.prototype,"amazonReviewDate",void 0),yi=a([e.Index("ixUserAppFeedbackUserId",["userId"],{}),e.Entity("userAppFeedback",{schema:"nova"})],yi);let vi=class{id;userId;userName;userEmail;deviceOs;deviceManufacturer;deviceModel;stage;appVersion;createdAt;errorMessage;errorFirstReceivedAt;errorReceivedAt;deviceJailbroken;deviceOsVersion;deviceFreeMemory;deviceTotalMemory;deviceCharging;deviceBatteryLevel;deviceNetworkAccess;appActiveScreen;appInForeground;appDurationInForeground;appBundleId;incidentUrl;errorId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],vi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],vi.prototype,"userId",void 0),a([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],vi.prototype,"userName",void 0),a([e.Column("varchar",{name:"userEmail",nullable:!0,length:255}),n("design:type",String)],vi.prototype,"userEmail",void 0),a([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],vi.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"deviceManufacturer",nullable:!0,length:100}),n("design:type",String)],vi.prototype,"deviceManufacturer",void 0),a([e.Column("varchar",{name:"deviceModel",nullable:!0,length:100}),n("design:type",String)],vi.prototype,"deviceModel",void 0),a([e.Column("varchar",{name:"stage",length:25}),n("design:type",String)],vi.prototype,"stage",void 0),a([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],vi.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],vi.prototype,"createdAt",void 0),a([e.Column("text",{name:"errorMessage",nullable:!0}),n("design:type",String)],vi.prototype,"errorMessage",void 0),a([e.Column("datetime",{name:"errorFirstReceivedAt",nullable:!0}),n("design:type",Date)],vi.prototype,"errorFirstReceivedAt",void 0),a([e.Column("datetime",{name:"errorReceivedAt",nullable:!0}),n("design:type",Date)],vi.prototype,"errorReceivedAt",void 0),a([e.Column("tinyint",{name:"deviceJailbroken",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],vi.prototype,"deviceJailbroken",void 0),a([e.Column("varchar",{name:"deviceOsVersion",nullable:!0,length:20}),n("design:type",String)],vi.prototype,"deviceOsVersion",void 0),a([e.Column("int",{name:"deviceFreeMemory",nullable:!0}),n("design:type",Number)],vi.prototype,"deviceFreeMemory",void 0),a([e.Column("int",{name:"deviceTotalMemory",nullable:!0}),n("design:type",Number)],vi.prototype,"deviceTotalMemory",void 0),a([e.Column("tinyint",{name:"deviceCharging",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],vi.prototype,"deviceCharging",void 0),a([e.Column("smallint",{name:"deviceBatteryLevel",nullable:!0}),n("design:type",Number)],vi.prototype,"deviceBatteryLevel",void 0),a([e.Column("varchar",{name:"deviceNetworkAccess",nullable:!0,length:100}),n("design:type",String)],vi.prototype,"deviceNetworkAccess",void 0),a([e.Column("varchar",{name:"appActiveScreen",nullable:!0,length:50}),n("design:type",String)],vi.prototype,"appActiveScreen",void 0),a([e.Column("tinyint",{name:"appInForeground",nullable:!0,width:1,transformer:new p}),n("design:type",Boolean)],vi.prototype,"appInForeground",void 0),a([e.Column("int",{name:"appDurationInForeground",nullable:!0}),n("design:type",Number)],vi.prototype,"appDurationInForeground",void 0),a([e.Column("varchar",{name:"appBundleId",nullable:!0,length:500}),n("design:type",String)],vi.prototype,"appBundleId",void 0),a([e.Column("varchar",{name:"incidentUrl",nullable:!0,length:1e3}),n("design:type",String)],vi.prototype,"incidentUrl",void 0),a([e.Column("varchar",{name:"errorId",nullable:!0,length:100}),n("design:type",String)],vi.prototype,"errorId",void 0),vi=a([e.Index("ixUserAppIncidentCreatedAt",["createdAt"],{}),e.Index("ixUserAppIncidentErrorId",["errorId"],{}),e.Index("ixUserAppIncidentUserId",["userId"],{}),e.Index("ixuUserAppIncidentUserIdErrorId",["userId","errorId"],{unique:!0}),e.Entity("userAppIncident",{schema:"nova"})],vi);let hi=class{clientId;userId;boundaryId;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],hi.prototype,"clientId",void 0),a([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],hi.prototype,"userId",void 0),a([e.PrimaryColumn("int",{name:"boundaryId"}),n("design:type",Number)],hi.prototype,"boundaryId",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],hi.prototype,"createdAt",void 0),hi=a([e.Index("ixUserAuthorizedBoundaryUserIdBoundaryId",["userId","boundaryId"],{}),e.Index("ixUserAuthorizedBoundaryBoundaryIdUserId",["boundaryId","userId"],{}),e.Entity("userAuthorizedBoundary",{schema:"nova"})],hi);let fi=class{clientId;userId;boundaryId};a([e.ViewColumn({name:"clientId"}),n("design:type",Number)],fi.prototype,"clientId",void 0),a([e.ViewColumn({name:"userId",transformer:ne}),n("design:type",String)],fi.prototype,"userId",void 0),a([e.ViewColumn({name:"boundaryId"}),n("design:type",Number)],fi.prototype,"boundaryId",void 0),fi=a([e.ViewEntity({name:"user_authorized_boundary_security_view",schema:"nova",synchronize:!1,expression:"\n SELECT uab.clientId, uab.userId, uab.boundaryId\n FROM userAuthorizedBoundary uab\n LEFT JOIN entityTag rt\n ON uab.boundaryId = rt.entityId\n AND rt.entityType = 'Boundary' \n AND rt.isSecurityGroup = TRUE\n LEFT JOIN entityTag ut \n ON uab.userId = ut.userId \n AND ut.entityType = 'User' \n AND ut.isSecurityGroup = TRUE\n WHERE (ut.id IS NULL OR ut.tagId = rt.tagId)\n "})],fi);let Ii=class{clientId;userId;imei;createdAt};a([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Ii.prototype,"clientId",void 0),a([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ii.prototype,"userId",void 0),a([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Ii.prototype,"imei",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ii.prototype,"createdAt",void 0),Ii=a([e.Index("ixUserAuthorizedDeviceUserIdImei",["userId","imei"],{}),e.Index("ixUserAuthorizedDeviceImeiUserId",["imei","userId"],{}),e.Entity("userAuthorizedDevice",{schema:"nova"})],Ii);let Ci=class{clientId;imei;userId};a([e.ViewColumn({name:"clientId"}),n("design:type",Number)],Ci.prototype,"clientId",void 0),a([e.ViewColumn({name:"imei"}),n("design:type",String)],Ci.prototype,"imei",void 0),a([e.ViewColumn({name:"userId",transformer:ne}),n("design:type",String)],Ci.prototype,"userId",void 0),Ci=a([e.ViewEntity({name:"user_authorized_device_security_view",schema:"nova",synchronize:!1,expression:"\n SELECT uad.clientId, uad.imei, uad.userId\n FROM userAuthorizedDevice uad\n LEFT JOIN entityTag rt \n ON uad.imei = rt.imei \n AND rt.entityType = 'Device' \n AND rt.isSecurityGroup = TRUE\n LEFT JOIN entityTag ut \n ON uad.userId = ut.userId \n AND ut.entityType = 'User' \n AND ut.isSecurityGroup = TRUE\n WHERE (ut.id IS NULL OR ut.tagId = rt.tagId)\n "})],Ci);let bi=class{id;userId;clientId;userSecurityRoleName;email;status;createdAt;modifiedAt};a([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],bi.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],bi.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],bi.prototype,"clientId",void 0),a([e.Column("varchar",{name:"userSecurityRoleName",length:50}),n("design:type",String)],bi.prototype,"userSecurityRoleName",void 0),a([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],bi.prototype,"email",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],bi.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],bi.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],bi.prototype,"modifiedAt",void 0),bi=a([e.Index("ixUserDataDeletionRequestUserId",["userId"],{}),e.Entity("userDataDeletionRequest",{schema:"nova"})],bi);let Si=class{id;deviceBehaviorId;clientId;userId;imei;behaviorName;behaviorParams;status;createdAt;modifiedAt;extraParams;commandTaskId};a([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Si.prototype,"id",void 0),a([e.Column("smallint",{name:"deviceBehaviorId"}),n("design:type",Number)],Si.prototype,"deviceBehaviorId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Si.prototype,"clientId",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Si.prototype,"userId",void 0),a([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Si.prototype,"imei",void 0),a([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],Si.prototype,"behaviorName",void 0),a([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Si.prototype,"behaviorParams",void 0),a([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],Si.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Si.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Si.prototype,"modifiedAt",void 0),a([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],Si.prototype,"extraParams",void 0),a([e.Column("binary",{name:"commandTaskId",length:16,nullable:!0}),n("design:type",Buffer)],Si.prototype,"commandTaskId",void 0),Si=a([e.Index("ixUserDeviceBehaviorTaskImei",["imei"],{}),e.Index("ixUserDeviceBehaviorTaskClientId",["clientId"],{}),e.Index("ixUserDeviceBehaviorTaskDeviceBehaviorId",["deviceBehaviorId"],{}),e.Index("ixUserDeviceBehaviorTaskModifiedAt",["modifiedAt"],{}),e.Entity("userDeviceBehaviorTask",{schema:"nova"})],Si);var Ri=Object.freeze({__proto__:null}),Di=Object.freeze({__proto__:null}),wi=Object.freeze({__proto__:null}),Ai=Object.freeze({__proto__:null}),Ti=Object.freeze({__proto__:null}),Ni=Object.freeze({__proto__:null}),Bi=Object.freeze({__proto__:null}),Ui=Object.freeze({__proto__:null}),Ei=Object.freeze({__proto__:null}),Pi=Object.freeze({__proto__:null});const Mi=["filters.clientId","filters.ssoDomain"],Oi=["filters.clientId"],xi=["values.movementTripThreshold","values.stopTripThreshold","values.mapUpdateMode","values.maxUsersAllowed","values.ssoDomain","values.ssoMetadata","values.assetProfileStatusLabels"],ki=["clientId"],Li=["enterprise","maintenanceModule","billingMethod","customerSegment"],Fi=["filters.clientId"],Qi=["values.enterprise","values.maintenanceModule","values.billingMethod","values.customerSegment"],qi=["clientId","userActivationId","tokenUrl","fleetUrl","requestParams"];var Wi=Object.freeze({__proto__:null,oneRequiredCreateCustomerAttributeParamsAttributes:Li,oneRequiredGetClientConfigurationParamsAttributes:Mi,oneRequiredUpdateClientConfigurationParamsAttributes:xi,oneRequiredUpdateCustomerAttributeParamsAttributes:Qi,requireCreateClientIngestorConfigurationParamsAttributes:qi,requiredCreateCustomerAttributeParamsAttributes:ki,requiredUpdateClientConfigurationParamsAttributes:Oi,requiredUpdateCustomerAttributeParamsAttributes:Fi}),_i=Object.freeze({__proto__:null}),ji=Object.freeze({__proto__:null}),zi=Object.freeze({__proto__:null}),Vi=Object.freeze({__proto__:null}),Gi=Object.freeze({__proto__:null});const Ji=["clientId","deviceTypeId","iccid","name","color","icon","status","forward","description","dataSourceTypeId","assetCategoryId","usageRegion","btmac","assignedTo"],Hi=["imei","iccid","deviceTypeId","serviceProviderProductId","carrier"],Ki=["clientId","imei","assignedTo"];var $i=Object.freeze({__proto__:null,oneRequiredUpdateDeviceParamsValue:Ji,requiredAddDeviceChangesHistoryParams:Ki,requiredImeiIccidCarrierFields:Hi}),Xi=Object.freeze({__proto__:null});const Yi=["clientId","createdBy","tagId","entityType","entityId"],Zi=["entityType","entityId","tagId","clientId","deletedBy"],er=["filters.clientId"],tr=["clientId","entityType","deletedBy"],ir=["tagIds","entityIds"],rr=["filters.clientId","filters.entityId","filters.entityType","values.enforcedBy","values.tagIds"],ar=["filters.id"];var nr,or,sr=Object.freeze({__proto__:null,oneRequiredBulkDeleteParamsAttributes:ir,requiredBulkDeleteParamsAttributes:tr,requiredCreateEntityTagParamsAttributes:Yi,requiredDeleteEntityTagParamsAttributes:Zi,requiredEnforceEntityTagsByEntityParamsAttributes:rr,requiredGetEntityTagByIdParamsAttributes:ar,requiredSearchEntityTagsParamsAttributes:er});!function(e){e.BB="0",e.MCU="1",e.BLE="2",e.MODEM="7"}(nr||(nr={})),function(e){e.Queued="Queued",e.QueuedWaitingForConfig="QueuedWaitingForConfig",e.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed",e.Expired="Expired"}(or||(or={}));var lr,dr=Object.freeze({__proto__:null,get FirmwareUpgradeTaskStatus(){return or},get UpgradeType(){return nr}}),ur=Object.freeze({__proto__:null}),cr=Object.freeze({__proto__:null});!function(e){e.FATAL="fatal",e.ERROR="error",e.WARN="warn",e.INFO="info",e.DEBUG="debug",e.TRACE="trace"}(lr||(lr={}));var pr=Object.freeze({__proto__:null,get LogLevel(){return lr}}),mr=Object.freeze({__proto__:null}),gr=Object.freeze({__proto__:null});const yr=["values.roleId","values.devicesAccess","values.boundariesAccess","values.minAccessDate"],vr=["userId","imei"],hr=["userId","boundaryId"],fr=["filters.clientId","filters.imeisList"],Ir=["filters.clientId","filters.boundaryIdList"];var Cr=Object.freeze({__proto__:null,oneRequiredUserRoleParamsAttributes:yr,requiredCreateUserAuthorizedBoundaryParamsAttributes:hr,requiredCreateUserAuthorizedDeviceParamsAttributes:vr,requiredGetUserIdsByClientIdAndAuthorizedBoundariesParamsAttributes:Ir,requiredGetUserIdsByClientIdAndAuthorizedDevicesParamsAttributes:fr});const br=["createdBy","clientId","name"],Sr=["createdBy","clientId","tags"],Rr=["filters.tagId","filters.clientId","values.modifiedBy"],Dr=["clientId","tagId","deletedBy"],wr=["filters.clientId"],Ar=["filters.clientId"],Tr=["filters.userId","filters.userNumberId"];var Nr=Object.freeze({__proto__:null,oneRequiredSearchTagsByUserParamsAttributes:Tr,requiredBulkCreateTagParamsAttributes:Sr,requiredCreateTagParamsAttributes:br,requiredDeleteTagParamsAttributes:Dr,requiredSearchTagsByUserParamsAttributes:Ar,requiredSearchTagsParamsAttributes:wr,requiredUpdateTagParamsAttributes:Rr});const Br=["filters.clientId","filters.from","filters.to"],Ur=["filters.imei"];var Er=Object.freeze({__proto__:null,requiredCreateTripParamsAttributes:["tripGuid","imei","startDate","distance","startLat","startLon","startAddress","positionStart","tripCompletionStatusId","clientId","duration","tripType","startMessageId"],requiredGetTripsParamsAttributes:Br,requiredGetUserTripConfigurationParamsAttributes:Ur,requiredUpdateTripEndValuesParamsAttributes:["filters.tripGuid","values.endDate","values.endLat","values.endLon","values.endAddress","values.positionEnd","values.endMessageId","values.distance","values.duration","values.tripType","values.tripCompletionStatusId"]});const Pr=["filters.id","filters.numberId"];var Mr=Object.freeze({__proto__:null,oneRequiredGetUserByIdParams:Pr}),Or=Object.freeze({__proto__:null}),xr=Object.freeze({__proto__:null}),kr=Object.freeze({__proto__:null}),Lr=Object.freeze({__proto__:null}),Fr=Object.freeze({__proto__:null}),Qr=Object.freeze({__proto__:null}),qr=Object.freeze({__proto__:null}),Wr=Object.freeze({__proto__:null}),_r=Object.freeze({__proto__:null,Acumatica:Ri,AlertTypes:wi,Alerts:Di,AppFeatures:Ai,BLEMesh:Bi,BLEMeshConfiguration:Ui,Billing:Ti,Blacklist:Ni,Boundaries:Ei,ClientAlertConfiguration:Pi,Clients:Wi,Countries:_i,DataExports:ji,Deactivations:zi,DeviceBehaviors:Vi,DevicePairings:Gi,DeviceStatus:Xi,Devices:$i,EntitiesTags:sr,Enums:$,Firmwares:dr,LatestUserAppInfo:ur,LiveLinks:cr,Logger:pr,NotificationRecipients:mr,Positions:gr,Security:Cr,Tags:Nr,Trips:Er,UserActivations:Or,UserAppFeedback:xr,UserAppIncidents:kr,UserConfigurations:Lr,UserDataDeletionRequests:Fr,UserInvitations:Qr,UserRatingRequests:qr,UserRegistrationAttempts:Wr,Users:Mr});const jr={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>e.trim())):null},zr={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>Number(e.trim()))).filter((e=>!isNaN(e))):null};let Vr=class{id;numberId;inviterClientId;inviterUserId;inviteeEmail;inviteeSecurityRoleId;statusId;createdAt;modifiedAt;inviteeUserId;trackerImeis;trackerAccess;minAccessDate;boundaries;boundaryAccess;tasksAccess;generateDefaults(){this.id||(this.id=t.v4()),this.createdAt||(this.createdAt=new Date),this.modifiedAt||(this.modifiedAt=new Date),this.trackerAccess||(this.trackerAccess="full"),this.boundaryAccess||(this.boundaryAccess="full"),this.inviteeSecurityRoleId||(this.inviteeSecurityRoleId=v.Collaborator),this.statusId||(this.statusId=C.Pending)}updateModifiedAt(){this.modifiedAt=new Date}};a([e.Column("binary",{primary:!0,name:"id",length:16,transformer:ne}),n("design:type",String)],Vr.prototype,"id",void 0),a([e.Column("int",{name:"numberId",unique:!0}),e.Generated("increment"),n("design:type",Number)],Vr.prototype,"numberId",void 0),a([e.Column("int",{name:"inviterClientId"}),n("design:type",Number)],Vr.prototype,"inviterClientId",void 0),a([e.Column("binary",{name:"inviterUserId",length:16,transformer:ne}),n("design:type",String)],Vr.prototype,"inviterUserId",void 0),a([e.Column("varchar",{name:"inviteeEmail",length:255}),n("design:type",String)],Vr.prototype,"inviteeEmail",void 0),a([e.Column("tinyint",{name:"inviteeSecurityRoleId"}),n("design:type",Number)],Vr.prototype,"inviteeSecurityRoleId",void 0),a([e.Column("tinyint",{name:"statusId"}),n("design:type",Number)],Vr.prototype,"statusId",void 0),a([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Vr.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"modifiedAt"}),n("design:type",Date)],Vr.prototype,"modifiedAt",void 0),a([e.Column("binary",{name:"inviteeUserId",length:16,transformer:ne,nullable:!0}),n("design:type",String)],Vr.prototype,"inviteeUserId",void 0),a([e.Column("mediumtext",{name:"trackerImeis",nullable:!0,transformer:jr}),n("design:type",Array)],Vr.prototype,"trackerImeis",void 0),a([e.Column("text",{name:"trackerAccess",nullable:!0}),n("design:type",String)],Vr.prototype,"trackerAccess",void 0),a([e.Column("datetime",{name:"minAccessDate",nullable:!0}),n("design:type",Date)],Vr.prototype,"minAccessDate",void 0),a([e.Column("text",{name:"boundaries",nullable:!0,transformer:zr}),n("design:type",Array)],Vr.prototype,"boundaries",void 0),a([e.Column("text",{name:"boundaryAccess",nullable:!0}),n("design:type",String)],Vr.prototype,"boundaryAccess",void 0),a([e.Column("text",{name:"tasksAccess",nullable:!0}),n("design:type",String)],Vr.prototype,"tasksAccess",void 0),a([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Vr.prototype,"generateDefaults",null),a([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Vr.prototype,"updateModifiedAt",null),Vr=a([e.Index("ixUserInvtationInviteeEmail",["inviteeEmail"],{}),e.Index("ixUserInvtationInviterClientId",["inviterClientId"],{}),e.Index("ixUserInvtationInviteUserId",["inviterUserId"],{}),e.Index("ixUserInvtationInviteeSecurityRoleId",["inviteeSecurityRoleId"],{}),e.Index("ixNumberId",["numberId"],{}),e.Entity("userInvitation",{schema:"nova"})],Vr);let Gr=class{id;userId;clientId;deviceManufacturer;deviceOs;deviceOsVersion;appVersion;requestDate;amazonRequestDate;deviceIdentifierKey};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Gr.prototype,"id",void 0),a([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Gr.prototype,"userId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Gr.prototype,"clientId",void 0),a([e.Column("varchar",{name:"deviceManufacturer",length:500}),n("design:type",String)],Gr.prototype,"deviceManufacturer",void 0),a([e.Column("varchar",{name:"deviceOs",length:50}),n("design:type",String)],Gr.prototype,"deviceOs",void 0),a([e.Column("varchar",{name:"deviceOsVersion",length:20}),n("design:type",String)],Gr.prototype,"deviceOsVersion",void 0),a([e.Column("varchar",{name:"appVersion",length:10}),n("design:type",String)],Gr.prototype,"appVersion",void 0),a([e.Column("datetime",{name:"requestDate",nullable:!0}),n("design:type",Date)],Gr.prototype,"requestDate",void 0),a([e.Column("datetime",{name:"amazonRequestDate",nullable:!0}),n("design:type",Date)],Gr.prototype,"amazonRequestDate",void 0),a([e.Column("varchar",{name:"deviceIdentifierKey",nullable:!0,length:255}),n("design:type",String)],Gr.prototype,"deviceIdentifierKey",void 0),Gr=a([e.Index("ixUserRatingRequestAmazonRequestDate",["amazonRequestDate"],{}),e.Index("ixUserRatingRequestClientId",["clientId"],{}),e.Index("ixUserRatingRequestUserId",["userId"],{}),e.Index("ixUserRatingRequestRequestDate",["requestDate"],{}),e.Index("ixUserRatingRequestUserId_RequestDate",["userId","requestDate"],{}),e.Entity("userRatingRequest",{schema:"nova"})],Gr);let Jr=class{id;firstName;lastName;email;phoneNumber;phoneCode;phoneCodeCountryId;companyName;street;state;postalCode;country;pin;imei;deviceType;deviceName;orderId;trackingReason;userName;plan;billingFrequency;planId;subscriptionSource;subscriptionId;platform;status;createdAt;lastUpdatedAt;city;clientId;countryCode;tempUserId};a([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Jr.prototype,"id",void 0),a([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"firstName",void 0),a([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"lastName",void 0),a([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"email",void 0),a([e.Column("varchar",{name:"phoneNumber",nullable:!0,length:20}),n("design:type",String)],Jr.prototype,"phoneNumber",void 0),a([e.Column("varchar",{name:"phoneCode",nullable:!0,length:10}),n("design:type",String)],Jr.prototype,"phoneCode",void 0),a([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:10}),n("design:type",String)],Jr.prototype,"phoneCodeCountryId",void 0),a([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"companyName",void 0),a([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"street",void 0),a([e.Column("varchar",{name:"state",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"state",void 0),a([e.Column("varchar",{name:"postalCode",nullable:!0,length:20}),n("design:type",String)],Jr.prototype,"postalCode",void 0),a([e.Column("varchar",{name:"country",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"country",void 0),a([e.Column("int",{name:"pin",nullable:!0}),n("design:type",Number)],Jr.prototype,"pin",void 0),a([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Jr.prototype,"imei",void 0),a([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"deviceType",void 0),a([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"deviceName",void 0),a([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"orderId",void 0),a([e.Column("varchar",{name:"trackingReason",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"trackingReason",void 0),a([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"userName",void 0),a([e.Column("varchar",{name:"plan",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"plan",void 0),a([e.Column("varchar",{name:"billingFrequency",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"billingFrequency",void 0),a([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"planId",void 0),a([e.Column("varchar",{name:"subscriptionSource",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"subscriptionSource",void 0),a([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"subscriptionId",void 0),a([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Jr.prototype,"platform",void 0),a([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Jr.prototype,"status",void 0),a([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Jr.prototype,"createdAt",void 0),a([e.Column("datetime",{name:"lastUpdatedAt",nullable:!0}),n("design:type",Date)],Jr.prototype,"lastUpdatedAt",void 0),a([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"city",void 0),a([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Jr.prototype,"clientId",void 0),a([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],Jr.prototype,"countryCode",void 0),a([e.Column("binary",{name:"tempUserId",nullable:!0,length:16}),n("design:type",Buffer)],Jr.prototype,"tempUserId",void 0),Jr=a([e.Index("ixUserRegistrationAttemptTempUserId",["tempUserId"],{}),e.Entity("userRegistrationAttempt",{schema:"nova"})],Jr);let Hr=class{connectionId;clientId;userId;host;createdAt};a([e.PrimaryColumn("varchar",{name:"connectionId",length:36}),n("design:type",String)],Hr.prototype,"connectionId",void 0),a([e.Column("int",{name:"clientId"}),n("design:type",Number)],Hr.prototype,"clientId",void 0),a([e.Column("binary",{name:"userId",length:16,transformer:ne}),n("design:type",String)],Hr.prototype,"userId",void 0),a([e.Column("varchar",{name:"host",length:255}),n("design:type",String)],Hr.prototype,"host",void 0),a([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Hr.prototype,"createdAt",void 0),Hr=a([e.Index("ixWebsocketConnectionUserId",["userId"]),e.Index("ixWebsocketConnectionClientIdUserIdHost",["clientId","userId","host"]),e.Index("ixWebsocketConnectionCreatedAt",["createdAt"]),e.Entity("websocketConnection",{schema:"nova"})],Hr);var Kr=Object.freeze({__proto__:null,get AcumaticaAmazonProduct(){return o},get AcumaticaImeiIccidData(){return s},get AcumaticaOrderShipmentDetails(){return l},get AcumaticaShipment(){return d},get AcumaticaShipmentAmazon(){return u},get AempToken(){return c},get Alert(){return g},get AlertType(){return m},get AppFeatureType(){return y},get AsinPromotion(){return te},get AssetCategory(){return ie},get AssetProfile(){return Be},get AssetProfileCategory(){return Te},get AssetProfileCustomField(){return re},get AssetProfileMedia(){return ae},get AssetProfileNote(){return Ae},get AssetProfileType(){return Ne},get AvalaraExemptCert(){return Ee},get AvalaraQueue(){return Pe},get BLEMesh(){return Oe},get BLEMeshConfiguration(){return Ye},get BeaconBleMesh(){return xe},get Billing(){return Le},get BillingCustomerAmazon(){return Fe},get BillingCustomerBraintree(){return Qe},get BillingDeviceHistory(){return qe},get BillingDeviceTypePlan(){return _e},get BillingHubspotPaymentLog(){return je},get BillingKlarnaCustomer(){return ze},get BillingKlarnaOrder(){return Ve},get BillingPlanFeatures(){return Ge},get BillingPlans(){return We},get BillingStatusHistoryBraintree(){return Je},get BillingSubscriptionAmazon(){return He},get BillingSubscriptionBraintree(){return Ke},get Blacklist(){return $e},get BlacklistType(){return Xe},get Boundary(){return Ze},get BoundaryEvent(){return et},get CellTower(){return tt},get Client(){return me},get ClientAlertConfiguration(){return he},get ClientAlertRecipient(){return ve},get ClientAppFeature(){return it},get ClientConfiguration(){return rt},get ClientDeviceIcon(){return le},get ClientDeviceSetting(){return at},get ClientIngestorConfiguration(){return nt},get ClientType(){return oe},get Country(){return ge},get CustomerAttribute(){return se},get DataExport(){return ot},get DataSourceType(){return st},get Deactivation(){return lt},get DeactivationReason(){return dt},get Device(){return ue},get DeviceBehavior(){return ut},get DeviceBleMesh(){return Me},get DeviceBleMeshUpdateTask(){return ct},get DeviceCameraMedia(){return yt},get DeviceCameraMediaEventType(){return pt},get DeviceCameraMediaStreamingData(){return vt},get DeviceCameraMediaSyncStatus(){return ht},get DeviceCameraRequestedPictureData(){return mt},get DeviceCameraRequestedVideoData(){return gt},get DeviceChangesHistory(){return ft},get DeviceCustomConfiguration(){return ce},get DeviceEventsTriggerConfiguration(){return It},get DeviceHistory(){return Ct},get DeviceModelListener(){return bt},get DevicePairing(){return St},get DevicePromotion(){return X},get DeviceReplacement(){return Rt},get DeviceStatus(){return Dt},get DeviceTask(){return At},get DeviceType(){return de},get DeviceTypeFeature(){return Tt},get DeviceTypeFirmware(){return Nt},get DeviceTypePromotion(){return Y},get EmailDomain(){return Bt},get EntityTag(){return Ut},get EntityType(){return Et},get Feature(){return Pt},get FirmwareAutoUpgradeBlacklist(){return Mt},get FirmwareUpgradeTask(){return Ot},get HistoricalBillingPlan(){return xt},get IccidStatus(){return kt},get ImeiIccidCarrier(){return Lt},get ImeiIccidHistory(){return Ft},get ImeiIccidImport(){return Qt},get Industry(){return qt},get LatestPosition(){return Wt},get LatestUserAppInfo(){return _t},get LiveLink(){return zt},get LiveLinkMedia(){return jt},get M2Sync(){return Vt},get Magento2Gps(){return Gt},get Magento2Plan(){return Jt},get MarketplacePromotion(){return Z},get MobileNetwork(){return Ht},get NotificationRecipient(){return fe},get OrderShipmentInternational(){return Kt},get Organization(){return pe},get Plan(){return ke},get Position(){return $t},get Promotion(){return ee},get PromotionHistory(){return Xt},get Region(){return Yt},get ReportScheduleConfiguration(){return Zt},get SecurityRole(){return Se},get ServiceProvider(){return ei},get ServiceProviderProduct(){return ti},get ServiceProviderProductNetwork(){return ii},get ServiceProviderProductType(){return ri},get Sim(){return ai},get Tag(){return ni},get Task(){return oi},get TaskSchedule(){return wt},get Trip(){return si},get TripCompletionStatus(){return li},get TripPosition(){return di},get TripStatus(){return ui},get User(){return we},get UserActivation(){return ci},get UserActivationDevice(){return pi},get UserActivationEvent(){return mi},get UserActivationMetric(){return gi},get UserAlertComplain(){return ye},get UserAlertConfiguration(){return Ie},get UserAlertNotificationsConfig(){return Ce},get UserAppFeedback(){return yi},get UserAppIncident(){return vi},get UserAuthorizedBoundary(){return hi},get UserAuthorizedBoundarySecurityView(){return fi},get UserAuthorizedDevice(){return Ii},get UserAuthorizedDeviceSecurityView(){return Ci},get UserConfiguration(){return be},get UserDataDeletionRequest(){return bi},get UserDeviceBehaviorTask(){return Si},get UserInvitation(){return Vr},get UserRatingRequest(){return Gr},get UserRegistrationAttempt(){return Jr},get UserSecurityRole(){return De},get WebsocketConnection(){return Hr}});const $r=["Device","Billing"];let Xr=class{afterRemove(e){const t=e.metadata.name,i=`ENTITY OF TYPE ${t} REMOVED`;$r.includes(t)&&console.error(i,{entityId:e.entityId,entity:e.entity,databaseEntity:e.databaseEntity})}};Xr=a([e.EventSubscriber()],Xr);var Yr=Object.freeze({__proto__:null,get AllEntitiesSubscriber(){return Xr}});const Zr=["commit","start transaction","select version()"];class ea{logger;logging;constructor(e,t){this.logger=e,this.logging=null!=t&&t}serializeParameters(e){return e.map((e=>Buffer.isBuffer(e)?`X'${e.toString("hex")}'`:e))}logQuery(e,t,i){try{if(!this.logging||this.logging instanceof Array&&!this.logging.includes("query"))return;const i=e.toLowerCase();for(const e of Zr)if(i.includes(e))return;this.logger?.trace({query:e,parameters:this.serializeParameters(t)},"SQL QUERY")}catch{}}logQueryError(e,t,i,r){this.logger?.error({query:t,parameters:this.serializeParameters(i),error:e},"SQL QUERY WITH ERROR")}logQuerySlow(e,t,i,r){this.logger?.warn({query:t,parameters:this.serializeParameters(i),time:e},"SQL QUERY SLOW")}logSchemaBuild(e,t){this.logger?.trace({message:e},"SQL SCHEMA BUILD")}logMigration(e,t){this.logger?.trace({message:e},"SQL MIGRATION: ")}log(e,t,i){"warn"===e?this.logger?.warn({message:t},"SQL LOG:"):"info"===e?this.logger?.info({message:t},"SQL LOG:"):this.logger?.trace({message:t},"SQL LOG:")}}class ta{dataSource;logger;constructor(t,i,r){this.logger=i;const a=[];for(const e in Kr){const t=Kr[e];a.push(t)}const n=[];for(const e in Yr){const t=Yr[e];n.push(t)}const o={host:"aws.connect.psdb.cloud",port:3306,database:"nova",ssl:{rejectUnauthorized:!0}};this.dataSource=new e.DataSource({type:"mysql",connectorPackage:"mysql2",synchronize:!1,logging:!0,logger:new ea(this.logger,t.logging),entities:a,subscribers:n,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...o,...t,replication:{master:{...o,...t},slaves:r?[{...o,...r}]:[{...o,...t}],defaultMode:t.replicationMode??"master"}})}async connect(){this.dataSource.isInitialized||await this.dataSource.initialize()}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,t){return this.dataSource.query(e,t,null)}async createQueryBuilder(e,t){return this.dataSource.createQueryBuilder(e,t,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const t=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:t},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(t)}async safeQuery(e,t,i){try{await this.connect();return await e(this,i)}catch(e){throw this.logger.error({error:e},t?t+" ":"Error while executing query"),e}finally{i&&await i.release(),await this.disconnect()}}async safeQuery2(e,t,i){try{this.dataSource.isInitialized?this.logger.info("nova-orm reusing connection"):(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,i)}catch(e){throw this.logger.error({error:e},t?t+" ":"Error while executing query"),e}finally{i&&await i.release()}}async safeQuery3(e,t,i,{replicationMode:r,tag:a}={}){let n;try{await this.connect(),r?(this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),n=this.dataSource.createQueryRunner(r)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const a=this.dataSource.createQueryBuilder(e,t,n);return await i(a)}catch(e){throw this.logger.error({error:e},a?a+" ":"Error while executing query"),e}finally{n&&await n.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}}class ia{fatal=(e,t,...i)=>{this.log(lr.FATAL,e,t,...i)};error=(e,t,...i)=>{this.log(lr.FATAL,e,t,...i)};warn=(e,t,...i)=>{this.log(lr.WARN,e,t,...i)};info=(e,t,...i)=>{this.log(lr.INFO,e,t,...i)};debug=(e,t,...i)=>{this.log(lr.DEBUG,e,t,...i)};trace=(e,t,...i)=>{this.log(lr.TRACE,e,t,...i)};log=(e,t,i,...r)=>{switch(e){case lr.FATAL:case lr.ERROR:"string"==typeof t?console.error(t,...r):console.error(i,t,...r);break;default:"string"==typeof t?console.log(t,...r):console.log(i,t,...r)}}}class ra{novaDataSourceConfig;replicaNovaDataSourceConfig;logger;useBeta;constructor(e,t,i,r=!1){this.novaDataSourceConfig=e,this.replicaNovaDataSourceConfig=i,this.logger=t??new ia,this.useBeta=r}}class aa{useBeta;dataSource;logger;constructor(e){this.useBeta=e.useBeta??!1,this.dataSource=e.dataSource,this.logger=e.logger??new ia}}const na=e=>{if(!e)return null;if(!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(e))return null;try{return Buffer.from(e.replace(/-/g,""),"hex")}catch(e){return null}},oa=e=>{if(!e)return null;const t=e.toString("hex"),i=/^(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})$/.exec(t);return i?`${i[1]}-${i[2]}-${i[3]}-${i[4]}-${i[5]}`:null};const sa=async(e,t,i)=>{const r=e.getRepository(et),a={deviceId:i,boundaryId:t.boundaryId,userId:na(t.userId),inDate:t.eventType===P.Enter?t.sendTime:null,inLat:t.eventType===P.Enter?t.lat:null,inLon:t.eventType===P.Enter?t.lon:null,inAddress:t.eventType===P.Enter?t.address:null,outDate:t.eventType===P.Exit?t.sendTime:null,outLat:t.eventType===P.Exit?t.lat:null,outLon:t.eventType===P.Exit?t.lon:null,outAddress:t.eventType===P.Exit?t.address:null},n=await r.insert(a);return n?.raw.affectedRows>0},la=(e,t)=>{const i=e.getTime(),r=t.getTime();return Math.abs(r-i)/1e3},da=async(e,t,i)=>{if(!(t?.imei&&t?.boundaryId&&t?.userId&&t?.sendTime&&t?.lat&&t?.lon&&t?.address&&t?.eventType))return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - missing required parameters"),!1;const r=na(t.userId);return r?e.safeQuery((async e=>{const a=e.getRepository(ue),n=await a.findOne({where:{imei:t.imei}});if(!n)return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - device not found"),!1;const o=e.getRepository(et);if(!await o.findOne({where:{deviceId:n.id,boundaryId:t.boundaryId,userId:r}}))return await sa(e,t,n.id);const s=await(async(e,t,i)=>{let r=null;const a=e.getRepository(et).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:na(t.userId)});return r=t.eventType===P.Enter?(await a.andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","DESC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await a.andWhere("boundaryEvent.outDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","DESC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,n.id),l=await(async(e,t,i)=>{let r=null;const a=e.getRepository(et).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:na(t.userId)});return r=t.eventType===P.Enter?(await a.andWhere("boundaryEvent.inDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","ASC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await a.andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","ASC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,n.id);i.trace({previousEventDate:s,nextEventDate:l},"BoundariesRepository::processBoundaryEvent - previousEventDate, nextEventDate");const d=await(async(e,t,i,r,a)=>{let n=null;const o=e.getRepository(et).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:na(t.userId)});return t.eventType===P.Enter?(o.andWhere("boundaryEvent.inDate IS NULL").andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}),a&&o.andWhere("boundaryEvent.outDate <= :nextEventDate",{nextEventDate:a}),o.orderBy("boundaryEvent.outDate","ASC")):(o.andWhere("boundaryEvent.outDate IS NULL").andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}),r&&o.andWhere("boundaryEvent.inDate >= :previousEventDate",{previousEventDate:r}),r||a?o.orderBy("boundaryEvent.inDate","ASC"):o.orderBy("boundaryEvent.inDate","DESC")),n=await o.limit(1).getOne(),n})(e,t,n.id,s,l);if(i.trace({existingOrphanEventId:d?.id},"BoundariesRepository::processBoundaryEvent - existingOrphanEventId"),null!=d){return(await o.update({id:d.id},{inDate:t.eventType===P.Enter?t.sendTime:void 0,inLat:t.eventType===P.Enter?t.lat:void 0,inLon:t.eventType===P.Enter?t.lon:void 0,inAddress:t.eventType===P.Enter?t.address:void 0,outDate:t.eventType===P.Exit?t.sendTime:void 0,outLat:t.eventType===P.Exit?t.lat:void 0,outLon:t.eventType===P.Exit?t.lon:void 0,outAddress:t.eventType===P.Exit?t.address:void 0,modifiedAt:new Date,inOutDuration:t.eventType===P.Enter?la(t.sendTime,d.outDate):la(d.inDate,t.sendTime)})).affected>0}return await sa(e,t,n.id)}),"BoundariesRepository::processBoundaryEvent"):(i.warn({params:t},"BoundariesRepository::processBoundaryEvent - userId should be a valid uuid"),!1)};const ua=async(e,t,i,r,a,n)=>{const o=r?[{id:null,clientAlertConfigurationId:t,userId:null,roleId:null,isEnabled:r.isEnabled??!0,appNotification:r.appNotification??!1,emailNotification:r.emailNotification??!1,pushNotification:r.pushNotification??!1,smsNotification:r.smsNotification??!1}]:[],s=n?.map((e=>({id:null,clientAlertConfigurationId:t,userId:null,roleId:e.roleId,isEnabled:e.isEnabled,appNotification:e.appNotification??!1,emailNotification:e.emailNotification??!1,pushNotification:e.pushNotification??!1,smsNotification:e.smsNotification??!1,includeAllUsers:!1})))??[];o.push(...s);const l=a?.map((e=>({id:null,clientAlertConfigurationId:t,userId:na(e.userId),roleId:null,isEnabled:e.isEnabled,appNotification:e.appNotification??!1,emailNotification:e.emailNotification??!1,pushNotification:e.pushNotification??!1,smsNotification:e.smsNotification??!1,includeAllUsers:!1})))??[];o.push(...l),await pa(e,t,i,o);const d=e.getRepository(ve);if(await d.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!o.length)return!0;const u=[];for(let e=0;e<o.length;e+=50)u.push(o.slice(e,e+50));for(const e of u){const t=await d.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},ca=async(e,t,i,r)=>{const a=e.getRepository(fe);if(await a.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!r?.length)return!0;const n=new Date,o=r?.map((e=>({clientAlertConfigurationId:t,clientId:i,isEnabled:e.isEnabled,isUserProfile:!1,notificationType:"email"===e.type?1:2,recipient:e.recipient,createdAt:n}))),s=[];for(let e=0;e<o.length;e+=50)s.push(o.slice(e,e+50));for(const e of s){const t=await a.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},pa=async(e,t,i,r)=>{const a=await(async(e,t,i)=>{const r=t.find((e=>null==e.userId&&null==e.roleId)),a=e.getRepository(we);if(r)return(await a.createQueryBuilder("user").where("clientId = :clientId",{clientId:i}).getMany()).map((e=>oa(e.id)));const n=new Set;t.filter((e=>null!=e.userId)).forEach((e=>{n.add(oa(e.userId))}));const o=t.filter((e=>null!=e.roleId)).map((e=>e.roleId));o.length>0&&(await a.createQueryBuilder("user").innerJoin(De,"userSecurityRole","userSecurityRole.userId = user.id").where("user.clientId = :clientId",{clientId:i}).andWhere("userSecurityRole.securityRoleId IN (:...roleIds)",{roleIds:o}).getMany()).forEach((e=>n.add(oa(e.id))));return Array.from(n)})(e,r,i),n=e.getRepository(Ce).createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t});a.length&&n.andWhere("userId NOT IN (:...userIds)",{userIds:a.map((e=>na(e)))}),await n.execute()};const ma=(e,t)=>{const i=t.split(".");let r=e;for(const e of i){if(null==r[e])return null;r=r[e]}return r},ga=(e,t)=>!e||!t||t.some((t=>null==ma(e,t))),ya=(e,t)=>!e?.length||!t||e.some((e=>ga(e,t))),va=(e,t)=>!e||!t||t.every((t=>null==ma(e,t)));const ha=async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.alpha2Code)return i.warn({params:t},"CountriesRepository::getCountry - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ge).createQueryBuilder("country");i&&r.setQueryRunner(i),t.filters.id&&(r=r.andWhere("country.id = :id",{id:t.filters.id})),t.filters.alpha2Code&&(r=r.andWhere("country.alpha2Code = :alpha2Code",{alpha2Code:t.filters.alpha2Code}));return await r.getOne()}),"CountriesRepository::getCountry",r)};const fa="minute",Ia=/[+-]\d\d(?::?\d\d)?/g,Ca=/([+-]|\d\d)/g;r.extend(((e,t,i)=>{const r=t.prototype;i.utc=function(e){return new t({date:e,utc:!0,args:arguments})},r.utc=function(e){const t=i(this.toDate(),{locale:this.$L,utc:!0});return e?t.add(this.utcOffset(),fa):t},r.local=function(){return i(this.toDate(),{locale:this.$L,utc:!1})};const a=r.parse;r.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),a.call(this,e)};const n=r.init;r.init=function(){if(this.$u){const{$d:e}=this;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else n.call(this)};const o=r.utcOffset;r.utcOffset=function(e,t){const{u:i}=this.$utils();if(i(e))return this.$u?0:i(this.$offset)?o.call(this):this.$offset;if("string"==typeof e&&(e=function(e=""){const t=e.match(Ia);if(!t)return null;const[i,r,a]=`${t[0]}`.match(Ca)||["-",0,0],n=60*+r+ +a;return 0===n?0:"+"===i?n:-n}(e),null===e))return this;const r=Math.abs(e)<=16?60*e:e;let a=this;if(t)return a.$offset=r,a.$u=0===e,a;if(0!==e){const e=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();a=this.local().add(r+e,fa),a.$offset=r,a.$x.$localOffset=e}else a=this.utc();return a};const s=r.format;r.format=function(e){const t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return s.call(this,t)},r.valueOf=function(){const e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},r.isUTC=function(){return!!this.$u},r.toISOString=function(){return this.toDate().toISOString()},r.toString=function(){return this.toDate().toUTCString()};const l=r.toDate;r.toDate=function(e){return"s"===e&&this.$offset?i(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};const d=r.diff;r.diff=function(e,t,r){if(e&&this.$u===e.$u)return d.call(this,e,t,r);const a=this.local(),n=i(e).local();return d.call(a,n,t,r)}}));const ba=r,Sa=()=>ba.utc().toDate(),Ra=async(e,t,i)=>t?.deviceTypeId&&t?.deviceIdentifier?e.safeQuery2((async e=>{const i=e.getRepository(de),r=await i.createQueryBuilder().where("id = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).getOne();return r?`${r.identifierType}#${t.deviceIdentifier}`:null}),"DevicesRepository::generateDeviceIdentifierKey"):(i.warn({params:t},"DevicesRepository::generateDeviceIdentifierKey missing required parameters"),null);const Da=(new Date).getTime()-new Date(2019,0,1).getTime(),wa=36e5,Aa=[8,9,13,20,31,32],Ta=(e,t)=>{let i=0;return i=e>t?0:0===e?1:e/t,i},Na=(e,t)=>{const{speed:i,deviceTypeId:r}=e,a=Number(i)<2;if((e=>!!(e?.clientDeviceSetting?.fixedStatus||e.clientDeviceSetting?.movingPingFrequency&&e.clientDeviceSetting?.movingPingFrequency>0))(t)){const{fixedStatus:e,movingPingFrequency:i,stoppedPingFrequency:r}=t.clientDeviceSetting;return e?"ON"===e?Da:0:a?1e3*i*1.2:1e3*r*2}switch(r){case 8:case 9:return 864e5;default:return a?108e5:3e5}},Ba=(e,t)=>{const i=[];if(!e||!t)return i;const{deviceTypeId:r}=t,a={...e,deviceTypeId:r};{const e=((e,t)=>{const i={name:"cellularNetwork"};try{const r=Na(e,t),a=(new Date).getTime(),n=a-r,o=new Date(e.created).getTime();i.ok=o>=n,i.msg=`${e.deviceTypeId}`;const s=Math.abs(a-o);i.confidence=Ta(s,r)}catch(e){i.msg=JSON.stringify(e)}return i})(a,t);i.push(e);const r=((e,t,i)=>{const r={name:"gpsNetwork"};try{if(i){let i=new Date(0);if(e.gpsUTCTime){const t=Number(e.gpsUTCTime.substring(0,4)),r=Number(e.gpsUTCTime.substring(4,6))-1,a=Number(e.gpsUTCTime.substring(6,8)),n=Number(e.gpsUTCTime.substring(8,10)),o=Number(e.gpsUTCTime.substring(10,12)),s=Number(e.gpsUTCTime.substring(12));i=new Date(t,r,a,n,o,s)}const a=new Date(e.sendTime),n=Na(e,t),o=i.getTime(),s=a.getTime(),l=Math.abs(s-o);r.ok=l<n,r.confidence=Ta(l,n)}else r.ok=!1,r.confidence=1}catch(e){r.msg=JSON.stringify(e)}return r})(a,t,!!e.ok);i.push(r);const{batteryPercentage:n}=a;if(void 0!==n){const e=(e=>{const t={name:"batteryCharge"};try{const i=Number(e.batteryPercentage);t.ok=1==!!i,t.confidence=i}catch(e){t.msg=JSON.stringify(e)}return t})(a);i.push(e)}}return i},Ua=e=>{const{logger:t,deviceStatus:i,withConnectionStatusInfo:r,withOnlineStatus:a}=e;try{if(i?.device?.deviceType?.readOnly)return;r&&(i.data.connectionStatus=Ba(i.data,i.device)),a&&(i.data.isOnline=(e=>{let t=126e5;Aa.some((t=>t==e.deviceTypeId))&&(t=9e7),e?.restFrequency&&1e3*e?.restFrequency>t&&(t=1e3*e.restFrequency+wa);const i=new Date(e.sendTime);return`${(new Date).getTime()-i.getTime()<t}`})(i.data))}catch(e){t.error(e,"Error while extending device status properties")}};const Ea=["deviceTypeId","featureKey"],Pa=["deviceTypeId","featureKey"];const Ma=async(e,t,i)=>0===t?.length||ya(t,Yi)?(i.warn({paramsArray:t},"EntityTagsRepository::bulkCreateEntityTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(Ut),r=t.map((e=>({...e,userId:e.userId?na(e.userId):null,createdAt:Sa()})));return await i.save(r)??[]}),"EntityTagsRepository::bulkCreateEntityTag error"),Oa=async(e,t,i)=>ga(t,tr)||va(t,ir)?(i.warn({params:t},"EntityTagsRepository::bulkDeleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{let i=e.getRepository(Ut).createQueryBuilder().where("clientId = :clientId",{clientId:t.clientId}).andWhere("entityType = :entityType",{entityType:t.entityType});t.tagIds?.length&&(i=i.andWhere("tagId IN (:...tagIds)",{tagIds:t.tagIds})),t.entityIds?.length&&(i=i.andWhere("entityId IN (:...entityIds)",{entityIds:t.entityIds}));return(await i.delete().execute()).affected>0}),"EntityTagsRepository::bulkDeleteEntityTag");const xa=["key","name"];const ka=async(e,t,i)=>{if((e=>!(e?.filters?.firmwareId||e?.filters?.taskId||e?.filters?.statuses?.length||e?.filters?.imeis?.length))(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareUpgradeTasks incorrect params"),null;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Ot).createQueryBuilder("firmwareUpgradeTask");i&&r.setQueryRunner(i),r=await(async(e,t)=>(e?.filters?.imeis?.length&&(t=t.andWhere("firmwareUpgradeTask.imei IN (:...imeis)",{imeis:e.filters.imeis})),t))(t,r),r=((e,t)=>(e?.filters?.statuses&&(t=t.andWhere("firmwareUpgradeTask.status IN (:...statuses)",{statuses:e.filters.statuses})),t))(t,r),r=((e,t)=>(e?.filters?.firmwareId&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId = :deviceTypeFirmwareId",{deviceTypeFirmwareId:e.filters.firmwareId})),e?.filters?.firmwareIds?.length&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId IN (:...deviceTypeFirmwareIds)",{deviceTypeFirmwareIds:e.filters.firmwareIds})),t))(t,r),r=((e,t)=>(e?.filters?.taskId&&(t=t.andWhere("firmwareUpgradeTask.id = :id",{id:na(e.filters.taskId)})),t))(t,r),r=((e,t)=>(e?.projectionOptions?.withDeviceFirmware&&(t=t.leftJoinAndSelect("firmwareUpgradeTask.deviceTypeFirmware","deviceTypeFirmware")),t))(t,r),r=((e,t)=>(e?.projectionOptions?.withDevice&&(t=t.leftJoinAndMapOne("firmwareUpgradeTask.device",ue,"device","firmwareUpgradeTask.imei = device.imei"),e?.projectionOptions?.deviceWithDeviceType&&(t=t.leftJoinAndMapOne("device.deviceType",de,"deviceType","device.deviceTypeId = deviceType.id"))),t))(t,r),r=((e,t)=>(e?.filters?.startDate&&e?.filters?.endDate&&e?.filters?.endDate>e?.filters?.startDate&&(t=t.andWhere("firmwareUpgradeTask.modifiedAt between :modifiedFrom and :modifiedTo",{modifiedFrom:e.filters.startDate,modifiedTo:e.filters.endDate})),t))(t,r),r=((e,t)=>(!0!==e?.filters?.postUpgradeCompleted&&!1!==e?.filters?.postUpgradeCompleted||(t=t.andWhere("firmwareUpgradeTask.postUpgradeCompleted = :postUpgradeCompleted",{postUpgradeCompleted:e.filters.postUpgradeCompleted})),t))(t,r),r=r.orderBy("firmwareUpgradeTask.modifiedAt","DESC"),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100);return await r.getMany()}),"FirmwaresRepository::getFirmwareUpgradeTasks",r)},La=async(e,t,i)=>{if((e=>!(e?.filters?.firmwareId||e?.filters?.taskId||e?.filters?.statuses?.length||e?.filters?.imeis?.length))(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareUpgradeTasksCount incorrect params"),0;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Ot).createQueryBuilder("firmwareUpgradeTask");i&&r.setQueryRunner(i),r=await(async(e,t)=>(e?.filters?.imeis?.length&&(t=t.andWhere("firmwareUpgradeTask.imei IN (:...imeis)",{imeis:e.filters.imeis})),t))(t,r),r=((e,t)=>(e?.filters?.statuses&&(t=t.andWhere("firmwareUpgradeTask.status IN (:...statuses)",{statuses:e.filters.statuses})),t))(t,r),r=((e,t)=>(e?.filters?.firmwareId&&(t=t.andWhere("firmwareUpgradeTask.deviceTypeFirmwareId = :deviceTypeFirmwareId",{deviceTypeFirmwareId:e.filters.firmwareId})),t))(t,r),r=((e,t)=>(e?.filters?.taskId&&(t=t.andWhere("firmwareUpgradeTask.id = :id",{id:na(e.filters.taskId)})),t))(t,r);return await r.getCount()}),"FirmwaresRepository::getFirmwareUpgradeTasksCount",r)};const Fa=async(e,t,i)=>{if(!t?.id||!t?.imei)return!1;const r=e.getRepository(Wt);try{const{id:e,deleted:i,...a}=t,n=r.createQueryBuilder();if((await n.insert().into(Wt).values({...a,positionId:e}).orIgnore().execute()).raw.affectedRows>0)return!0;return(await n.update(Wt).set({...a,positionId:e}).where("imei = :imei",{imei:t.imei}).andWhere("positionId < :positionId",{positionId:t.id}).execute()).affected>0}catch(e){return i.warn(e,"PositionsRepository::upsertLatestPosition error"),!1}},Qa=e=>({imei:e.imei,createdAt:e.createdAt,actualDate:e.actualDate,sendTime:e.sendTime,messageId:oa(e.messageId),lat:e.lat,lon:e.lon,azimuth:e.azimuth??0,address:e.address,speed:e.speed,odometer:e.odometer,batteryPercentage:e.batteryPercentage,externalPowerVoltage:e.externalPowerVoltage,externalBatteryPercentage:e.externalBatteryPercentage,totalCount:e.totalCount});const qa=["name","description","type","startDate","status"],Wa=["filters.id"],_a=["values.name","values.description","values.type","values.discount","values.discountBillingCycles","values.freeServiceMonths","values.startDate","values.endDate","values.status","values.bannerText","values.trackerText"],ja=["filters.id","filters.marketplaceId","filters.asin","filters.imei","filters.deviceTypeId","filters.status"],za=["marketplaceId","promotionId"],Va=["deviceTypeId","promotionId"],Ga=["promotionId","marketplaceId"],Ja=["promotionId","deviceTypeId"],Ha=["filters.promotionId","filters.deviceTypeId"],Ka=["filters.promotionId","filters.marketplaceId"],$a=["imei","promotionId","promotionType","appliedAt"],Xa=(e,t)=>{const i=e,r=e,a=i.type??r.values.type;if(a===M.Discount){return(i.discount??r.values.discount)<=0}if(a===M.FreeService){return(i.freeServiceMonths??r.values.freeServiceMonths)<=0}return t.warn({params:e},"PromotionRepository::invalidPromotion incorrect promotion type"),!1};const Ya=(e,t,i)=>{const r=[];let a=[];for(const n of e)a.push(i(n)),a.length===t&&(r.push(a),a=[]);return a.length>0&&r.push(a),r};const Za=async(e,t,i)=>{if(va(t,Pr))return i.warn({params:t},"UsersRepository::getUserById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,r)=>{let a=e.getRepository(we).createQueryBuilder("user");if(r&&(a=a.setQueryRunner(r)),t.filters.id){const e=na(t?.filters?.id);if(!e?.length)return i.warn({params:t},"UsersRepository::getUserById - user id should be a valid UUID"),null;a=a.where("user.id = :id",{id:e})}t.filters.numberId&&(a=a.andWhere("user.numberId = :numberId",{numberId:t.filters.numberId})),t.projectionOptions?.withSecurityRole&&(a=a.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole"));return await a.getOne()}),"UsersRepository::getUserById",r)},en=e=>{if(!e)return!1;for(const t in e)if(e.hasOwnProperty(t)){const i=e[t];if(null!=i){if("object"!=typeof i)return!0;if(en(i))return!0}}return!1};const tn=(e,t,i,r)=>{if(!e||!t)return e;for(const a of i){const i=t[a.filterName],n=a.targetFieldName;if(void 0!==i&&n&&a.comparisonOperator)if(null!==i)switch(a.comparisonOperator){case"RANGE":const t=i.minValue,o=i.maxValue;null!=t&&(e=e.andWhere(`${r}.${n} >= :${n}MinValue`,{[`${n}MinValue`]:t})),null!=o&&(e=e.andWhere(`${r}.${n} <= :${n}MaxValue`,{[`${n}MaxValue`]:o}));break;case"LIKE":e=e.andWhere(`LOWER(${r}.${n}) LIKE LOWER(:${n})`,{[n]:`%${i}%`});break;case"=":e=e.andWhere(`${r}.${n} = :${n}`,{[n]:i});break;case"IN":e=e.andWhere(`${r}.${n} IN (:...${n})`,{[n]:i});break;default:throw new Error(`Unknown comparison operator: ${a.comparisonOperator}`)}else e=e.andWhere(`${r}.${n} IS NULL`)}return e},rn=[{targetFieldName:"clientId",filterName:"clientId",comparisonOperator:"="},{targetFieldName:"repeats",filterName:"repeats",comparisonOperator:"="},{targetFieldName:"createdBy",filterName:"createdBy",comparisonOperator:"="},{targetFieldName:"modifiedBy",filterName:"modifiedBy",comparisonOperator:"="},{targetFieldName:"deletedBy",filterName:"deletedBy",comparisonOperator:"="},{targetFieldName:"status",filterName:"statusList",comparisonOperator:"IN"},{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"},{targetFieldName:"notes",filterName:"notes",comparisonOperator:"LIKE"},{targetFieldName:"dueDate",filterName:"dueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueOdometer",filterName:"dueOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueActiveHours",filterName:"dueActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalDays",filterName:"intervalDaysFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartDate",filterName:"intervalStartDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalOdometer",filterName:"intervalOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartingOdometer",filterName:"intervalStartingOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalActiveHours",filterName:"intervalActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"intervalStartingActiveHours",filterName:"intervalStartingActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"createdAt",filterName:"createdAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"modifiedAt",filterName:"modifiedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedAt",filterName:"deletedAtFilter",comparisonOperator:"RANGE"}],an=[{targetFieldName:"id",filterName:"taskId",comparisonOperator:"="},{targetFieldName:"taskScheduleId",filterName:"taskScheduleId",comparisonOperator:"="},{targetFieldName:"imei",filterName:"imeiList",comparisonOperator:"IN"},{targetFieldName:"clientId",filterName:"clientId",comparisonOperator:"="},{targetFieldName:"dueDate",filterName:"dueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueOdometer",filterName:"dueOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"dueActiveHours",filterName:"dueActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"startDate",filterName:"startDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"startingOdometer",filterName:"startingOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"startingActiveHours",filterName:"startingActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"status",filterName:"statusList",comparisonOperator:"IN"},{targetFieldName:"createdAt",filterName:"createdAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"pastDueAt",filterName:"pastDueAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"completedAt",filterName:"completedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"completionNotes",filterName:"completionNotes",comparisonOperator:"LIKE"},{targetFieldName:"completionOdometer",filterName:"completionOdometerFilter",comparisonOperator:"RANGE"},{targetFieldName:"completionActiveHours",filterName:"completionActiveHoursFilter",comparisonOperator:"RANGE"},{targetFieldName:"completedBy",filterName:"completedBy",comparisonOperator:"LIKE"},{targetFieldName:"modifiedAt",filterName:"modifiedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"modifiedBy",filterName:"modifiedBy",comparisonOperator:"LIKE"},{targetFieldName:"queuedAt",filterName:"queuedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"predictedDueDate",filterName:"predictedDueDateFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedAt",filterName:"deletedAtFilter",comparisonOperator:"RANGE"},{targetFieldName:"deletedBy",filterName:"deletedBy",comparisonOperator:"LIKE"}],nn=[{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"}],on=async(e,t,i)=>{if(!en(t?.filters))return i.warn({params:t},"TasksRepository::getTaskSchedules missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(wt).createQueryBuilder("taskSchedule");i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(At,"dt","taskSchedule.id = dt.taskScheduleId").andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=tn(r,t.filters,rn,"taskSchedule"),t.filters.authorizedImeis?.length&&(r=r.andWhere("\n NOT EXISTS (\n SELECT 1\n FROM deviceTask dt1\n WHERE dt1.taskScheduleId = taskSchedule.id\n AND dt1.imei NOT IN (:authorizedDevices)\n )\n ",{authorizedDevices:t.filters.authorizedImeis})),t.filters.imeiList?.length&&(r=r.groupBy("taskSchedule.id"));const a=t.sortOptions?.sortField??"id",n=t.sortOptions?.sortOrder??"DESC";r=r.orderBy(`taskSchedule.${a}`,n);const o=await r.limit(t?.pagingOptions?.pageSize??100).offset((t?.pagingOptions?.pageSize??100)*(t?.pagingOptions?.pageIndex??0)).getMany();if(t.projectionOptions?.numberOfDevicesToGet>0&&o?.length>0){const i=await(async(e,t,i)=>{if(!e.length)return[];const r=e.map((e=>({id:e,deviceTasks:[],deviceCount:0}))),a=i.getRepository(At),n=a.createQueryBuilder("deviceTask").where("deviceTask.taskScheduleId IN (:...taskSchedulesIds)",{taskSchedulesIds:e}).andWhere(`(deviceTask.taskScheduleId, deviceTask.imei) in (\n select taskScheduleId, imei from \n (\n select dt.*, ROW_NUMBER() over (partition by dt.taskScheduleId order by dt.taskScheduleId) as row_rank\n from deviceTask dt \n ) sub\n where sub.row_rank <= ${t}\n )`),o=await n.getMany(),s=a.createQueryBuilder("deviceTask"),l=await s.select("deviceTask.taskScheduleId as taskScheduleId").addSelect("COUNT(deviceTask.taskScheduleId)","deviceCount").where("deviceTask.taskScheduleId IN (:...taskSchedulesIds)",{taskSchedulesIds:e}).groupBy("deviceTask.taskScheduleId").getRawMany();for(const e of r)e.deviceTasks=o.filter((t=>t.taskScheduleId===e.id)),e.deviceCount=l.find((t=>t.taskScheduleId===e.id))?.deviceCount??0;return r})(o.map((e=>e.id)),t.projectionOptions.numberOfDevicesToGet,e);for(const e of o){const t=i.filter((t=>t.id===e.id));e.deviceTasks=t.length?t[0].deviceTasks:[],e.totalDevicesCount=t.length?t[0].deviceCount:0}}return o}),"TasksRepository::getTaskSchedules",r)};const sn=(e,t,i,r,a)=>{if(null!=t[a]){const n={};n[a]=t[a],e.andWhere(`${i} ${r} :${a}`,n)}};const ln=async(e,t,i)=>{const r=e.getRepository(De).createQueryBuilder("userSecurityRole");i&&r.setQueryRunner(i);return await r.innerJoin(we,"user","user.id = userSecurityRole.userId and user.clientId = userSecurityRole.clientId").where("userId = :userId",{userId:t}).getMany()},dn=async(e,t,i,r)=>{const a=e.getRepository(Ce).createQueryBuilder();r&&a.setQueryRunner(r);return await a.where("userId = :userId and clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{userId:t,clientAlertConfigurationIds:i.map((e=>e.id))}).getMany()},un=async(e,t,i,r)=>{let a=e.getRepository(he).createQueryBuilder("clientAlertConfiguration").distinct(!0);r&&a.setQueryRunner(r),a=a.innerJoin(we,"user","user.clientId = clientAlertConfiguration.clientId and user.id = :userId",{userId:t}).leftJoin(ve,"clientAlertRecipient","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertRecipient.userId IS NULL AND clientAlertRecipient.roleId IS NULL").orWhere("clientAlertRecipient.userId IS NOT NULL and clientAlertRecipient.userId = :userId",{userId:t}),i.length>0&&a.orWhere("clientAlertRecipient.roleId IS NOT NULL and clientAlertRecipient.roleId IN (:...roleIds)",{roleIds:i.map((e=>e.securityRoleId))});return await a.getMany()},cn=async(e,t,i)=>{if(!t.length)return[];const r=e.getRepository(ve).createQueryBuilder();i&&r.setQueryRunner(i);return await r.where("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t}).getMany()};const pn=async(e,t,i)=>{if(!t?.filters?.clientId||!t?.filters?.status&&!t?.filters?.roleId)return i.warn({params:t},"UsersRepository::getUsersWithRoles - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(we).createQueryBuilder("user").innerJoin(De,"userSecurityRole","userSecurityRole.userId = user.id").innerJoin(Se,"securityRole","securityRole.id = userSecurityRole.securityRoleId").where("user.clientId = :clientId",{clientId:t.filters.clientId});i&&(r=r.setQueryRunner(i)),t.filters.roleId&&(r=r.andWhere("securityRole.id = :roleId",{roleId:t.filters.roleId})),t.filters.status&&(r=r.andWhere("user.status = :status",{status:t.filters.status})),r=r.addSelect("securityRole.name","role").addSelect("securityRole.id","roleId");return(await r.getRawMany()).map((e=>((e,t="")=>{if(!e)return null;const i={};return Object.keys(e).forEach((r=>{const a=new RegExp(`^${t}`),n=r.replace(a,"");i[n]=e[r]})),i})(e,"user_")))}),"UsersRepository::getUsersWithRoles",r)},mn=async(e,t,i)=>{let r=await ha(t,{filters:{alpha2Code:e}},i);return r||(r=await ha(t,{filters:{alpha2Code:"US"}},i)),r?.id};var gn=Object.freeze({__proto__:null,AcumaticaRepository:class extends ra{async getAcumaticaImeiIccidData(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaImeiIccidData started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imei&&!t?.filters?.imeiList?.length&&null==t.filters.excludeNullAsin&&null==t.filters.excludeNullCountyCode&&!t.filters.excludeCountries?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaImeiIccidData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData");return i&&r.setQueryRunner(i),t.filters.imeiList?.length?r.where("acumaticaImeiIccidData.imei IN (:...imeiList)",{imeiList:t.filters.imeiList}):t.filters.imei&&r.where("acumaticaImeiIccidData.imei = :imei",{imei:t.filters.imei}),t.filters.excludeNullAsin&&r.andWhere("acumaticaImeiIccidData.asin IS NOT NULL"),t.filters.excludeNullCountyCode&&r.andWhere("acumaticaImeiIccidData.countryCode IS NOT NULL"),t.filters.excludeCountries?.length&&r.andWhere("acumaticaImeiIccidData.countryCode NOT IN (:...excludeCountries)",{excludeCountries:t.filters.excludeCountries}),t.sortOptions?.sortField&&r.orderBy(`acumaticaImeiIccidData.${t.sortOptions.sortField}`,"ASC"===t.sortOptions.sortOrder?"ASC":"DESC"),await r.getMany()}),"AcumaticaRepository::getAcumaticaImeiIccidData",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaImeiIccidData result"),i}async getAcumaticaShipmentAmazon(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaShipmentAmazon started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.shipmentIds?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaShipmentAmazon - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(u).createQueryBuilder().where("LOWER(shipmentId) IN (:...shipmentIds)",{shipmentIds:t.filters.shipmentIds.map((e=>e.toLowerCase()))});return i&&r.setQueryRunner(i),await r.getMany()}),"AcumaticaRepository::getAcumaticaShipmentAmazon",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaShipmentAmazon result"),i}async getLastAcumaticaShipmentDetails(e){this.logger.trace(e,"AcumaticaRepository::getLastAcumaticaShipmentDetails started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"AcumaticaRepository::getLastAcumaticaShipmentDetails - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData").innerJoin(ue,"device","device.imei = acumaticaImeiIccidData.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId}).orderBy("acumaticaImeiIccidData.shipDate","DESC").limit(1);i&&r.setQueryRunner(i);const a=await r.getOne();return a?{imei:a.imei,iccid:a.iccid,shipmentDate:new Date(a.shipDate),orderType:"AZ",reviewUrl:null,productUrl:null}:null}),"AcumaticaRepository::getLastAcumaticaShipmentDetails",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getLastAcumaticaShipmentDetails result"),i}async getAcumaticaShipmentDetails(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaShipmentDetails started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imeiList?.length)return i.warn({params:t},"AcumaticaRepository::getAcumaticaShipmentDetails - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(l),a=r.createQueryBuilder("acumaticaOrderShipmentDetails").where("acumaticaOrderShipmentDetails.imei IN (:imeiList)",{imeiList:t.filters.imeiList}).select(["acumaticaOrderShipmentDetails.imei as imei","acumaticaOrderShipmentDetails.iccid as iccid","acumaticaOrderShipmentDetails.orderType as orderType","acumaticaOrderShipmentDetails.shipmentDate as shipmentDate","NULL as reviewUrl","NULL as productUrl"]).getQueryAndParameters(),n=e.getRepository(s).createQueryBuilder("acumaticaImeiIccidData").leftJoin(o,"acumaticaAmazonProduct","acumaticaAmazonProduct.asin = acumaticaImeiIccidData.asin").where("acumaticaImeiIccidData.imei IN (:imeiList)",{imeiList:t.filters.imeiList}).select(["acumaticaImeiIccidData.imei as imei","acumaticaImeiIccidData.iccid as iccid","'AZ' as orderType","acumaticaImeiIccidData.shipDate as shipmentDate","acumaticaAmazonProduct.reviewUrl as reviewUrl","acumaticaAmazonProduct.productUrl as productUrl"]).getQueryAndParameters(),d=[...a[1],...n[1]],u=`(${a[0]}) UNION (${n[0]})`;return(i?await i.query(u,d):await r.query(u,d)).map((e=>({imei:e.imei,iccid:e.iccid,shipmentDate:e.shipmentDate instanceof Date?e.shipmentDate:new Date(e.shipmentDate),orderType:e.orderType,reviewUrl:e.reviewUrl,productUrl:e.productUrl})))}),"AcumaticaRepository::getAcumaticaShipmentDetails",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getAcumaticaShipmentDetails result"),i}async getOrderShipmentInternational(e){this.logger.trace(e,"AcumaticaRepository::getOrderShipmentInternational started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.imei)return i.warn({params:t},"AcumaticaRepository::getOrderShipmentInternational - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Kt).createQueryBuilder("orderShipmentInternational").where("LOWER(orderShipmentInternational.imei) = LOWER(:imei)",{imei:t.filters.imei});return i&&r.setQueryRunner(i),await r.getMany()}),"AcumaticaRepository::getOrderShipmentInternational",r)})(t,e,this.logger);return this.logger.trace(i,"AcumaticaRepository::getOrderShipmentInternational result"),i}},AempTokenRepository:class extends ra{async getAempTokens(e){this.logger.trace(e,"AempTokenRepository::getAempTokens started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.token)return i.warn({params:t},"AempTokenRepository::getAempTokens - missing required parameters"),[];const r=na(t?.filters?.token);if(t?.filters?.token&&!r?.length)return i.warn({params:t},"AempTokenRepository::getClientIdForToken - token should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(c).createQueryBuilder("AempToken");return i&&(a=a.setQueryRunner(i)),t?.filters?.clientId&&(a=a.andWhere("AempToken.clientId = :clientId",{clientId:t?.filters?.clientId})),t?.filters?.token&&(a=a.andWhere("AempToken.token = :token",{token:r})),await a.getMany()}),"AempTokenRepository::getAempTokens",a)})(t,e,this.logger);return this.logger.trace(i,"AempTokenRepository::getAempTokens result"),i}async createAempToken(e){this.logger.trace(e,"AempTokenRepository::createAempToken started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.clientId||!t?.token)return i.warn({params:t},"AempTokenRepository::createAempToken - missing required parameters"),null;const r=na(t?.token);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(c),a=new Date,n={id:t?.id,clientId:t?.clientId,token:r,createdAt:a,updatedAt:a,expiresAt:t?.expiresAt};return await i.save(n)}),"AempTokenRepository::createAempToken"):(i.warn({params:t},"AempTokenRepository::createAempToken - token should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"AempTokenRepository::createAempToken result"),i}async deleteAempTokens(e){this.logger.trace(e,"AempTokenRepository::deleteAempTokens started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.clientId&&!t?.filters?.token)return i.warn({params:t},"AempTokenRepository::deleteAempTokens - missing required parameters"),null;const r=na(t?.filters?.token);return t?.filters?.token&&!r?.length?(i.warn({params:t},"AempTokenRepository::deleteAempTokens - token should be a valid UUID"),null):e.safeQuery((async e=>{let i=e.getRepository(c).createQueryBuilder().delete();return t.filters.id&&(i=i.andWhere("id = :id",{id:t.filters.id})),t.filters.clientId&&(i=i.andWhere("clientId = :clientId",{clientId:t.filters.clientId})),t.filters.token&&(i=i.andWhere("token = :token",{token:r})),(await i.execute()).affected>0}),"AempTokenRepository::deleteAempTokens")})(t,e,this.logger);return this.logger.trace({result:i},"AempTokenRepository::deleteAempTokens result"),i}},AlertRepository:class extends ra{async createAlert(e){this.logger.trace(e,"AlertRepository::createAlert started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.clientId&&0!==t.clientId&&t?.alertTypeId&&0!==t.alertTypeId&&t?.messageId&&t?.imei&&t?.sendTime))return null;try{await e.connect();const i=e.getRepository(g),r=new Date,a={id:t.id,alertTypeId:t.alertTypeId,value:t.value,userId:na(t.userId),messageId:na(t.messageId),imei:t.imei,sendTime:t.sendTime,lat:t.lat,lon:t.lon,address:t.address,clientId:t.clientId,isBuffer:t.isBuffer,isNotification:t.isNotification,gpsUtcTime:t.gpsUtcTime,relevantAddress:t.relevantAddress,gpsMessageId:na(t.gpsMessageId),cellTowerRelevantAddress:t.cellTowerRelevantAddress,createdAt:t.createdAt??r,userAlertConfigurationId:t.userAlertConfigurationId,clientAlertConfigurationId:t.clientAlertConfigurationId};return await i.save(a)}catch(e){throw i.error(e,"AlertRepository::createAlert error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::createAlert result"),i}async createAlerts(e){this.logger.trace(e,"AlertRepository::createAlerts started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const i=e.getRepository(g),r=[];return t.forEach((e=>{if(!(e?.clientId&&0!==e.clientId&&e?.alertTypeId&&0!==e.alertTypeId&&e?.messageId&&e?.imei&&e?.sendTime))return null;const t=new Date,i={id:e.id,alertTypeId:e.alertTypeId,value:e.value,userId:na(e.userId),messageId:na(e.messageId),imei:e.imei,sendTime:e.sendTime,lat:e.lat,lon:e.lon,address:e.address,clientId:e.clientId,isBuffer:e.isBuffer,isNotification:e.isNotification,gpsUtcTime:e.gpsUtcTime,relevantAddress:e.relevantAddress,gpsMessageId:na(e.gpsMessageId),cellTowerRelevantAddress:e.cellTowerRelevantAddress,createdAt:e.createdAt??t,userAlertConfigurationId:e.userAlertConfigurationId,clientAlertConfigurationId:e.clientAlertConfigurationId,deleted:!1};r.push(i)})),await i.save(r)}catch(e){throw i.error(e,"AlertRepository::createAlert error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::createAlerts result"),i}async getAlertsReportByUser(e){this.logger.trace(e,"AlertRepository::getAlertsReportByUserId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"AlertRepository::getAlertsReportByUser - missing required parameters"),[];const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"AlertRepository::getAlertsReportByUser - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository(g).createQueryBuilder("a").setQueryRunner(a).innerJoin("a.alertType","aty").where("a.userId = :userId",{userId:na(t.filters.userId)}).andWhere("a.deleted = 0");t.filters.isTestEnvironment?i.andWhere("( aty.stage = :stage_test or aty.stage = :stage )",{stage:"prod",stage_test:"test"}):i.andWhere("aty.stage = :stage",{stage:"prod"}),t.filters.imeis?.length&&i.andWhere("a.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.clientId&&i.andWhere("a.clientId = :clientId",{clientId:t.filters.clientId});let r=t.filters.alertTypeIds;if(!r?.length&&t.filters.alertTypeNames?.length){const i=e.getRepository(m),a=await i.createQueryBuilder("aty").where("LOWER(aty.name) IN (:...alertTypeNames)",{alertTypeNames:t.filters.alertTypeNames.map((e=>e.toLowerCase()))}).select("aty.id").getMany();a?.length&&(r=a.map((e=>e.id)))}r?.length&&i.andWhere("a.alertTypeId IN (:alertTypeIds)",{alertTypeIds:r}),t.filters.boundaryId&&i.andWhere("a.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.sendTimeFrom&&i.andWhere("a.sendTime >= :sendTimeFrom",{sendTimeFrom:t.filters.sendTimeFrom}),t.filters.sendTimeTo&&i.andWhere("a.sendTime <= :sendTimeTo",{sendTimeTo:t.filters.sendTimeTo}),t.filters.createdFrom&&i.andWhere("a.createdAt >= :createdFrom",{createdFrom:t.filters.createdFrom}),t.filters.createdTo&&i.andWhere("a.createdAt <= :createdTo",{createdTo:t.filters.createdTo});const n=i.clone().select("COUNT(a.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixAlertUserId_Imei_AlertTypeId_SendTime"),n.useIndex("ixAlertUserId_Imei_AlertTypeId_SendTime")):r?.length&&(i.useIndex("ixAlertUserId_AlertTypeId_SendTime"),n.useIndex("ixAlertUserId_AlertTypeId_SendTime")),i.innerJoin(`(${n.getQuery()})`,"sub"),t.sortOptions?.sortField&&i.orderBy(t.sortOptions.sortField,t.sortOptions.sortOrder),await i.select(["a.id as id","a.alertTypeId as alertTypeId","aty.name as alertTypeName","a.value as value","a.createdAt as createdAt","a.userId as userId","a.clientId as clientId","a.messageId as messageId","a.boundaryId as boundaryId","a.imei as imei","a.sendTime as sendTime","a.lat as lat","a.lon as lon","a.address as address","a.isBuffer as isBuffer","a.isNotification as isNotification","a.gpsMessageId as gpsMessageId","a.gpsUTCTime as gpsUTCTime","aty.stage as stage","sub.totalCount as totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()}catch(e){throw i.error(e,"AlertRepository::getAlertsReportByUserId error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"AlertRepository::getAlertsReportByUserId result"),i}async createUserAlertComplain(e){this.logger.trace(e,"AlertRepository::createUserAlertComplain started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>t?.clientId&&0!==t.clientId&&t?.alertTypeId&&0!==t.alertTypeId&&t?.userId&&t?.email&&t?.reason?e.safeQuery((async e=>{const i=e.getRepository(ye),r=new Date,a={alertTypeId:t.alertTypeId,userId:na(t.userId),clientId:t.clientId,createdAt:t.createdAt??r,email:t.email,reason:t.reason};return await i.save(a)}),"AlertRepository::createUserAlertComplain"):null)(t,e);return this.logger.trace(i,"AlertRepository::createUserAlertComplain result"),i}},AlertTypesRepository:class extends ra{async getAlertTypes(e){this.logger.trace(e,"AlertTypesRepository::getAlertTypes started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(m).createQueryBuilder("alertType");return i&&(r=r.setQueryRunner(i)),t?.filters?.includeBeta||(r=r.where("alertType.stage = 'prod'")),await r.getMany()}),"AlertTypesRepository::getAlertTypes",i)})(t,e);return this.logger.trace(i,"AlertTypesRepository::getAlertTypes result"),i}},AppFeaturesRepository:class extends ra{async createAppFeatureType(e){this.logger.trace("AppFeaturesRepository::createAppFeatureType started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.description&&t?.name?e.safeQuery((async e=>{const i=e.getRepository(y),r={...t,statusId:t.statusId??1};return await i.save(r)}),"AppFeaturesRepository::createAppFeatureType"):(i.warn({params:t},"AppFeaturesRepository::createAppFeatureType - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::createAppFeatureType result"),i}async createClientAppFeature(e){this.logger.trace("AppFeaturesRepository::createClientAppFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.appFeatureTypeId&&t.entityId?e.safeQuery((async e=>{const i=e.getRepository(it),r={...t,statusId:t.statusId??1};return await i.save(r)}),"AppFeaturesRepository::createClientAppFeature"):(i.warn({params:t},"AppFeaturesRepository::createClientAppFeature - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::createClientAppFeature result"),i}async getClientAppFeatures(e){this.logger.trace("AppFeaturesRepository::getClientAppFeatures started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.clientId||t?.filters?.appFeatureTypeId||t.filters?.entityId||t.filters?.statusId))return i.warn({params:t},"AppFeaturesRepository::getClientAppFeatures - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(it).createQueryBuilder("clientAppFeature");return i&&(r=r.setQueryRunner(i)),t.projectionOptions?.withAppFeatureType&&(r=r.leftJoinAndSelect("clientAppFeature.appFeatureType","appFeatureType")),t.filters.clientId&&(r=r.andWhere("clientAppFeature.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.appFeatureTypeId&&(r=r.andWhere("clientAppFeature.appFeatureTypeId = :appFeatureTypeId",{appFeatureTypeId:t.filters.appFeatureTypeId})),t.filters.entityId&&(r=r.andWhere("clientAppFeature.entityId = :entityId",{entityId:t.filters.entityId})),t.filters.statusId&&(r=r.andWhere("clientAppFeature.statusId = :statusId",{statusId:t.filters.statusId})),await r.getMany()}),"AppFeaturesRepository::getClientAppFeatures",r)})(t,e,this.logger);return this.logger.trace(i,"AppFeaturesRepository::getClientAppFeatures result"),i}},AssetCategoriesRepository:class extends ra{async getAssetCategories(e){this.logger.trace("AssetCategoriesRepository::getAssetCategories started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams({queryOptions:{forceUseReplica:t}});return e.safeQuery((async(e,t)=>{const i=e.getRepository(ie).createQueryBuilder("assetCategory");return t&&i.setQueryRunner(t),await i.getMany()}),"AssetcategoriesRepository::getAssetCategories",i)})(t,e);return this.logger.trace(i,"AssetCategoriesRepository::getAssetCategories result"),i}},BLEMeshConfigurationRepository:class extends ra{async getBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::getBLEMeshConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imeiMain&&!t?.filters?.btmacMain)return i.warn({params:t},"BLEMeshConfigurationRepository::getBLEMeshConfiguration missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Ye).createQueryBuilder("bleMeshConfiguration");return i&&r.setQueryRunner(i),t.filters.imeiMain&&(r=r.where("bleMeshConfiguration.imeiMain = :imeiMain",{imeiMain:t.filters.imeiMain})),t.filters.btmacMain&&(r=r.andWhere("bleMeshConfiguration.btmacMain = :btmacMain",{btmacMain:t.filters.btmacMain})),await r.getMany()}),"BLEMeshConfigurationRepository::getDevicePairings",r)})(t,e,this.logger);return this.logger.trace(i,"BLEMeshConfigurationRepository::getBLEMeshConfiguration result"),i}async createBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::createBLEMeshConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeiMain&&t?.btmacMain&&t?.bleMac?e.safeQuery((async e=>{const i=e.getRepository(Ye),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"BLEMeshConfigurationRepository::createBLEMeshConfigurationParams"):(i.warn({params:t},"BLEMeshConfigurationRepository::createBLEMeshConfigurationParams missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshConfigurationRepository::createBLEMeshConfiguration result"),i}async updateBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::updateBLEMeshConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.imeiMain||t?.values?.bleMac||t?.values?.btmacMain||t?.values?.connectionType)?e.safeQuery((async e=>{const i=e.getRepository(Ye),r=new Date,a=i.createQueryBuilder().update(Ye).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await a.execute()).affected>0}),"BLEMeshConfigurationRepository::updateBLEMeshConfiguration"):(i.warn({params:t},"BLEMeshConfigurationRepository::updateBLEMeshConfiguration missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshConfigurationRepository::updateBLEMeshConfiguration result"),i}async deleteBLEMeshConfiguration(e){this.logger.trace(e,"BLEMeshConfigurationRepository::deleteBLEMeshConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(Ye).createQueryBuilder().delete().where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"BLEMeshConfiguration::deleteBLEMeshConfiguration"):(i.warn({params:t},"BLEMeshConfiguration::deleteBLEMeshConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshConfigurationRepository::deleteBLEMeshConfiguration result"),i}},BLEMeshRepository:class extends ra{async createBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::createBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.name&&t?.lat&&t?.lon&&t.clientId&&t.address?e.safeQuery((async e=>{const i=e.getRepository(Oe),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"BLEMeshRepository::createBLEMesh"):(i.warn({params:t},"BLEMeshRepository::createBLEMesh missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::createBLEMesh result"),i}async getBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId||t?.filters?.bleMeshIds?.length?e.safeQuery((async(e,i)=>{let r=e.getRepository(Oe).createQueryBuilder("bleMesh");i&&r.setQueryRunner(i),t.filters.clientId&&(r=r.andWhere("bleMesh.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.bleMeshIds?.length&&(r=r.andWhere("bleMesh.id IN (:...bleMeshIds)",{bleMeshIds:t.filters.bleMeshIds})),t?.projectionOptions?.withBeacons&&(r=r.leftJoinAndSelect("bleMesh.beacons","beacon")),t?.projectionOptions?.withDevices&&(r=r.leftJoinAndSelect("bleMesh.devices","deviceMesh").leftJoinAndSelect("deviceMesh.device","deviceInMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{bleMeshes:o,totalCount:s}}),"BLEMeshRepository::getBLEMesh"):(i.warn({params:t},"BLEMeshRepository::getBLEMesh missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getBLEMesh result"),i}async addBeaconBLEMeshes(t){this.logger.trace(t,"BLEMeshRepository::addBeaconsToBLEMesh started with params");const i=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.beacons?.length&&!i?.beacons?.some((e=>!e.bleMac))&&i.clientId?t.safeQuery((async t=>{const r=t.getRepository(xe),a=new Date,n=await r.find({where:{bleMac:e.In(i.beacons.map((e=>e.bleMac)))}});return await r.save(i.beacons.map((e=>{const t=n.find((t=>t.bleMac===e.bleMac));return{...e,id:t?.id??void 0,createdAt:a,clientId:i.clientId,bleMeshId:i.bleMeshId??null}})))}),"BLEMeshRepository::addBeaconsToBLEMesh"):(r.warn({params:i},"BLEMeshRepository::addBeaconsToBLEMesh missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::addBeaconsToBLEMesh result"),r}async addDevicesToBLEMesh(t){this.logger.trace(t,"BLEMeshRepository::addDevicesToBLEMesh started with params");const i=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.imeis?.length&&i.clientId&&i.bleMeshId?t.safeQuery((async t=>{const a=t.getRepository(Me),n=new Date,o=t.getRepository(ue),s=await o.find({where:{clientId:i.clientId,imei:e.In(i.imeis)}});return await a.save(i.imeis.map((e=>{const t=s.find((t=>t.imei===e));return null==t?(r.warn({imei:e},"BLEMeshRepository::addDevicesToBLEMesh - device not found"),null):{deviceId:t.id,bleMeshId:i.bleMeshId,clientId:i.clientId,status:i.status,createdAt:n,modifiedAt:n}})).filter((e=>null!=e)))}),"BLEMeshRepository::addDevicesToBLEMesh"):(r.warn({params:i},"BLEMeshRepository::addDevicesToBLEMesh missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::addDevicesToBLEMesh result"),r}async removeBeaconsFromBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeBeaconsFromBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.bleMacs?.length&&t?.bleMeshId&&t.clientId?e.safeQuery((async e=>{const i=e.getRepository(xe).createQueryBuilder().update(xe).set({bleMeshId:null}).where("bleMeshId = :bleMeshId",{bleMeshId:t.bleMeshId}).andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("bleMac IN (:...beaconBleMacs)",{beaconBleMacs:t.bleMacs});return(await i.execute()).affected>0}),"BLEMeshRepository::removeBeaconsFromBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeBeaconsFromBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBeaconsFromBLEMesh result"),i}async removeBeaconBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::removeBeaconBLEMeshes started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.bleMacs?.length&&t.clientId?e.safeQuery((async e=>{let i=e.getRepository(xe).createQueryBuilder().delete();return i=i.andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("bleMac IN (:...beaconBleMacs)",{beaconBleMacs:t.bleMacs}),(await i.execute()).affected>0}),"BLEMeshRepository::removeBeaconBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::removeBeaconBLEMeshes missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBeaconBLEMeshes result"),i}async removeDevicesFromBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeDevicesFromBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeis?.length&&t?.bleMeshId&&t.clientId?e.safeQuery((async e=>{let i=e.getRepository(Me).createQueryBuilder().delete();return i=i.andWhere("clientId = :clientId",{clientId:t.clientId}).where("deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)",{imeis:t.imeis,clientId:t.clientId}).andWhere("bleMeshId = :bleMeshId",{bleMeshId:t.bleMeshId}),(await i.execute()).affected>0}),"BLEMeshRepository::removeDevicesFromBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeDevicesFromBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeDevicesFromBLEMesh result"),i}async updateBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.name||t?.values?.lat||t?.values?.lon||t?.values?.address)?e.safeQuery((async e=>{const i=e.getRepository(Oe),r=new Date;return(await i.createQueryBuilder().update(Oe).set({address:t.values.address,lat:t.values.lat,lon:t.values.lon,name:t.values.name,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"BLEMeshRepository::updateBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateBLEMesh result"),i}async updateDevicesBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateDevicesBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.imeis?.length&&t.filters.clientId&&t?.values?.status?e.safeQuery((async e=>{const i=e.getRepository(Me),r=new Date;return(await i.createQueryBuilder().update(Me).set({status:t.values.status,modifiedAt:r}).where("deviceId IN (SELECT id FROM `device` WHERE imei IN(:imeis) and clientId = :clientId)",{imeis:t.filters.imeis,clientId:t.filters.clientId}).andWhere("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"BLEMeshRepository::updateDevicesBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateDevicesBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateDevicesBLEMesh result"),i}async removeBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::removeBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t.clientId?e.safeQuery((async e=>{const i=e.getRepository(Oe).createQueryBuilder().delete().andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("id = :bleMeshId",{bleMeshId:t.id});return(await i.execute()).affected>0}),"BLEMeshRepository::removeBLEMesh"):(i.warn({params:t},"BLEMeshRepository::removeBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::removeBLEMesh result"),i}async getDeviceBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getDeviceBLEMeshes started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery((async(e,i)=>{let r=e.getRepository(Me).createQueryBuilder("deviceBLEMesh");i&&r.setQueryRunner(i),r=r.andWhere("deviceBLEMesh.clientId = :clientId",{clientId:t.filters.clientId}),(t.filters.imeis||t?.projectionOptions?.withDevice)&&(r=r.leftJoinAndSelect("deviceBLEMesh.device","device")),t.filters.imeis&&(r=r.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.status&&(r=r.andWhere("deviceBLEMesh.status = :deviceBLEMeshStatus",{deviceBLEMeshStatus:t.filters.status})),(t?.projectionOptions?.withBLEMeshes||t?.projectionOptions?.withBeacons)&&(r=r.leftJoinAndSelect("deviceBLEMesh.bleMesh","bleMesh")),t?.projectionOptions?.withBeacons&&(r=r.leftJoinAndSelect("bleMesh.beacons","beacon"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{deviceBLEMeshes:o,totalCount:s}}),"BLEMeshRepository::getDeviceBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getDeviceBLEMeshes missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getDeviceBLEMeshes result"),i}async getBeaconBLEMeshes(e){this.logger.trace(e,"BLEMeshRepository::getBeaconBLEMeshes started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery((async(e,i)=>{let r=e.getRepository(xe).createQueryBuilder("beaconBleMesh");i&&r.setQueryRunner(i),r=r.andWhere("beaconBleMesh.clientId = :clientId",{clientId:t.filters.clientId}),t?.filters?.bleMeshIds?.length&&(r=r.andWhere("beaconBleMesh.bleMeshId IN (:...bleMeshIds)",{bleMeshIds:t.filters.bleMeshIds})),t?.filters?.bleMacs?.length&&(r=r.andWhere("beaconBleMesh.bleMac IN (:...bleMacs)",{bleMacs:t.filters.bleMacs})),t?.projectionOptions?.withBLEMeshes&&(r=r.leftJoinAndSelect("beaconBleMesh.bleMesh","bleMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{beaconBLEMeshes:o,totalCount:s}}),"BLEMeshRepository::getBeaconBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getBeaconBLEMeshes missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getBeaconBLEMeshes result"),i}async createDeviceBLEMeshUpdateTask(t){this.logger.trace(t,"BLEMeshRepository::createDeviceBLEMeshUpdateTask started with params");const i=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>i?.clientId&&i?.updateTasks?.length&&!i?.updateTasks?.some((e=>!e.imei||!e.behaviorName||!e.behaviorParams))?t.safeQuery((async t=>{const a=t.getRepository(ct),n=new Date,o=t.getRepository(Me),s=await o.find({relations:["device"],where:{clientId:i.clientId,device:{imei:e.In(i.updateTasks.map((e=>e.imei)))}}});return await a.save(i.updateTasks.map((e=>{const t=s.find((t=>t.device.imei===e.imei));return null==t?(r.warn({imei:e},"BLEMeshRepository::createDeviceBLEMeshUpdateTask - device not found"),null):{id:yn.uuidStringToBinaryBuffer(e.id),deviceId:t.device.id,deviceBleMeshId:t.id,clientId:i.clientId,status:e.status,behaviorName:e.behaviorName,behaviorParams:e.behaviorParams,createdAt:n,modifiedAt:n}})).filter((e=>null!=e)))}),"BLEMeshRepository::createDeviceBLEMeshUpdateTask"):(r.warn({params:i},"BLEMeshRepository::createDeviceBLEMeshUpdateTask missing required parameters"),null))(i,t,this.logger);return this.logger.trace(r,"BLEMeshRepository::createDeviceBLEMeshUpdateTask result"),r}async getDeviceBLEMeshUpdateTasks(e){this.logger.trace(e,"BLEMeshRepository::getDeviceBLEMeshUpdateTasks started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId||t?.filters?.ids?.length?e.safeQuery((async(e,i)=>{let r=e.getRepository(ct).createQueryBuilder("deviceBLEMeshUpdTask");i&&r.setQueryRunner(i),t?.filters?.clientId&&(r=r.andWhere("deviceBLEMeshUpdTask.clientId = :clientId",{clientId:t.filters.clientId})),t?.filters?.ids&&(r=r.andWhere("deviceBLEMeshUpdTask.id IN (:...ids)",{ids:t.filters.ids.map((e=>yn.uuidStringToBinaryBuffer(e)))})),(t.filters.imeis||t?.projectionOptions?.withDevice)&&(r=r.leftJoinAndSelect("deviceBLEMeshUpdTask.device","device")),t.filters.imeis&&(r=r.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.status&&(r=r.andWhere("deviceBLEMeshUpdTask.status = :deviceBLEMeshUpdTaskStatus",{deviceBLEMeshUpdTaskStatus:t.filters.status})),t?.projectionOptions?.withDeviceBLEMesh&&(r=r.leftJoinAndSelect("deviceBLEMeshUpdTask.deviceBleMesh","deviceBleMesh"));const a=t.pagingOptions?.pageSize??100,n=t.pagingOptions?.pageIndex??0;let o,s;return r=r.orderBy("deviceBLEMeshUpdTask.modifiedAt","DESC"),r=r.limit(a).offset(a*n),t?.projectionOptions?.withTotalCount?[o,s]=await r.getManyAndCount():o=await r.getMany(),{updateTasks:o,totalCount:s}}),"BLEMeshRepository::getDeviceBLEMeshes"):(i.warn({params:t},"BLEMeshRepository::getDeviceBLEMeshUpdateTask missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BLEMeshRepository::getDeviceBLEMeshUpdateTasks result"),i}async updateDevicesBLEMeshUpdateTask(e){this.logger.trace(e,"BLEMeshRepository::updateDevicesBLEMeshUpdateTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.status?e.safeQuery((async e=>{const i=e.getRepository(ct),r=new Date;return(await i.createQueryBuilder().update(ct).set({status:t.values.status,modifiedAt:r}).where("id = :id",{id:yn.uuidStringToBinaryBuffer(t.filters.id)}).execute()).affected>0}),"BLEMeshRepository::updateDevicesBLEMeshUpdateTask"):(i.warn({params:t},"BLEMeshRepository::updateDevicesBLEMeshUpdateTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateDevicesBLEMeshUpdateTask result"),i}async updateBeaconBLEMesh(e){this.logger.trace(e,"BLEMeshRepository::updateBeaconBLEMesh started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.bleMac&&t.filters.clientId&&t?.values?.name?e.safeQuery((async e=>{const i=e.getRepository(xe);return(await i.createQueryBuilder().update(xe).set({name:t.values.name}).where("bleMac = :bleMac",{bleMac:t.filters.bleMac}).andWhere("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"BLEMeshRepository::updateBeaconBLEMesh"):(i.warn({params:t},"BLEMeshRepository::updateBeaconBLEMesh missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BLEMeshRepository::updateBeaconBLEMesh result"),i}},BillingRepository:class extends ra{async getBillings(e){this.logger.trace(e,"BillingRepository::getBillings started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.imei||t?.filters?.clientId||t?.filters?.subscriptionId||t?.filters?.status))return i.warn({params:t},"BillingRepository::getBillings - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Le).createQueryBuilder("billing");return i&&r.setQueryRunner(i),t.projectionOptions?.withClient&&(r=r.innerJoinAndSelect("billing.client","client")),t.projectionOptions?.withPlan&&(r=r.leftJoinAndSelect("billing.plan","plan")),t.filters.imei&&(r=r.andWhere("billing.imei = :imei",{imei:t.filters.imei})),t.filters.clientId&&(r=r.andWhere("billing.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.subscriptionId&&(r=r.andWhere("billing.subscriptionId = :subscriptionId",{subscriptionId:t.filters.subscriptionId})),t.filters.status&&(r=r.andWhere("billing.status = :status",{status:t.filters.status})),await r.getMany()}),"BillingRepository::getBillings",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillings result"),i}async createBilling(e){this.logger.trace(e,"BillingRepository::createBilling started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id||t?.deviceId||t?.clientId||t?.subscriptionId||t?.imei||t?.planId||t?.platform||t?.status||t?.subscriptionValue||t?.subscriptionPeriodMonths||t?.subscriptionValueMonthly?e.safeQuery((async e=>{const i=e.getRepository(Le),r=new Date,a={id:t.id,deviceId:t.deviceId,imei:t.imei,planId:t.planId,subscriptionId:t.subscriptionId,platform:t.platform,status:t.status,subscriptionValue:t.subscriptionValue,subscriptionPeriodMonths:t.subscriptionPeriodMonths,subscriptionValueMonthly:t.subscriptionValueMonthly,clientId:t.clientId,createdAt:r,updatedAt:r};return await i.save(a)}),"BillingRepository::createBilling"):(i.warn({params:t},"BillingRepository::createBilling - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBilling result"),i}async updateBilling(e){this.logger.trace(e,"BillingRepository::updateBilling started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.imei&&(t?.values?.deviceId||t?.values?.clientId||t?.values?.subscriptionId||t?.values?.planId||t?.values?.platform||t?.values?.status||t?.values?.subscriptionValue||t?.values?.subscriptionPeriodMonths||t?.values?.subscriptionValueMonthly)?e.safeQuery((async e=>{const i=e.getRepository(Le),r=new Date;return(await i.createQueryBuilder().update(Le).set({deviceId:t.values.deviceId,clientId:t.values.clientId,subscriptionId:t.values.subscriptionId,planId:t.values.planId,platform:t.values.platform,status:t.values.status,subscriptionValue:t.values.subscriptionValue,subscriptionPeriodMonths:t.values.subscriptionPeriodMonths,subscriptionValueMonthly:t.values.subscriptionValueMonthly,updatedAt:r}).where("imei = :imei",{imei:t.filters.imei}).execute()).affected>0}),"BillingRepository::updateBilling"):(i.warn({params:t},"BillingRepository::updateBilling - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::updateBilling result"),i}async getClientIdFromBraintreeCustomer(e){this.logger.trace(e,"BillingRepository::getClientIdFromBraintreeCustomer started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.customerId)return i.warn({params:t},"BillingRepository::getClientIdFromBraintreeCustomer - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Le).createQueryBuilder("billing").innerJoin(Ke,"billingSubscriptionBraintree","billing.subscriptionId = billingSubscriptionBraintree.subscriptionId").where("billingSubscriptionBraintree.customerId = :customerId",{customerId:t.filters.customerId}).select("distinct billing.clientId","clientId").limit(1);i&&r.setQueryRunner(i);const a=await r.getRawOne();return a?.clientId??null}),"BillingRepository::getClientIdFromBraintreeCustomer",r)})(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::getClientIdFromBraintreeCustomer result"),i}async getBillingCustomerBraintreeById(e){this.logger.trace(e,"BillingRepository::getBillingCustomerBraintreeById started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"BillingRepository::getBillingCustomerBraintreeById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Qe).createQueryBuilder("billingCustomerBraintree").where("billingCustomerBraintree.id = :id",{id:t.filters.id}).limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getBillingCustomerBraintreeById",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingCustomerBraintreeById result"),i}async updateBillingCustomerBraintree(e){this.logger.trace(e,"BillingRepository::updateBillingCustomerBraintree started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.firstName||t?.values?.lastName||t?.values?.company||t?.values?.email||t?.values?.phone||t?.values?.churnStatus)?e.safeQuery((async e=>{const i=e.getRepository(Qe),r=new Date;return(await i.createQueryBuilder().update(Qe).set({firstName:t.values.firstName,lastName:t.values.lastName,company:t.values.company,email:t.values.email,phone:t.values.phone,churnStatus:t.values.churnStatus,updatedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"BillingRepository::updateBillingCustomerBraintree"):(i.warn({params:t},"BillingRepository::updateBillingCustomerBraintree - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::updateBillingCustomerBraintree result"),i}async upsertBillingCustomerBraintree(e){this.logger.trace(e,"BillingRepository::upsertBillingCustomerBraintree started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&(t?.firstName||t?.lastName||t?.company||t?.email||t?.phone)?e.safeQuery((async e=>{const i=e.getRepository(Qe),r=await i.findOne({where:{id:t.id}}),a=new Date,n={id:t.id,firstName:t.firstName,lastName:t.lastName,company:t.company,email:t.email,phone:t.phone,churnStatus:r?.churnStatus,createdAt:r?.createdAt??a,updatedAt:a},o=await i.upsert(n,{conflictPaths:["id"]});return o?.raw?.affectedRows>0?await i.findOne({where:{id:t.id}}):null}),"BillingRepository::upsertBillingCustomerBraintree"):(i.warn({params:t},"BillingRepository::upsertBillingCustomerBraintree - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingCustomerBraintree result"),i}async createBillingStatusHistoryBraintree(e){this.logger.trace(e,"BillingRepository::createBillingStatusHistoryBraintree started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId&&t?.subscriptionHistories?.length?e.safeQuery((async e=>{const i=e.getRepository(Je),r=(await i.createQueryBuilder("billingStatusHistoryBraintree").where("billingStatusHistoryBraintree.subscriptionId = :subscriptionId",{subscriptionId:t.subscriptionId}).andWhere("billingStatusHistoryBraintree.timestamp IN (:...timestamps)",{timestamps:t.subscriptionHistories.map((e=>e.timestamp))}).select("billingStatusHistoryBraintree.timestamp","timestamp").getRawMany()).map((e=>e.timestamp)),a=[];for(const e of t.subscriptionHistories)r.find((t=>t===e.timestamp))||a.push({...e,subscriptionId:t.subscriptionId});return await i.save(a)}),"BillingRepository::createBillingStatusHistoryBraintree"):(i.warn({params:t},"BillingRepository::createBillingStatusHistoryBraintree - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingStatusHistoryBraintree result"),i}async createBillingDeviceHistory(e){this.logger.trace(e,"BillingRepository::createBillingDeviceHistory started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id||t?.clientId||t?.deviceId||t?.subscriptionId||t?.imei||t?.planId||t?.platform||t?.status?e.safeQuery((async e=>{const i=e.getRepository(qe),r=new Date,a={id:t.id,deviceId:t.deviceId,clientId:t.clientId,imei:t.imei,planId:t.planId,subscriptionId:t.subscriptionId,platform:t.platform,status:t.status,createdAt:r};return await i.save(a)}),"BillingRepository::createBillingDeviceHistory"):(i.warn({params:t},"BillingRepository::createBillingDeviceHistory - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingDeviceHistory result"),i}async getUserByBraintreeCustomerId(e){this.logger.trace(e,"BillingRepository::getUserByBraintreeCustomerId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.customerId)return i.warn({params:t},"BillingRepository::getUserByBraintreeCustomerId - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(we).createQueryBuilder("user").innerJoin(Qe,"billingCustomerBraintree","LOWER(TRIM(billingCustomerBraintree.email)) = LOWER(TRIM(user.email))").innerJoin(Ke,"billingSubscriptionBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoin(Le,"billing","billing.subscriptionId = billingSubscriptionBraintree.subscriptionId").where("billingCustomerBraintree.id = :id",{id:t.filters.customerId}).orderBy("billingCustomerBraintree.createdAt","ASC").limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getUserByBraintreeCustomerId",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getUserByBraintreeCustomerId result"),i}async getBillingSubscriptionsBraintree(e){this.logger.trace(e,"BillingRepository::getBillingSubscriptionsBraintree started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.subscriptionId&&!t?.filters?.clientId)return i.warn({params:t},"BillingRepository::getBillingSubscriptionsBraintree - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Ke).createQueryBuilder("billingSubscriptionBraintree");return i&&r.setQueryRunner(i),t?.filters?.subscriptionId&&(r=r.andWhere("billingSubscriptionBraintree.subscriptionId = :subscriptionId",{subscriptionId:t.filters.subscriptionId})),t?.filters?.clientId&&(r=r.innerJoin(Le,"billing","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").andWhere("billing.clientId = :clientId",{clientId:t.filters.clientId})),await r.getMany()}),"BillingRepository::getBillingSubscriptionsBraintree",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingSubscriptionsBraintree result"),i}async getChurnStatusByClientId(e){this.logger.trace(e,"BillingRepository::getChurnStatusByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"BillingRepository::getChurnStatusByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Le).createQueryBuilder("billing").where("billing.clientId = :clientId",{clientId:t.filters.clientId}).innerJoinAndSelect(Ke,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoinAndSelect(Qe,"billingCustomerBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoinAndSelect(Je,"billingStatusHistoryBraintree","billingStatusHistoryBraintree.subscriptionId = billingSubscriptionBraintree.subscriptionId").groupBy("billingCustomerBraintree.id, billingSubscriptionBraintree.status, billingSubscriptionBraintree.subscriptionId, billing.subscriptionPeriodMonths, billingCustomerBraintree.churnStatus, billingSubscriptionBraintree.nextBillingDate").select(["billingCustomerBraintree.id as braintreeCustomerId","billingSubscriptionBraintree.status as braintreeSubscriptionStatus","billingSubscriptionBraintree.subscriptionId as subscriptionId","billingCustomerBraintree.churnStatus as churnStatus","billingSubscriptionBraintree.nextBillingDate as nextBillingDate","MAX(billingStatusHistoryBraintree.timestamp) as lastStatusUpdate","billing.subscriptionPeriodMonths as subscriptionPeriodMonths"]).distinct();return i&&r.setQueryRunner(i),await r.getRawMany()}),"BillingRepository::getChurnStatusByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getChurnStatusByClientId result"),i}async upsertBillingSubscriptionBraintree(e){this.logger.trace(e,"BillingRepository::upsertBillingSubscriptionBraintree started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId?e.safeQuery((async e=>{const i=e.getRepository(Ke),r=new Date,a={...t,createdAt:t.createdAt??r},n=await i.upsert(a,{conflictPaths:["subscriptionId"]});return n?.raw?.affectedRows>0}),"BillingRepository::upsertBillingSubscriptionBraintree"):(i.warn({params:t},"BillingRepository::upsertBillingSubscriptionBraintree - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BillingRepository::upsertBillingSubscriptionBraintree result"),i}async getCanceledImeis(e){this.logger.trace(e,"BillingRepository::getCanceledImeis started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.minCancellationDate||!t?.filters?.maxCancellationDate||!t?.filters?.canceledIn||null==t?.filters?.excludeB2B||null==t?.filters?.excludeTest)return i.warn({params:t},"BillingRepository::getCanceledImeis - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Le).createQueryBuilder("billing").innerJoin(Ke,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoin(Lt,"imeiIccidCarrier","imeiIccidCarrier.imei = billing.imei").innerJoin(ue,"device","device.imei = billing.imei").innerJoin(me,"client","client.id = device.clientId").leftJoin(se,"customerAttribute","client.id = customerAttribute.clientId").innerJoin(kt,"iccidStatus","iccidStatus.iccid = imeiIccidCarrier.iccid").where("iccidStatus.processing = :processing",{processing:!1}).andWhere("billingSubscriptionBraintree.updatedAt > :minCancellationDate",{minCancellationDate:t.filters.minCancellationDate}).andWhere("billingSubscriptionBraintree.updatedAt < :maxCancellationDate",{maxCancellationDate:t.filters.maxCancellationDate}).andWhere("billingSubscriptionBraintree.status = :subscriptionStatus",{subscriptionStatus:"Canceled"}).andWhere("billingSubscriptionBraintree.nextBillingDate < Date(:nextBillingDate)",{nextBillingDate:new Date});switch(i&&r.setQueryRunner(i),t.filters.canceledIn){case"carrier":r=r.andWhere("iccidStatus.status = :iccidStatus",{iccidStatus:"active"});break;case"device":r=r.andWhere("device.status = :deviceStatus",{deviceStatus:"A"});break;default:r=r.andWhere("(iccidStatus.status = :iccidStatus OR device.status = :deviceStatus)",{iccidStatus:"active",deviceStatus:"A"})}return t.filters.excludeB2B&&(r=r.andWhere("(customerAttribute.enterprise is null OR customerAttribute.enterprise = :enterprise)",{enterprise:!1})),t.filters.excludeTest&&(r=r.andWhere("client.clientTypeId != :testClientTypeId",{testClientTypeId:b.test})),(await r.orderBy("billingSubscriptionBraintree.updatedAt","ASC").limit(t.pagingOptions?.pageSize??100).select(["billing.imei as imei","imeiIccidCarrier.iccid as iccid","client.id as clientId","client.clientTypeId as clientTypeId","client.email as email","billing.subscriptionId as subscriptionId","billingSubscriptionBraintree.createdAt as createdAt","billingSubscriptionBraintree.updatedAt as updatedAt","billingSubscriptionBraintree.status as status","imeiIccidCarrier.carrier as carrier","customerAttribute.enterprise as isEnterpriseCustomer"]).getRawMany()).map((e=>({...e,isEnterpriseCustomer:1===e.isEnterpriseCustomer})))}),"BillingRepository::getCanceledImeis",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getCanceledImeis result"),i}async getCanceledImeisMatchingMagentoData(e){this.logger.trace(e,"BillingRepository::getCanceledImeis started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.minCancellationDate||!t?.filters?.maxCancellationDate||!t?.filters?.canceledIn||null==t?.filters?.excludeB2B||null==t?.filters?.excludeTest)return i.warn({params:t},"BillingRepository::getCanceledImeisMatchingMagentoData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Le);let a="";switch(t.filters.canceledIn){case"carrier":a=" AND iccidStatus.status = 'active' ";break;case"device":a=" AND device.status = 'A' ";break;default:a=" AND (iccidStatus.status = 'active' OR device.status = 'A') "}const n=`SELECT \n billing.imei, \n imeiIccidCarrier.iccid,\n client.id as clientId,\n client.clientTypeId,\n client.email,\n billing.subscriptionId,\n billingSubscriptionBraintree.createdAt,\n billingSubscriptionBraintree.updatedAt,\n billingSubscriptionBraintree.status,\n imeiIccidCarrier.carrier,\n customerAttribute.enterprise as isEnterpriseCustomer\n FROM \n billing \n INNER JOIN \n billingSubscriptionBraintree ON billing.subscriptionId = billingSubscriptionBraintree.subscriptionId\n INNER JOIN \n imeiIccidCarrier ON imeiIccidCarrier.imei = billing.imei\n INNER JOIN \n device ON device.imei = billing.imei\n INNER JOIN \n client ON client.id = device.clientId\n LEFT JOIN\n customerAttribute ON customerAttribute.clientId = client.id\n INNER JOIN \n iccidStatus ON iccidStatus.iccid = imeiIccidCarrier.iccid\n WHERE \n iccidStatus.processing = false AND\n billingSubscriptionBraintree.updatedAt > ? AND\n billingSubscriptionBraintree.updatedAt < ? AND\n billingSubscriptionBraintree.status = 'Canceled' AND \n billingSubscriptionBraintree.nextBillingDate < Date(?) AND \n client.id NOT IN (128, 686142) AND\n (\n EXISTS (SELECT 1\n FROM magento2Gps magento2Gps1\n INNER JOIN billingSubscriptionBraintree billingSubscriptionBraintree2 \n ON billingSubscriptionBraintree2.subscriptionId = magento2Gps1.btSubscriptionId\n WHERE magento2Gps1.imei = billing.imei\n AND billingSubscriptionBraintree2.subscriptionId = billing.subscriptionId\n AND billingSubscriptionBraintree2.subscriptionStart = (\n SELECT MAX(bsb.subscriptionStart)\n FROM billingSubscriptionBraintree bsb\n WHERE bsb.subscriptionId = magento2Gps1.btSubscriptionId\n )\n ) \n OR \n NOT EXISTS (SELECT 1 FROM magento2Gps magento2Gps2 WHERE magento2Gps2.imei = billing.imei) \n OR \n EXISTS (SELECT 1 FROM magento2Gps magento2Gps3 WHERE magento2Gps3.imei = billing.imei AND magento2Gps3.btSubscriptionId IS NULL)) \n ${a}\n ${t.filters.excludeB2B?"AND customerAttribute.enterprise != true ":""}\n ${t.filters.excludeTest?`AND client.clientTypeId != ${b.test} `:""}\n ORDER BY billingSubscriptionBraintree.updatedAt ASC\n LIMIT ?`;return(i?await i.query(n,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100]):await r.query(n,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100])).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,clientTypeId:e.clientTypeId,email:e.email,subscriptionId:e.subscriptionId,createdAt:e.createdAt,updatedAt:e.updatedAt,status:e.status,carrier:e.carrier,isEnterpriseCustomer:1===e.isEnterpriseCustomer})))}),"BillingRepository::getCanceledImeisMatchingMagentoData",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getCanceledImeisMatchingMagentoData result"),i}async getMagentoPlan(e){this.logger.trace(e,"BillingRepository::getMagentoPlan started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(null==t?.filters?.annual||!t?.filters?.code)return i.warn({params:t},"BillingRepository::getMagentoPlan - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Jt).createQueryBuilder("plan").where("plan.planAnnual = :planAnnual",{planAnnual:t.filters.annual}).andWhere("plan.magentoPlanCode = :magentoPlanCode",{magentoPlanCode:t.filters.code}).limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"BillingRepository::getMagentoPlan",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getMagentoPlan result"),i}async createBillingHubspotPaymentLog(e){this.logger.trace(e,"BillingRepository::createBillingHubspotPaymentLog started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.amountPaid?e.safeQuery((async e=>{const i=e.getRepository(je),r={id:t.id,amountPaid:t.amountPaid,owner:t.owner,bankOfIssuer:t.bankOfIssuer,billingAddress:t.billingAddress,billingAddressCity:t.billingAddressCity,billingAddressCountry:t.billingAddressCountry,billingAddressLine1:t.billingAddressLine1,billingAddressLine2:t.billingAddressLine2,billingAddressState:t.billingAddressState,billingAddressZip:t.billingAddressZip,createdByUserId:t.createdByUserId,currencyCode:t.currencyCode,customer:t.customer,grossAmount:t.grossAmount,lastFourDigits:t.lastFourDigits,lineItemDiscountAmount:t.lineItemDiscountAmount,netAmount:t.netAmount,objectCreateDateTime:t.objectCreateDateTime,objectId:t.objectId,objectLastModifiedDateTime:t.objectLastModifiedDateTime,orderDiscountAmount:t.orderDiscountAmount,orderDiscountCode:t.orderDiscountCode,orderDiscountPercentage:t.orderDiscountPercentage,ownerAssignedDateTime:t.ownerAssignedDateTime,paymentDateTime:t.paymentDateTime,paymentId:t.paymentId,paymentMethod:t.paymentMethod,paymentSourceName:t.paymentSourceName,paymentType:t.paymentType,processingFees:t.processingFees,refunded:t.refunded,shippingAddress:t.shippingAddress,shippingAddressCity:t.shippingAddressCity,shippingAddressCountry:t.shippingAddressCountry,shippingAddressLine1:t.shippingAddressLine1,shippingAddressLine2:t.shippingAddressLine2,shippingAddressState:t.shippingAddressState,shippingAddressZip:t.shippingAddressZip,source:t.source,sourceId:t.sourceId,sourceUrl:t.sourceUrl,status:t.status,statusUpdatedOn:t.statusUpdatedOn,totalDiscountAmount:t.totalDiscountAmount,totalFees:t.totalFees,totalTaxes:t.totalTaxes,updatedByUserId:t.updatedByUserId};return await i.save(r)}),"BillingRepository::createBillingHubspotPaymentLog"):(i.warn({params:t},"BillingRepository::createBillingHubspotPaymentLog - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::createBillingHubspotPaymentLog result"),i}async upsertBillingPlans(e){this.logger.trace(e,"BillingRepository::upsertBillingPlan started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.planId||t?.targetCustomer||t?.code||t?.status||t?.platform||t?.billingFrequency||t?.contractLength||t?.name||t?.price||t?.createdAt||t?.updatedAt?e.safeQuery((async e=>{const i=e.getRepository(We),r={planId:t.planId,targetCustomer:t.targetCustomer,code:t.code,status:t.status,platform:t.platform,billingFrequency:t.billingFrequency,contractLength:t.contractLength,numberOfBillingCycles:t.numberOfBillingCycles??null,description:t.description??null,name:t.name,price:t.price,trialDuration:t.trialDuration??null,trialDurationUnit:t.trialDurationUnit??null,trialPeriod:!!t.trialPeriod&&t.trialPeriod,createdAt:t.createdAt,updatedAt:t.updatedAt,addOns:t.addOns??[],discounts:t.discounts??[],startDate:t.startDate??null,endDate:t.endDate??null},a=await i.upsert(r,{conflictPaths:["planId"]});return a?.raw?.affectedRows>0?await i.findOne({where:{planId:t.planId}}):null}),"BillingRepository::upsertBillingPlan"):(i.warn({params:t},"BillingRepository::upsertBillingPlan - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingPlan result"),i}async upsertBillingDeviceTypePlan(e){this.logger.trace(e,"BillingRepository::upsertBillingDeviceTypePlan started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId||t?.planId||t?.status?e.safeQuery((async e=>{const i=e.getRepository(_e);if(await i.createQueryBuilder("billingDeviceTypePlan").where("billingDeviceTypePlan.deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).andWhere("billingDeviceTypePlan.planId = :planId",{planId:t.planId}).getOne())return(await i.createQueryBuilder().update(_e).set({status:t.status}).where("deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}).andWhere("planId = :planId",{planId:t.planId}).execute()).affected>0?await i.findOne({where:{deviceTypeId:t.deviceTypeId,planId:t.planId}}):null;{const e={deviceTypeId:t.deviceTypeId,planId:t.planId,deviceTypeModel:t.deviceTypeModel,deviceType:t.deviceType??null,createdAt:t.createdAt,status:t.status};return(await i.createQueryBuilder().insert().into(_e).values([e]).execute()).identifiers.length>0?await i.findOne({where:{deviceTypeId:t.deviceTypeId,planId:t.planId}}):null}}),"BillingRepository::upsertBillingDeviceTypePlan"):(i.warn({params:t},"BillingRepository::upsertBillingDeviceTypePlan - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BillingRepository::upsertBillingDeviceTypePlan result"),i}async getBillingDeviceTypePlans(e){this.logger.trace(e,"BillingRepository::getBillingDeviceTypePlans started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.planId)return i.warn({params:t},"BillingRepository::getBillingDeviceTypePlans - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(_e).createQueryBuilder("billingDeviceTypePlan");return i&&r.setQueryRunner(i),r.where("billingDeviceTypePlan.planId = :planId",{planId:t.planId}).getMany()}),"BillingRepository::getBillingDeviceTypePlans",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBillingDeviceTypePlans result"),i}async getBillingPlans(t){this.logger.trace(t,"BillingRepository::getBillingPlans started with params");const i=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(t,i,r)=>{if(!(i?.deviceTypeId||i?.targetCustomer||i?.status||i?.date))return r.warn({params:i},"BillingRepository::getBillingPlans - missing required parameters"),[];const a=i?.status.split(","),n=i?.targetCustomer.split(","),o=t.createQueryRunnerFromParams(i);return t.safeQuery((async(t,r)=>{let o=t.getRepository(_e).createQueryBuilder("billingDeviceTypePlan").innerJoinAndSelect(We,"billingPlans","billingPlans.planId = billingDeviceTypePlan.planId").innerJoinAndSelect(de,"deviceType","deviceType.id = billingDeviceTypePlan.deviceTypeId").where("billingDeviceTypePlan.deviceTypeId = :deviceTypeId",{deviceTypeId:i.deviceTypeId}).andWhere("billingDeviceTypePlan.status IN (:...status)",{status:a}).andWhere("billingPlans.status IN (:...status)",{status:a}).andWhere("billingPlans.targetCustomer IN (:...targetCustomer)",{targetCustomer:n}).andWhere(new e.Brackets((e=>{e.where("billingPlans.startDate is null").orWhere("billingPlans.endDate is null"),e.orWhere("billingPlans.startDate <= :date",{date:i.date}).andWhere("billingPlans.endDate >= :date",{date:i.date})}))).select(["billingDeviceTypePlan.deviceTypeId as deviceTypeId","billingDeviceTypePlan.planId as planId","billingDeviceTypePlan.deviceType as deviceType","billingDeviceTypePlan.deviceTypeModel as deviceTypeModel","billingPlans.targetCustomer as targetCustomer","billingPlans.code as plan","billingPlans.platform as platform","billingPlans.billingFrequency as billingFrequency","billingPlans.contractLength as contractLength","billingPlans.description as description","billingPlans.name as title","billingPlans.price as price","billingPlans.createdAt as createdAt","billingPlans.addOns as addOns","billingPlans.discounts as discounts","billingPlans.startDate as startDate","deviceType.pictureUrl as imageUrl","deviceType.name as productName"]);r&&o.setQueryRunner(r);const s=i?.sortField??"billingFrequency",l=i?.sortOrder??"ASC";return o=o.orderBy(`billingPlans.${s}`,l),await o.getRawMany()}),"BillingRepository::getBillingPlans",o)})(i,t,this.logger);return this.logger.trace(r,"BillingRepository::getBillingPlans result"),r}async getBraintreePastDueSubscriptions(e){this.logger.trace(e,"BillingRepository::getBraintreePastDueSubscriptions started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.numberOfPastDueDays)return i.warn({params:t},"BillingRepository::getBraintreePastDueSubscriptions - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>await i.query("SELECT \n final.subscriptionId,\n final.timestamp\n FROM (\n SELECT \n t.subscriptionId,\n t.timestamp,\n t.status,\n ROW_NUMBER() OVER (PARTITION BY t.subscriptionId ORDER BY t.timestamp) AS first_pastdue\n FROM (\n SELECT \n bshb.subscriptionId,\n bshb.timestamp,\n bshb.status,\n ROW_NUMBER() OVER (PARTITION BY bshb.subscriptionId ORDER BY bshb.timestamp DESC) - \n ROW_NUMBER() OVER (PARTITION BY bshb.subscriptionId, bshb.status ORDER BY bshb.timestamp DESC) AS difference\n FROM \n billingStatusHistoryBraintree bshb\n WHERE \n EXISTS (\n SELECT 1\n FROM billingSubscriptionBraintree bsb\n WHERE bshb.subscriptionId = bsb.subscriptionId \n AND bsb.status = 'Past Due'\n ) \n AND bshb.timestamp > '2000-01-01'\n ) t\n WHERE \n t.difference = 0 \n AND t.status = 'Past Due'\n ) final\n WHERE \n DATE(final.timestamp) <= DATE_SUB(CURRENT_DATE, INTERVAL ? DAY)\n AND final.first_pastdue = 1\n ORDER BY \n final.subscriptionId, final.timestamp DESC",[t.filters.numberOfPastDueDays])),"BillingRepository::getBillingSubscriptionsBraintree",r)})(t,e,this.logger);return this.logger.trace(i,"BillingRepository::getBraintreePastDueSubscriptions result"),i}},BlacklistRepository:class extends ra{async getBlacklists(e){this.logger.trace(e,"BlacklistRepository::getBlacklists started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.blacklistType&&!t?.filters?.value)return i.warn({params:t},"BlacklistRepository::getBlacklists - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository($e).createQueryBuilder("blacklist").innerJoin(Xe,"blacklistType","blacklistType.id = blacklist.blacklistTypeId").where("blacklist.blacklistTypeId = :blacklistType",{blacklistType:t.filters.blacklistType}).andWhere("LOWER(blacklist.value) = LOWER(:value)",{value:t.filters.value});return i&&r.setQueryRunner(i),await r.getMany()}),"BlacklistRepository::getBlacklists",r)})(t,e,this.logger);return this.logger.trace(i,"BlacklistRepository::getBlacklists result"),i}async upsertBlacklist(e){this.logger.trace(e,"BlacklistRepository::upsertBlacklist started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.blacklistTypeId&&t?.value&&t?.createdBy?e.safeQuery((async e=>{const i=e.getRepository($e),r=await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}),a=new Date,n={...r,blacklistTypeId:t.blacklistTypeId,value:t.value,notes:t.notes,createdBy:r?r.createdBy:t.createdBy,createdAt:r?r.createdAt:a,modifiedBy:r?t.createdBy:null,modifiedAt:r?a:null},o=await i.upsert(n,{conflictPaths:["blacklistTypeId","value"]});return o?.raw?.affectedRows>0?await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}):null}),"BlacklistRepository::upsertBlackList"):(i.warn({params:t},"BlacklistRepository::upsertBlackList - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"BlacklistRepository::upsertBlacklist result"),i}async updateBlacklist(e){this.logger.trace(e,"BlacklistRepository::updateBlacklist started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.blacklistTypeId&&t?.filters?.value&&t?.values?.blacklistTypeId&&t?.values?.value?e.safeQuery((async e=>{const i=e.getRepository($e),r=new Date;return(await i.createQueryBuilder().update($e).set({blacklistTypeId:t.values.blacklistTypeId,value:t.values.value,notes:t.values.notes,modifiedBy:t.values.modifiedBy,modifiedAt:r}).where("blacklistTypeId = :blacklistTypeId",{blacklistTypeId:t.filters.blacklistTypeId}).andWhere("value = :value",{value:t.filters.value}).execute()).affected>0}),"BlacklistRepository::updateBlackList"):(i.warn({params:t},"BlacklistRepository::updateBlackList - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BlacklistRepository::updateBlacklist result"),i}async deleteBlacklist(e){this.logger.trace(e,"BlacklistRepository::deleteBlacklist started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.blacklistTypeId&&t?.filters?.value?e.safeQuery((async e=>{const i=e.getRepository($e);return(await i.createQueryBuilder().delete().where("blacklistTypeId = :blacklistTypeId",{blacklistTypeId:t.filters.blacklistTypeId}).andWhere("value = :value",{value:t.filters.value}).execute()).affected>0}),"BlacklistRepository::deleteBlackList"):(i.warn({params:t},"BlacklistRepository::deleteBlackList - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BlacklistRepository::deleteBlacklist result"),i}},BoundariesRepository:class extends ra{async getBoundariesByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"BoundariesRepository::getBoundariesByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ze),a=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},n=r.createQueryBuilder("boundary").where(a);i&&n.setQueryRunner(i),t.filters.tagIdList?.length&&n.innerJoin(Ut,"entityTag","entityTag.entityId = boundary.id \n AND entityTag.entityType = 'Boundary'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList});let o=await n.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Ut);o=await Promise.all(o.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Boundary"}).innerJoin(ni,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return o}),"BoundariesRepository::getBoundariesByClientId",r)})(t,e,this.logger);return this.logger.trace({result:i.map((e=>e.id))},"BoundariesRepository::getBoundariesByClientId result"),i}async getBoundariesIdsByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesIdsByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"BoundariesRepository::getBoundariesIdsByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ze),a=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},n=r.createQueryBuilder("boundary").where(a);return i&&n.setQueryRunner(i),(await n.select("id").getRawMany()).map((e=>e.id))}),"BoundariesRepository::getBoundariesIdsByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"BoundariesRepository::getBoundariesIdsByClientId result"),i}async getBoundaryById(e){this.logger.trace(e,"BoundariesRepository::getBoundaryById started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.boundaryId)return i.warn({params:t},"BoundariesRepository::getBoundaryById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ze).createQueryBuilder("boundary").where("boundary.id = :boundaryId",{boundaryId:t.filters.boundaryId});return i&&r.setQueryRunner(i),await r.where("id = :id",{id:t.filters.boundaryId}).getOne()}),"BoundariesRepository::getBoundaryById",r)})(t,e,this.logger);return this.logger.trace({result:{...i,geometry:void 0}},"BoundariesRepository::getBoundaryById result"),i}async createBoundary(e){this.logger.trace(e,"BoundariesRepository::createBoundary started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&0!==t.clientId&&t?.name&&t?.type&&t?.location&&t?.geometry?e.safeQuery((async e=>{const i=e.getRepository(Ze),r=new Date;let a=parseFloat(t.buffer);Number.isNaN(a)&&(a=0);const n=Math.max(a,50),o=t.radiusDisplayUnit||"m",s=t.color||"#e74c3c",l=t.status>0&&t.status<4?t.status:f.Active,d={id:t.boundaryId,name:t.name,type:t.type,buffer:`${n}`,radiusDisplayUnit:o,clientId:t.clientId,createdAt:r,modifiedAt:r,createdBy:t.createdBy,modifiedBy:t.createdBy,location:t.location,color:s,geometry:t.geometry,isUserCreated:t.isUserCreated??!0,status:l,area:t.area,dataSourceTypeId:t.dataSourceTypeId};return await i.save(d)}),"BoundariesRepository::createBoundary"):(i.warn({params:t},"BoundariesRepository::createBoundary - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:{...i,geometry:void 0}},"BoundariesRepository::createBoundary result"),i}async updateBoundary(e){this.logger.trace(e,"BoundariesRepository::updateBoundary started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.boundaryId)return i.warn({params:t},"BoundariesRepository::updateBoundary - missing required parameters"),!1;const r=t?.values?.status>0&&t?.values?.status<4?t.values.status:void 0;let a=t?.values?.buffer;if(a){const e=parseFloat(t.values.buffer);Number.isNaN(e)&&(a=void 0)}return t?.values?.name||t?.values?.type||t?.values?.location||a||t?.values?.radiusDisplayUnit||t?.values?.color||t?.values?.geometry||r||t?.values?.area?e.safeQuery((async e=>{const i=e.getRepository(Ze),n=new Date;return(await i.createQueryBuilder().update(Ze).set({name:t.values.name,type:t.values.type,modifiedBy:t.values.modifiedBy,location:t.values.location,buffer:a,radiusDisplayUnit:t.values.radiusDisplayUnit,color:t.values.color,geometry:t.values.geometry,status:r,modifiedAt:n}).where("id = :id",{id:t.filters.boundaryId}).execute()).affected>0}),"BoundariesRepository::updateBoundary"):(i.warn({params:t},"BoundariesRepository::updateBoundary - missing required parameters"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::updateBoundary result"),i}async deleteBoundary(e){this.logger.trace(e,"BoundariesRepository::deleteBoundary started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.boundaryId?e.safeQuery((async e=>{const i=e.getRepository(Ze),r=new Date;return(await i.createQueryBuilder().update(Ze).set({status:f.Deleted,modifiedBy:t.values.modifiedBy,modifiedAt:r}).where("id = :id",{id:t.filters.boundaryId}).execute()).affected>0}),"BoundariesRepository::deleteBoundary"):(i.warn({params:t},"BoundariesRepository::deleteBoundary - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::deleteBoundary result"),i}async getBoundariesReport(e){this.logger.trace(e,"BoundariesRepository::getBoundariesReport started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - missing required parameters"),[];const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(et).createQueryBuilder("boundaryEvent").innerJoin(ue,"device","device.id = boundaryEvent.deviceId").innerJoin(Ze,"boundary","boundary.id = boundaryEvent.boundaryId").where("boundaryEvent.userId = :userId",{userId:r}).andWhere("device.status = :deviceStatus",{deviceStatus:h.Active}).andWhere("boundaryEvent.deleted = 0");i&&a.setQueryRunner(i),t.filters.boundaryId&&a.andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.boundaryName&&a.andWhere("boundary.name LIKE :boundaryName",{boundaryName:`%${t.filters.boundaryName}%`}),t.filters.imeis?.length&&a.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.boundaryInStartDate&&a.andWhere("boundaryEvent.inDate >= :boundaryInStartDate",{boundaryInStartDate:t.filters.boundaryInStartDate}),t.filters.boundaryInEndDate&&a.andWhere("boundaryEvent.inDate <= :boundaryInEndDate",{boundaryInEndDate:t.filters.boundaryInEndDate}),t.filters.boundaryOutStartDate&&a.andWhere("boundaryEvent.outDate >= :boundaryOutStartDate",{boundaryOutStartDate:t.filters.boundaryOutStartDate}),t.filters.boundaryOutEndDate&&a.andWhere("boundaryEvent.outDate <= :boundaryOutEndDate",{boundaryOutEndDate:t.filters.boundaryOutEndDate}),t.filters.minDuration&&a.andWhere("((boundaryEvent.inOutDuration IS NOT NULL AND boundaryEvent.inOutDuration >= :minDuration) OR \n (boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL AND \n UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate) >= :minDuration\n ))",{minDuration:t.filters.minDuration}),t.filters.maxDuration&&a.andWhere("((boundaryEvent.inOutDuration IS NOT NULL AND boundaryEvent.inOutDuration <= :maxDuration) OR \n (boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL AND \n UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate) <= :maxDuration\n ))",{maxDuration:t.filters.maxDuration});const n=a.clone().select("COUNT(boundaryEvent.id)","totalCount");if(a.innerJoin(`(${n.getQuery()})`,"sub"),t.sortOptions?.sortField){let e=null;switch(t.sortOptions.sortField){case"inDateTime":e="boundaryEvent.inDate";break;case"outDateTime":e="boundaryEvent.outDate";break;case"inOutDuration":e='CASE WHEN boundaryEvent.inOutDuration IS NOT NULL \n THEN boundaryEvent.inOutDuration \n WHEN boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL \n THEN UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, "+00:00")) - UNIX_TIMESTAMP(boundaryEvent.inDate) \n ELSE NULL\n END';break;case"name":e="boundary.name"}a.orderBy(e||"boundaryEvent.inDate",t.sortOptions.sortOrder||"DESC")}return(await a.select(["device.id AS deviceId","device.imei AS imei","device.name AS deviceName","boundary.id AS boundaryId","boundary.name AS boundaryName","boundaryEvent.inDate AS inDate","boundaryEvent.inLat AS inLat","boundaryEvent.inLon AS inLon","boundaryEvent.inAddress AS inAddress","boundaryEvent.outDate AS outDate","boundaryEvent.outLat AS outLat","boundaryEvent.outLon AS outLon","boundaryEvent.outAddress AS outAddress","CASE \n WHEN boundaryEvent.inOutDuration IS NOT NULL\n THEN boundaryEvent.inOutDuration\n WHEN boundaryEvent.inOutDuration IS NULL AND boundaryEvent.inDate IS NOT NULL AND boundaryEvent.outDate IS NULL \n THEN UNIX_TIMESTAMP(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00')) - UNIX_TIMESTAMP(boundaryEvent.inDate)\n ELSE NULL\n END AS duration","sub.totalCount AS totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()).map((e=>({deviceId:e.deviceId,imei:e.imei,deviceName:e.deviceName,boundaryId:e.boundaryId,boundaryName:e.boundaryName,inDate:e.inDate,inLat:e.inLat,inLon:e.inLon,inAddress:e.inAddress,outDate:e.outDate,outLat:e.outLat,outLon:e.outLon,outAddress:e.outAddress,inOutDuration:e.duration,totalCount:e.totalCount})))}),"BoundariesRepository::getBoundariesReport",a)})(t,e,this.logger);return this.logger.trace(i,"BoundariesRepository::getBoundariesReport result"),i}async processBoundaryEvent(e){this.logger.trace(e,"BoundariesRepository::processBoundaryEvent started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await da(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::processBoundaryEvent result"),i}async upsertBoundaryEvent(e){this.logger.trace(e,"BoundariesRepository::upsertBoundaryEvent started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.id&&t?.boundaryId&&t?.deviceId&&t?.imei))return i.warn({params:t},"BoundariesRepository::upsertBoundaryEvent missing required parameters"),!1;const r=na(t.userId);return e.safeQuery((async e=>{const i=e.getRepository(et),a=new Date,n={...t,userId:r,createdAt:t.createdAt??a,modifiedAt:t.modifiedAt??a},o=await i.upsert(n,{conflictPaths:["id"]});return o?.raw?.affectedRows>0}),"BoundariesRepository::upsertBoundaryEvent")})(t,e,this.logger);return this.logger.trace({result:i},"BoundariesRepository::upsertBoundaryEvent result"),i}},ClientAlertConfigurationRepository:class extends ra{async getClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientAlertConfigurationRepository::getClientAlertConfigurations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(he).createQueryBuilder("clientAlertConfiguration").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),t.filters.alertTypeId&&(r=r.andWhere("clientAlertConfiguration.alertTypeId = :alertTypeId",{alertTypeId:t.filters.alertTypeId})),t.filters.statusList?.length&&(r=r.andWhere("clientAlertConfiguration.status IN (:...statusList)",{statusList:t.filters.statusList})),t.filters.configurationIdList&&(r=r.andWhere("clientAlertConfiguration.id IN (:...configurationIdList)",{configurationIdList:t.filters.configurationIdList})),t.projectionOptions?.withInternalRecipients&&(r=r.leftJoinAndSelect("clientAlertConfiguration.internalRecipients","internalRecipients")),t.projectionOptions?.withExternalRecipients&&(r=r.leftJoinAndSelect("clientAlertConfiguration.externalRecipients","externalRecipients","externalRecipients.clientId = clientAlertConfiguration.clientId")),t.filters.tagIdList?.length&&r.innerJoin(Ut,"entityTag","entityTag.entityId = clientAlertConfiguration.id \n AND entityTag.entityType = 'ClientAlertConfiguration'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),await r.getMany()}),"ClientAlertConfigurationRepository::getClientAlertConfigurations",r)})(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::getClientAlertConfigurations result"),i}async createClientAlertConfiguration(e){this.logger.trace(e,"ClientAlertConfigurationRepository::createClientAlertConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.alertTypeId&&t?.name&&t?.description?e.safeQuery((async e=>{const i=e.getRepository(he),r={id:t.id,clientId:t.clientId,alertTypeId:t.alertTypeId,name:t.name,description:t.description,status:t.status||"active",alertValue:t.alertValue,alertMetadata:t.alertMetadata,filter:t.filter,readOnly:t.readOnly||!1,createdBy:t.createdBy,modifiedBy:t.createdBy};return await i.save(r)}),"ClientAlertConfigurationRepository::createClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::createClientAlertConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::createClientAlertConfiguration result"),i}async updateClientAlertConfiguration(e){this.logger.trace(e,"ClientAlertConfigurationRepository::updateClientAlertConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(t?.filters?.clientId||t?.filters?.clientAlertConfigurationId)&&(t?.values?.status||t?.values?.alertValue||t?.values?.alertMetadata||t?.values?.filter||t?.values?.name||t?.values?.description||null!=t?.values?.readOnly)?e.safeQuery((async e=>{const i=e.getRepository(he).createQueryBuilder().update(he).set({alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata,readOnly:t?.values?.readOnly,filter:t?.values?.filter,name:t?.values?.name,description:t?.values?.description,status:t?.values?.status,modifiedBy:t?.values?.modifiedBy??void 0}).where("clientId = :clientId",{clientId:t.filters.clientId}).andWhere("id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});return(await i.execute()).affected>0}),"ClientAlertConfigurationRepository::updateClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::updateClientAlertConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::updateClientAlertConfiguration result"),i}async deleteClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::deleteClientAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.clientAlertConfigurationIds?.length?e.safeQuery((async e=>{const i=e.getRepository(he).createQueryBuilder().update(he).set({status:"deleted"}).where("clientId = :clientId",{clientId:t.filters.clientId}).andWhere("id IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t.filters.clientAlertConfigurationIds});return(await i.execute()).affected>0}),"ClientAlertConfigurationRepository::deleteClientAlertConfiguration"):(i.warn({params:t},"ClientAlertConfigurationRepository::deleteClientAlertConfiguration - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::deleteClientAlertConfigurations result"),i}async getClientAlertRecipients(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertRecipients started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId||!t.filters.clientAlertConfigurationId)return i.warn({params:t},"ClientAlertConfigurationRepository::getClientAlertRecipients - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r={internalRecipients:[],externalRecipients:[]},a=e.getRepository(ve).createQueryBuilder("clientAlertRecipient").innerJoin(he,"clientAlertConfiguration","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("clientAlertConfiguration.id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});i&&a.setQueryRunner(i);const n=await a.getMany();r.internalRecipients=n;const o=e.getRepository(fe),s=await o.find({where:{clientId:t.filters.clientId,clientAlertConfigurationId:t.filters.clientAlertConfigurationId}});return r.externalRecipients=s,r}),"ClientAlertConfigurationRepository::getClientAlertRecipients",r)})(t,e,this.logger);return this.logger.trace(i,"ClientAlertConfigurationRepository::getClientAlertRecipients result"),i}async setClientAlertRecipients(e){this.logger.trace(e,"ClientAlertConfigurationRepository::setClientAlertRecipients started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.clientAlertConfigurationId?e.safeQuery((async e=>{const i=e.getRepository(he);return!!await i.findOne({where:{id:t.filters.clientAlertConfigurationId,clientId:t.filters.clientId}})&&(!!await ua(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.globalAccountConfig,t.values.userIdRecipients,t.values.roleIdRecipients)&&await ca(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.externalRecipients))}),"ClientAlertConfigurationRepository::setClientAlertRecipients"):(i.error("ClientAlertConfigurationRepository::setClientAlertRecipients - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::setClientAlertRecipients result"),i}async isUserAllowedForAlertConfig(e){this.logger.trace(e,"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.clientAlertConfigurationId||!t?.userId)return i.warn({params:t},"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig - missing required parameters"),!1;const r=na(t?.userId);return r?e.safeQuery((async e=>{const i=e.getRepository(ve),a=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!a?.length)return!1;const n=a?.find((e=>null==e.userId&&null==e.roleId));if(n)return!0;const o=a?.filter((e=>null!=e.userId)),s=o?.find((e=>e.userId.equals(r)));if(s)return!0;const l=a.filter((e=>null!=e.roleId)).map((e=>e.roleId));if(l.length>0){const t=e.getRepository(De),i=await t.createQueryBuilder("securityRole").where("securityRole.userId = :userId",{userId:r}).getMany();for(const e of i)if(l.includes(e.securityRoleId))return!0}return!1}),"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig"):(i.warn({userId:t?.userId},"UserConfigurationsRepository::isUserAllowedForAlertConfig - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::isUserAllowedForAlertConfig result"),i}async getUsersDataForClientAlertConfig(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientAlertConfigurationId&&t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(ve),r=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!r?.length)return[];const a=r?.find((e=>null==e.userId&&null==e.roleId));if(a)return(await e.getRepository(we).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A'",{clientId:t.clientId}).getMany()).map((e=>({userId:oa(e.id),email:e.email,phone:e.telephone})));const n=new Set;r.filter((e=>null!=e.userId)).forEach((e=>{n.add(e.userId)}));const o=r.filter((e=>null!=e.roleId));o.length>0&&(await e.getRepository(De).createQueryBuilder("securityRole").where("securityRole.clientId = :clientId",{clientId:t.clientId}).andWhere("securityRole.securityRoleId IN (:...roleIds)",{roleIds:o.map((e=>e.roleId))}).select("securityRole.userId as userId").getRawMany()).map((e=>e.userId)).forEach((e=>{n.add(e)}));const s=[],l=Array.from(n);if(l?.length){const i=await e.getRepository(we).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A' and user.id in (:...userIds)",{clientId:t.clientId,userIds:l}).getMany();s.push(...i.map((e=>({userId:oa(e.id),email:e.email,phone:e.telephone}))))}return s}),"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig"):(i.warn({params:t},"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace({result:i},"ClientAlertConfigurationRepository::getUsersDataForClientAlertConfig result"),i}},ClientsRepository:class extends ra{async getClient(e){this.logger.trace(e,"ClientsRepository::getClient started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId&&!t.filters.email)return i.warn({params:t},"ClientsRepository::getClient - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(me).createQueryBuilder("client").comment("test=value");return i&&r.setQueryRunner(i),t.projectionOptions?.withCustomerAttribute&&(r=r.leftJoinAndSelect("client.customerAttribute","customerAttribute")),t.projectionOptions?.withOrganization&&(r=r.leftJoinAndSelect("client.organization","organization")),t.filters.clientId&&(r=r.where("client.id = :id",{id:t.filters.clientId})),t.filters.email&&(r=r.andWhere("LOWER(client.email) = LOWER(:email)",{email:t.filters.email})),await r.leftJoinAndSelect("client.clientType","clientType").select().getOne()}),"ClientsRepository::getClient",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClient result"),i}async getClients(e){this.logger.trace(e,"ClientsRepository::getClients started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.email)return i.warn({params:t},"ClientsRepository::getClients - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(me).createQueryBuilder("client").where("LOWER(client.email) = LOWER(:email)",{email:t.filters.email});return i&&r.setQueryRunner(i),t.projectionOptions?.withCustomerAttribute&&(r=r.leftJoinAndSelect("client.customerAttribute","customerAttribute")),t.projectionOptions?.withOrganization&&(r=r.leftJoinAndSelect("client.organization","organization")),await r.leftJoinAndSelect("client.clientType","clientType").select().getMany()}),"ClientsRepository::getClients",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClients result"),i}async createClient(e){this.logger.trace(e,"ClientsRepository::createClient started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.name&&t?.email&&t?.uuid?e.safeQuery((async e=>{const i=e.getRepository(me),r=new Date,a={id:t.clientId,name:t.name,email:t.email,clientTypeId:t.clientTypeId??b.b2c,createdAt:r,modifiedAt:r,createdBy:0,modifiedBy:0,uuid:na(t.uuid),dataSourceTypeId:t.dataSourceTypeId,sievaUserName:t.sievaUserName,sievaBatchId:t.sievaBatchId,salesforceId:t.salesforceId,accumaticaId:t.accumaticaId,expirationDate:t.expirationDate,useType:t.useType,btCustomerId:t.btCustomerId,activationCampaign:t.activationCampaign,organizationId:t.organizationId};return await i.save(a)}),"ClientsRepository::createClient"):(i.warn({params:t},"ClientsRepository::createClient - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClient result"),i}async updateClient(e){this.logger.trace(e,"ClientsRepository::updateClient started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&(t?.values?.name||t?.values?.uuid||t?.values?.email||t?.values?.clientTypeId||t?.values?.dataSourceTypeId||t?.values?.sievaUserName||t?.values?.sievaBatchId||t?.values?.salesforceId||t?.values?.accumaticaId||t?.values?.expirationDate||t?.values?.useType||t?.values?.btCustomerId||t?.values?.activationCampaign||t?.values?.organizationId)?e.safeQuery((async e=>{const i=e.getRepository(me),r=new Date;return(await i.createQueryBuilder().update(me).set({name:t.values.name,uuid:t.values.uuid?na(t.values.uuid):void 0,email:t.values.email,clientTypeId:t.values.clientTypeId,dataSourceTypeId:t.values.dataSourceTypeId,salesforceId:t.values.salesforceId,accumaticaId:t.values.accumaticaId,expirationDate:t.values.expirationDate,useType:t.values.useType,btCustomerId:t.values.btCustomerId,activationCampaign:t.values.activationCampaign,organizationId:t.values.organizationId,modifiedAt:r}).where("id = :id",{id:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateClient"):(i.warn({params:t},"ClientsRepository::updateClient - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateClient result"),i}async deleteClientAndConfigurations(e){this.logger.trace(e,"ClientsRepository::deleteClientAndConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientsRepository::deleteClientAndConfiguration - missing required parameters"),!1;await e.connect();const r=e.createQueryRunner();try{await r.startTransaction(),await r.manager.delete(rt,t.filters.clientId);const e=await r.manager.delete(me,t.filters.clientId);return await r.commitTransaction(),e.affected>0}catch(e){throw await r.rollbackTransaction(),i.error({error:e},"ClientsRepository::deleteClientAndConfigurations error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::deleteClientAndConfigurations result"),i}async getClientConfiguration(e){this.logger.trace(e,"ClientsRepository::getClientConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(va(t,Mi))return i.warn({params:t},"ClientsRepository::getClientConfiguration - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(rt).createQueryBuilder("clientConfiguration");return t.filters.clientId&&r.andWhere("clientConfiguration.clientId = :clientId",{clientId:t.filters.clientId}),t.filters.ssoDomain&&r.andWhere("clientConfiguration.ssoDomain = :ssoDomain",{ssoDomain:t.filters.ssoDomain}),i&&r.setQueryRunner(i),await r.getOne()}),"ClientsRepository::getClientConfiguration",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getClientConfiguration result"),i}async createClientConfiguration(e){this.logger.trace(e,"ClientsRepository::createClientConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(rt),r={clientId:t.clientId,movementTripThreshold:t.movementTripThreshold,stopTripThreshold:t.stopTripThreshold,mapUpdateMode:t.mapUpdateMode,maxUsersAllowed:t.maxUsersAllowed,ssoDomain:t.ssoDomain,ssoMetadata:t.ssoMetadata,assetProfileStatusLabels:t.assetProfileStatusLabels};return await i.save(r)}),"ClientsRepository::createClientConfiguration"):(i.warn({params:t},"ClientsRepository::createClientConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClientConfiguration result"),i}async updateClientConfiguration(e){this.logger.trace(e,"ClientsRepository::updateClientConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Oi)||va(t,xi)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(rt);return(await i.createQueryBuilder().update(rt).set({movementTripThreshold:t.values.movementTripThreshold,stopTripThreshold:t.values.stopTripThreshold,mapUpdateMode:t.values.mapUpdateMode,maxUsersAllowed:t.values.maxUsersAllowed,ssoDomain:t.values.ssoDomain,ssoMetadata:t.values.ssoMetadata,assetProfileStatusLabels:t.values.assetProfileStatusLabels}).where("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateClientConfiguration"))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateClientConfiguration result"),i}async createCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::createCustomerAttribute started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,ki)||va(t,Li)?(i.warn({params:t},"ClientsRepository::createCustomerAttribute - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(se),r={clientId:t.clientId,enterprise:t.enterprise,maintenanceModule:t.maintenanceModule,billingMethod:t.billingMethod,customerSegment:t.customerSegment};return await i.save(r)}),"ClientsRepository::createCustomerAttribute"))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createCustomerAttribute result"),i}async updateCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::updateCustomerAttribute started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Fi)||va(t,Qi)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(rt);return(await i.createQueryBuilder().update(se).set({enterprise:t.values.enterprise,maintenanceModule:t.values.maintenanceModule,billingMethod:t.values.billingMethod,customerSegment:t.values.customerSegment}).where("clientId = :clientId",{clientId:t.filters.clientId}).execute()).affected>0}),"ClientsRepository::updateCustomerAttribute"))(t,e,this.logger);return this.logger.trace({result:i},"ClientsRepository::updateCustomerAttribute result"),i}async getCustomerAttribute(e){this.logger.trace(e,"ClientsRepository::getCustomerAttribute started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return i.warn({params:t},"ClientsRepository::getCustomerAttribute - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(se).createQueryBuilder("customerAttribute").where("customerAttribute.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getOne()}),"ClientsRepository::getCustomerAttribute",r)})(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::getCustomerAttribute result"),i}async getClientIngestorConfigurations(e){this.logger.trace(e,"ClientsRepository::getClientIngestorConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(nt).createQueryBuilder("clientIngestorConfiguration");return t.filters.clientId&&r.andWhere("clientIngestorConfiguration.clientId = :clientId",{clientId:t.filters.clientId}),t.filters.id&&r.andWhere("clientIngestorConfiguration.id = :id",{id:t.filters.id}),null!=t.filters.isEnabled&&r.andWhere("clientIngestorConfiguration.isEnabled = :isEnabled",{isEnabled:t.filters.isEnabled}),i&&r.setQueryRunner(i),await r.getMany()}),"ClientsRepository::getClientIngestorConfigurations",i)})(t,e);return this.logger.trace(i,"ClientsRepository::getClientIngestorConfigurations result"),i}async createClientIngestorConfiguration(e){this.logger.trace(e,"ClientsRepository::createClientIngestorConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,qi)?(i.warn({params:t},"ClientsRepository::createClientIngestorConfiguration - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(nt),r={clientId:t.clientId,userActivationId:t.userActivationId,tokenUrl:t.tokenUrl,fleetUrl:t.fleetUrl,requestParams:t.requestParams};return await i.save(r)}),"ClientsRepository::createClientIngestorConfiguration"))(t,e,this.logger);return this.logger.trace(i,"ClientsRepository::createClientIngestorConfiguration result"),i}},CountriesRepository:class extends ra{async getCountry(e){this.logger.trace(e,"CountriesRepository::getCountry started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await ha(t,e,this.logger);return this.logger.trace(i,"CountriesRepository::getCountry result"),i}async getCountries(e){this.logger.trace(e,"CountriesRepository::getCountries started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ge).createQueryBuilder("country");return i&&r.setQueryRunner(i),t?.filters?.idList?.length&&(r=r.where("country.id IN (:...idList)",{idList:t.filters.idList})),await r.getMany()}),"CountriesRepository::getCountries",i)})(t,e);return this.logger.trace(i,"CountriesRepository::getCountries result"),i}},DataExportsRepository:class extends ra{async createDataExports(e){this.logger.trace(e,"DataExportsRepository::createDataExports started with params");const i=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),r=await(async(e,i,r)=>!i?.dataExports?.length||i.dataExports.some((e=>!e.clientId))?(r.warn({params:i},"DataExportsRepository::createDataExports - missing required parameters"),null):e.safeQuery((async e=>{const r=e.getRepository(ot),a=new Date,n=i.dataExports.map((e=>{let i=na(e.id);return null===i&&(i=na(t.v4())),{id:i,clientId:e.clientId,imei:e.imei,createdAt:a,dataType:e.dataType,status:e.status,parameters:e.parameters,exportLocation:e.exportLocation,downloadLink:e.downloadLink}}));return await r.save(n)}),"DataExportsRepository::createDataExports"))(i,e,this.logger);return this.logger.trace({result:r},"DataExportsRepository::createDataExports result"),r}async getDataExports(e){this.logger.trace(e,"DataExportsRepository::getDataExports started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filter?.id&&!t?.filter?.clientId)return i.warn({params:t},"DataExportsRepository::getDataExports - missing required parameters"),null;const r=na(t.filter.id);return r?.length?e.safeQuery((async(e,i)=>{let a=e.getRepository(ot).createQueryBuilder("dataExport");i&&a.setQueryRunner(i),t?.filter?.id&&(a=a.where("dataExport.id = :id",{id:r})),t?.filter?.clientId&&(a=a.andWhere("dataExport.clientId = :clientId",{clientId:t.filter.clientId})),t?.projectionOptions?.withClient&&(a=a.leftJoinAndSelect("dataExport.client","client"));const n=t.pagingOptions?.pageSize??100,o=t.pagingOptions?.pageIndex??0;let s,l;return a=a.limit(n).offset(n*o),t?.projectionOptions?.withTotalCount?[s,l]=await a.getManyAndCount():s=await a.getMany(),{dataExports:s,totalCount:l}}),"DataExportsRepository::getDataExports"):(i.warn({params:t},"DataExportsRepository::getDataExports - id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DataExportsRepository::getDataExports result"),i}async updateDataExport(e){this.logger.trace(e,"DataExportsRepository::updateDataExport started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filter?.id||Object.values(t.values).every((e=>null==e)))return i.warn({params:t},"DataExportsRepository::updateDataExport - missing required parameters"),null;const r=na(t.filter.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(ot),a=await i.createQueryBuilder().update(ot).set({...t.values}).where("id = :id",{id:r}).execute();return a?.affected>0}),"DataExportsRepository::updateDataExport"):(i.warn({params:t},"DataExportsRepository::updateDataExport - id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DataExportsRepository::updateDataExport result"),i}},DeactivationsRepository:class extends ra{async getDeactivationReasons(e){this.logger.trace(e,"DeactivationsRepository::getDeactivationReasons started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.code&&null==t?.filters?.customerVisible)return i.warn({params:t},"DeactivationsRepository::getDeactivationReasons - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(dt).createQueryBuilder("deactivationReason");return i&&r.setQueryRunner(i),t.filters.code&&(r=r.andWhere("deactivationReason.code = :code",{code:t.filters.code})),null!=t.filters.customerVisible&&(r=r.andWhere("deactivationReason.customerVisible = :customerVisible",{customerVisible:t.filters.customerVisible})),r=r.orderBy("deactivationReason.id"),await r.getMany()}),"DeactivationsRepository::getDeactivationReasons",r)})(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::getDeactivationReasons result"),i}async getLatestDeactivationByImei(e){this.logger.trace(e,"DeactivationsRepository::getLatestDeactivationByImei started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DeactivationsRepository::getLatestDeactivationByImei - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(lt).createQueryBuilder("deactivation").where("deactivation.imei = :imei",{imei:t.filters.imei}).orderBy("deactivation.createdAt","DESC").limit(1);return i&&r.setQueryRunner(i),await r.getOne()}),"DeactivationsRepository::getLatestDeactivationByImei",r)})(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::getLatestDeactivationByImei result"),i}async createDeactivation(e){this.logger.trace(e,"DeactivationsRepository::createDeactivation started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imei&&t?.clientId&&t?.createdBy?e.safeQuery((async e=>{const i=e.getRepository(lt),r=new Date,a={...t,createdAt:r};return await i.save(a)}),"DeactivationsRepository::createDeactivation"):(i.warn({params:t},"DeactivationsRepository::createDeactivation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DeactivationsRepository::createDeactivation result"),i}},DeviceBehaviorsRepository:class extends ra{async getDeviceBehaviors(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviors started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.status||!t?.filters?.imeiList?.length||!t?.filters?.deviceTypeIdList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviors - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ut).createQueryBuilder("deviceBehavior");return i&&r.setQueryRunner(i),r=r.andWhere("deviceBehavior.status = :status",{status:t.filters.status}),r=r.andWhere("(deviceBehavior.imei IN (:...imeiList) OR deviceBehavior.imei IS NULL OR deviceBehavior.imei = '')",{imeiList:t.filters.imeiList}),r=r.andWhere("deviceBehavior.deviceTypeId IN (:...deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIdList}),r=r.andWhere("(deviceBehavior.stage IS NULL OR deviceBehavior.stage = '' OR deviceBehavior.stage = :stage)",{stage:t.filters.stage}),r=t.filters.clientId?r.andWhere("(deviceBehavior.clientId IS NULL OR deviceBehavior.clientId <= 0 OR deviceBehavior.clientId = :clientId)",{clientId:t.filters.clientId}):r.andWhere("(deviceBehavior.clientId IS NULL OR deviceBehavior.clientId <= 0)"),t.filters.type&&(r=r.andWhere("deviceBehavior.type = :type",{type:t.filters.type})),r=r.orderBy("deviceBehavior.ordinalPosition"),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviors",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviors result"),i}async getDeviceBehaviorsByIds(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviorsByIds started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.deviceBehaviorIdList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviorsByIds - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ut).createQueryBuilder("deviceBehavior");return i&&r.setQueryRunner(i),r=r.andWhere("deviceBehavior.id IN (:...deviceBehaviorIdList)",{deviceBehaviorIdList:t.filters.deviceBehaviorIdList}),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviorsByIds",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviorsByIds result"),i}async getDeviceBehaviorTasks(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviorTasks started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskId&&!t?.filters?.imeiList?.length)return i.warn({params:t},"DeviceBehaviorsRepository::getDeviceBehaviorTasks - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Si).createQueryBuilder("userDeviceBehaviorTask");if(i&&r.setQueryRunner(i),t.filters.taskId){const e=na(t?.filters?.taskId);r=r.andWhere("userDeviceBehaviorTask.id = :taskId",{taskId:e})}return t.filters.imeiList?.length&&(r=r.andWhere("userDeviceBehaviorTask.imei IN (:...imeiList)",{imeiList:t.filters.imeiList})),t.filters.status&&(r=r.andWhere("userDeviceBehaviorTask.status = :status",{status:t.filters.status})),t.filters.deviceBehaviorIdList?.length&&(r=r.andWhere("userDeviceBehaviorTask.deviceBehaviorId IN (:...deviceBehaviorIdList)",{deviceBehaviorIdList:t.filters.deviceBehaviorIdList})),r=r.orderBy("userDeviceBehaviorTask.modifiedAt","DESC"),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"DeviceBehaviorsRepository::getDeviceBehaviorTasks",r)})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::getDeviceBehaviorTasks result"),i}async createDeviceBehaviorTask(e){this.logger.trace(e,"DeviceBehaviorsRepository::createDeviceBehaviorTasks started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.taskId&&t?.deviceBehaviorId&&t?.clientId&&t?.userId&&t?.imei&&t?.behaviorName&&t?.status))return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - missing required parameters"),null;const r=na(t?.taskId);if(!r?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - taskId should be a valid UUID"),null;const a=na(t?.userId);if(!a?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - user id should be a valid UUID"),null;const n=na(t?.commandTaskId);return t.commandTaskId&&!n?(i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - command task id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(Si),o=new Date,s={id:r,deviceBehaviorId:t.deviceBehaviorId,clientId:t.clientId,userId:a,imei:t.imei,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,extraParams:t.extraParams,commandTaskId:n,createdAt:o,modifiedAt:o};return await i.save(s)}),"DeviceBehaviorsRepository::createDeviceBehaviorTask")})(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::createDeviceBehaviorTasks result"),i}async updateDeviceBehaviorTask(e){this.logger.trace(e,"DeviceBehaviorsRepository::updateDeviceBehaviorTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskId||!t?.values?.status)return i.warn({params:t},"DeviceBehaviorsRepository::updateDeviceBehaviorTask - missing required parameters"),null;const r=na(t?.filters.taskId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Si),a=new Date;let n=i.createQueryBuilder().update(Si).set({status:t.values.status,modifiedAt:a});return n=n.where("id = :id",{id:r}),(await n.execute()).affected>0}),"DeviceBehaviorsRepository::updateDeviceBehaviorTask"):(i.warn({params:t},"DeviceBehaviorsRepository::updateDeviceBehaviorTask - taskId should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"DeviceBehaviorsRepository::updateDeviceBehaviorTask result"),i}async upsertDeviceBehavior(e){this.logger.trace(e,"DeviceBehaviorsRepository::upsertDeviceBehavior started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId&&t?.name&&t?.description&&t?.status&&t?.behaviorName?e.safeQuery((async e=>{const i=e.getRepository(ut),r={...t,ordinalPosition:t.ordinalPosition||1,blocking:t.blocking??!0};return await i.save(r)}),"DeviceBehaviorsRepository::upsertDeviceBehavior"):(i.warn({params:t},"DeviceBehaviorsRepository::upsertDeviceBehavior - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DeviceBehaviorsRepository::upsertDeviceBehavior result"),i}},DevicePairingsRepository:class extends ra{async getDevicePairings(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairings started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.imeiMain||t?.filters?.imeiSecondary||t?.filters?.btmacMain||t?.filters?.btmacSecondary))return i.warn({params:t},"DevicePairingsRepository::getDevicePairings missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(St).createQueryBuilder("devicePairing");return i&&r.setQueryRunner(i),t.filters.imeiMain&&(r=r.where("devicePairing.imeiMain = :imeiMain",{imeiMain:t.filters.imeiMain})),t.filters.imeiSecondary&&(r=r.andWhere("devicePairing.imeiSecondary = :imeiSecondary",{imeiSecondary:t.filters.imeiSecondary})),t.filters.btmacMain&&(r=r.andWhere("devicePairing.btmacMain = :btmacMain",{btmacMain:t.filters.btmacMain})),t.filters.btmacSecondary&&(r=r.andWhere("devicePairing.btmacSecondary = :btmacSecondary",{btmacSecondary:t.filters.btmacSecondary})),await r.getMany()}),"DevicePairingsRepository::getDevicePairings",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairings result"),i}async getDevicePairingsByImei(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairingsByImei started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicePairingsRepository::getDevicePairingsByImei missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(St).createQueryBuilder("devicePairing").where("devicePairing.imeiMain = :imeiMain",{imeiMain:t.filters.imei}).orWhere("devicePairing.imeiSecondary = :imeiSecondary",{imeiSecondary:t.filters.imei});return i&&r.setQueryRunner(i),await r.getMany()}),"DevicePairingsRepository::getDevicePairingsByImei",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairingsByImei result"),i}async getDevicePairingsByClientId(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairingsByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicePairingsRepository::getDevicePairingsByClientId missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(St).createQueryBuilder("devicePairing").innerJoin(ue,"device","devicePairing.imeiMain = device.imei or devicePairing.imeiSecondary = device.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"DevicePairingsRepository::getDevicePairingsByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::getDevicePairingsByClientId result"),i}async createDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::createDevicePairing started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.imeiMain&&t?.imeiSecondary&&t?.btmacMain&&t?.btmacSecondary?e.safeQuery((async e=>{const i=e.getRepository(St),r=new Date,a={...t,createdAt:r,modifiedAt:r};return await i.save(a)}),"DevicePairingsRepository::createDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::createDevicePairing missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"DevicePairingsRepository::createDevicePairing result"),i}async updateDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::updateDevicePairing started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.imeiMain||t?.values?.imeiSecondary||t?.values?.btmacMain||t?.values?.btmacSecondary||t?.values?.connectionType||t?.values?.pairingMode||t?.values?.mainDeviceStatus||t?.values?.secondaryDeviceStatus||t?.values?.notes)?e.safeQuery((async e=>{const i=e.getRepository(St),r=new Date,a=i.createQueryBuilder().update(St).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await a.execute()).affected>0}),"DevicePairingsRepository::updateDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::updateDevicePairing missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"DevicePairingsRepository::updateDevicePairing result"),i}async deleteDevicePairing(e){this.logger.trace(e,"DevicePairingsRepository::deleteDevicePairing started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(St).createQueryBuilder().delete().where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"DevicePairingsRepository::deleteDevicePairing"):(i.warn({params:t},"DevicePairingsRepository::deleteDevicePairing - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"DevicePairingsRepository::deleteDevicePairing result"),i}},DeviceStatusRepository:class extends aa{async getDeviceStatuses(e){this.logger.trace(e,"DeviceStatusRepository::getDeviceStatus started with params"),(e=>{e?.projectionOptions?.deviceStatusProperties?.length&&(e?.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")&&(e?.projectionOptions?.deviceStatusProperties?.push("deviceTypeId"),e?.projectionOptions?.deviceStatusProperties?.push("created"),e?.projectionOptions?.deviceStatusProperties?.push("speed"),e?.projectionOptions?.deviceStatusProperties?.push("gpsUTCTime"),e?.projectionOptions?.deviceStatusProperties?.push("sendTime"),e?.projectionOptions?.deviceStatusProperties?.push("batteryPercentage")),e?.projectionOptions?.deviceStatusProperties?.includes("isOnline")&&(e?.projectionOptions?.deviceStatusProperties?.push("sendTime"),e?.projectionOptions?.deviceStatusProperties?.push("restFrequency")))})(e);const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.clientId)return i.warn({params:t},"DeviceStatusRepository::getDevice missing required parameters"),[];const r=e.createQueryRunnerFromParams(t),a=await e.safeQuery2((async(e,i)=>{let r=e.getRepository(Dt).createQueryBuilder("deviceStatus");return i&&r.setQueryRunner(i),t.filters.imeiList?.length&&(r=r.andWhere("deviceStatus.imei IN (:...imeis)",{imeis:t.filters.imeiList})),t.filters.clientId&&(r=r.andWhere("deviceStatus.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.minSendTime&&(r=r.andWhere("deviceStatus.sendTime > :sendTimeMin",{sendTimeMin:t.filters.minSendTime})),(t.filters.deviceStatus||t.projectionOptions?.withDevice||t.projectionOptions?.withOnlineStatus||t.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")||t.projectionOptions?.withConnectionStatus)&&(r=r.leftJoinAndMapOne("deviceStatus.device",ue,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId"),t.projectionOptions?.withOnlineStatus&&(r=r.leftJoinAndMapOne("device.deviceType",de,"deviceType","device.deviceTypeId = deviceType.id")),t.filters.deviceStatus&&(r=r.andWhere("device.status = :status",{status:t.filters.deviceStatus}))),t.projectionOptions?.withClient&&(r=r.leftJoinAndSelect("deviceStatus.client","client")),(t.projectionOptions?.withClientDeviceSettings||t.projectionOptions?.deviceStatusProperties?.includes("connectionStatus")||t.projectionOptions?.withConnectionStatus)&&(r=r.leftJoinAndMapOne("deviceStatus.clientDeviceSetting",at,"clientDeviceSetting","deviceStatus.imei = clientDeviceSetting.imei and deviceStatus.clientId = clientDeviceSetting.clientId")),r=r.limit(t.pagingOptions?.limit??100).offset(t.pagingOptions?.offset??0),await r.getMany()}),"DeviceStatusRepository::getDevice",r);return a.forEach((e=>{if(t.projectionOptions?.deviceStatusProperties?.length)for(const i in e.data)t.projectionOptions?.deviceStatusProperties?.some((e=>e==i))||delete e.data[i];if(t.projectionOptions?.deviceProperties?.length)for(const i in e.device)t.projectionOptions?.deviceProperties?.some((e=>e==i))||delete e.device[i];if(t.projectionOptions?.clientProperties?.length)for(const i in e.client)t.projectionOptions?.clientProperties?.some((e=>e==i))||delete e.client[i];if(t.projectionOptions?.clientDeviceSettingsProperties?.length)for(const i in e.clientDeviceSetting)t.projectionOptions?.clientDeviceSettingsProperties?.some((e=>e==i))||delete e.clientDeviceSetting[i]})),a})(this.dataSource,e,this.logger);return t?.forEach((t=>Ua({logger:this.logger,deviceStatus:t,withConnectionStatusInfo:e.projectionOptions?.withConnectionStatus||e.projectionOptions?.deviceStatusProperties?.includes("connectionStatus"),withOnlineStatus:e.projectionOptions?.withOnlineStatus||e.projectionOptions?.deviceStatusProperties?.includes("isOnline")}))),this.logger.trace(t,"DeviceStatusRepository::getDeviceStatus result"),t}async getDeviceStatusesCount(e){this.logger.trace(e,"DeviceStatusRepository::getDeviceStatusesCount started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.clientId)return i.warn({params:t},"DeviceStatusRepository::getDeviceStatusesCount missing required parameters"),0;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(Dt).createQueryBuilder("deviceStatus");return i&&r.setQueryRunner(i),t.filters.imeiList?.length&&(r=r.andWhere("deviceStatus.imei IN (:...imeis)",{imeis:t.filters.imeiList})),t.filters.clientId&&(r=r.andWhere("deviceStatus.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.minSendTime&&(r=r.andWhere("deviceStatus.sendTime > :sendTimeMin",{sendTimeMin:t.filters.minSendTime})),t.filters.deviceStatus&&(r=r.leftJoin(ue,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId").andWhere("device.status = :status",{status:t.filters.deviceStatus})),await r.getCount()}),"DeviceStatusRepository::getDeviceStatusesCount",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DeviceStatusRepository::getDeviceStatusesCount result"),t}async upsertDeviceStatuses(e){this.logger.trace(e,"DeviceStatusRepository::upsertDeviceStatus started with params");const t=await(async(e,t,i)=>t?.items?.length?e.safeQuery2((async e=>{const i=e.getRepository(Dt),r=t.items.map((e=>{const t={clientId:e.clientId,imei:e.imei,created:new Date(e.created),sendTime:new Date(e.sendTime),data:e};return t.created.setMilliseconds(0),t.sendTime.setMilliseconds(0),t})),a=r.map((()=>"(?, ?, ?, ?, ?)")).join(", "),n=r.reduce(((e,t)=>(e.push(t.imei),e.push(t.clientId),e.push(t.created),e.push(t.sendTime),e.push(JSON.stringify(t.data)),e)),[]),o="VALUES(sendTime) >= sendTime",s=`\n INSERT INTO deviceStatus (imei, clientId, created, sendTime, \`data\`)\n VALUES ${a}\n ON DUPLICATE KEY UPDATE \n clientId = CASE WHEN ${o} THEN VALUES(clientId) ELSE clientId END, \n \`data\` = CASE WHEN ${o} THEN VALUES(\`data\`) ELSE \`data\` END,\n created = CASE WHEN ${o} THEN VALUES(created) ELSE created END,\n sendTime = CASE WHEN ${o} THEN VALUES(sendTime) ELSE sendTime END;`,l=await i.query(s,n);return l?.affectedRows>0}),"DeviceStatusRepository::upsertDeviceStatus"):(i.warn({params:t},"DeviceStatusRepository::upsertDeviceStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DeviceStatusRepository::upsertDeviceStatus result"),t}},DeviceTypeFeatureRepository:class extends ra{async bulkCreateDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ya(t.items,Ea)?(i.warn({params:t},"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(Tt),r=t.items.map((e=>({deviceTypeId:e.deviceTypeId,featureKey:e.featureKey,value:e.value})));return await i.save(r)??[]}),"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature error"))(t,e,this.logger);return this.logger.trace(i,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature result"),i}async getDeviceTypeFeatures(e){this.logger.trace(e,"DeviceTypeFeatureRepository::getDeviceTypeFeatures started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Tt).createQueryBuilder("deviceTypeFeature");i&&r.setQueryRunner(i),t?.filters?.deviceTypeIds?.length&&r.where("deviceTypeFeature.deviceTypeId IN (:deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIds}),t?.filters?.featureKeys?.length&&r.andWhere("deviceTypeFeature.featureKey IN (:featureKeyList)",{featureKeyList:t.filters.featureKeys});const a=await r.getMany();return a?.length?a:[]}),"FeatureRepository::getFeatures error",i)})(t,e);return this.logger.trace(i,"DeviceTypeFeatureRepository::getDeviceTypeFeatures result"),i}async deleteDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::deleteDeviceTypeFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>va(t.filters,Pa)?(i.warn({params:t},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Tt);return(await i.createQueryBuilder().delete().where("COALESCE(:deviceTypeId, deviceTypeId) = deviceTypeId AND COALESCE(:featureKey, featureKey) = featureKey",{deviceTypeId:t.filters.deviceTypeId,featureKey:t.filters.featureKey}).execute()).affected>0}),"FeatureRepository::deleteFeature"))(t,e,this.logger);return this.logger.trace({result:i},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature result"),i}},DevicesRepository:class extends aa{async getDevice(e){this.logger.trace(e,"DevicesRepository::getDevice started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei&&!t?.filters?.id)return i.warn({params:t},"DevicesRepository::getDevice missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(ue).createQueryBuilder("device");return i&&r.setQueryRunner(i),t.filters.id&&(r=r.where("device.id = :id",{id:t.filters.id})),t.filters.imei&&(r=r.andWhere("device.imei = :imei",{imei:t.filters.imei})),t.projectionOptions.withDeviceType&&(r=r.leftJoinAndSelect("device.deviceType","deviceType")),t.projectionOptions.withIccidCarrier&&(r=r.leftJoinAndMapOne("device.iccidCarrier",Lt,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",ei,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",at,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",le,"customIcon","device.customIconId = customIcon.id")),await r.getOne()}),"DevicesRepository::getDevice",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevice result"),t}async getDevices(e){this.logger.trace(e,"DevicesRepository::getDevices started with params");const t=await(async(e,t,i)=>{if(!(t?.filters?.deviceTypeId||t?.filters?.clientId||t?.filters?.imeiList?.length||t?.filters?.tagIdList?.length||t?.filters?.status))return i.warn({params:t},"DevicesRepository::getDevices missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(ue).createQueryBuilder("device");if(i&&r.setQueryRunner(i),t.filters.clientId&&(r=r.where("device.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.deviceTypeId&&(r=r.andWhere("device.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),t.filters.status&&(r=r.andWhere("device.status = :status",{status:t.filters.status})),t.filters.imeiList?.length&&(r=r.andWhere("device.imei IN (:...imeiList)",{imeiList:t.filters.imeiList})),t.filters.tagIdList?.length&&(r=r.innerJoin(Ut,"entityTag","entityTag.entityId = device.id \n AND entityTag.entityType = 'Device'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList})),t.projectionOptions?.withDeviceType&&(r=r.leftJoinAndSelect("device.deviceType","deviceType")),t.projectionOptions?.withIccidCarrier&&(r=r.leftJoinAndMapOne("device.iccidCarrier",Lt,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",ei,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions?.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",at,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions?.withDevicePairing&&(r=r.leftJoinAndMapOne("device.devicePairing",St,"devicePairing","device.imei = devicePairing.imeiMain or device.imei = devicePairing.imeiSecondary")),t.projectionOptions?.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",le,"customIcon","device.customIconId = customIcon.id")),t?.sortOptions?.sortField&&(r=r.orderBy(`device.${t.sortOptions.sortField}`,t?.sortOptions?.sortOrder??"ASC")),t?.pagingOptions?.pageIndex){const e=t?.pagingOptions?.pageSize??1e3,i=(t?.pagingOptions?.pageIndex??1)-1;r=r.offset(i*e),r=r.limit(e)}let a=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Ut);a=await Promise.all(a.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Device"}).innerJoin(ni,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return a}),"DevicesRepository::getDevices",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevices result"),t}async allImeisAreActiveForClient(e){this.logger.trace(e,"DevicesRepository::allImeisAreActiveForClient started with params");const t=await(async(e,t,i)=>{if(!t?.clientId&&!t?.imeiList?.length)return i.warn({params:t},"DevicesRepository::allImeisAreActiveForClient missing required parameters"),!1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ue).createQueryBuilder("device").where("device.imei IN (:...imeiList)",{imeiList:t.imeiList}).andWhere("device.clientId = :clientId",{clientId:t.clientId}).andWhere("device.status = :status",{status:h.Active});return i&&r.setQueryRunner(i),await r.getCount()===t.imeiList.length}),"DevicesRepository::getDevicesImeis",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::allImeisAreActiveForClient result"),t}async getFilteredImeisWithStatus(e){this.logger.trace(e,"DevicesRepository::getFilteredImeisWithStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length&&!t?.filters?.status)return i.warn({params:t},"DevicesRepository::getFilteredImeisWithStatus missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ue).createQueryBuilder("device").where("imei IN (:...imeiList)",{imeiList:t.filters.imeiList}).andWhere("status = :status",{status:t.filters.status});return i&&r.setQueryRunner(i),(await r.select("imei").getRawMany()).map((e=>e.imei))}),"DevicesRepository::getFilteredImeisWithStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getFilteredImeisWithStatus result"),t}async createDevice(e){this.logger.trace(e,"DevicesRepository::createDevice started with params");const t=await(async(e,t,i)=>{if(!t?.imei||!t?.clientId||0===t?.clientId||!t?.deviceTypeId)return i.warn({params:t},"DevicesRepository::createDevice missing required parameters"),null;const r=t.identifier||t.imei,a=await Ra(e,{deviceTypeId:t.deviceTypeId,deviceIdentifier:r},i);return a?e.safeQuery2((async e=>{const i=e.getRepository(ue),n=new Date,o={...t,identifier:r,identifierKey:a,modifiedBy:t.createdBy,createdAt:n,modifiedAt:n};return await i.save(o)}),"DevicesRepository::createDevice"):null})(this.dataSource,e,this.logger);if(e.assignedTo){const t=await this.addDeviceChangesHistory({assignedTo:e.assignedTo,clientId:e.clientId,imei:e.imei,action:"create"});this.logger.trace({deviceChangesHistory:t},"DevicesRepository::createDevice deviceChangesHistory")}return this.logger.trace(t,"DevicesRepository::createDevice result"),t}async updateDevice(e){this.logger.trace(e,"DevicesRepository::updateDevice started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;if(va(t.values,Ji))return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;let r;if(t.values.deviceTypeId){const a=t.filters.imei;if(r=await Ra(e,{deviceTypeId:t.values.deviceTypeId,deviceIdentifier:a},i),!r)return!1}return e.safeQuery2((async e=>{const i=e.getRepository(ue),a=new Date;let n=i.createQueryBuilder().update(ue).set({...t.values,identifierKey:r,modifiedAt:a}).where("imei = :imei",{imei:t.filters.imei});return t.filters.status&&(n=n.andWhere("status = :status",{status:t.filters.status})),(await n.execute()).affected>0}),"DevicesRepository::updateDevice")})(this.dataSource,e,this.logger);if(this.logger.trace({result:t},"DevicesRepository::updateDevice result"),e.values.assignedTo)if(e.filters.clientId){const t=await this.addDeviceChangesHistory({clientId:e.filters.clientId,imei:e.filters.imei,assignedTo:e.values.assignedTo,action:"update"});this.logger.trace({deviceChangesHistory:t},"DevicesRepository::updateDevice deviceChangesHistory")}else this.logger.warn("DevicesRepository::updateDevice clientId is required to add deviceChangesHistory");return t}async deleteDevice(e){this.logger.trace(e,"DevicesRepository::deleteDevice started with params");const t=await(async(e,t,i)=>t?.filters?.imei?e.safeQuery2((async e=>{const i=e.getRepository(ue);return(await i.createQueryBuilder().delete().where("imei = :imei",{imei:t.filters.imei}).execute()).affected>0}),"DevicesRepository::deleteDevice"):(i.warn({params:t},"DevicesRepository::deleteDevice - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::deleteDevice result"),t}async generateDeviceIdentifierKey(e){this.logger.trace(e,"DevicesRepository::generateDeviceIdentifierKey started with params");const t=await Ra(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::generateDeviceIdentifierKey result"),t}async getDeviceTypes(e){this.logger.trace(e,"DevicesRepository::getDeviceTypes started with params");const t=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(de).createQueryBuilder("deviceType");return i&&r.setQueryRunner(i),t?.filters?.modelFamily?(r=r.where("deviceType.modelFamily = UPPER(:modelFamily)",{modelFamily:t.filters.modelFamily}),t?.filters?.supported&&(r=r.andWhere("deviceType.supported = :supported",{supported:!0})),t?.filters?.activatable&&(r=r.andWhere("deviceType.activatable = :activatable",{activatable:!0}))):(t?.filters?.deviceTypeIdList?.length&&(r=r.where("deviceType.id IN (:...deviceTypeIdList)",{deviceTypeIdList:t.filters.deviceTypeIdList})),t?.filters?.brand&&(r=r.andWhere("LOWER(deviceType.brand) = LOWER(:brand)",{brand:t.filters.brand})),t?.filters?.model&&(r=r.andWhere("LOWER(deviceType.model) = LOWER(:model)",{model:t.filters.model})),t?.filters?.onlyWithRelatedIccidCarrier&&(r=r.innerJoin(Lt,"iccidCarrier","deviceType.id = iccidCarrier.deviceTypeId").groupBy("deviceType.id"))),r=r.orderBy("deviceType.id"),await r.getMany()}),"DevicesRepository::getDeviceTypes",i)})(this.dataSource,e);return this.logger.trace(t,"DevicesRepository::getDeviceTypes result"),t}async getImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::getImeiIccidCarrier started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei&&!t?.filters?.iccid)return i.warn({params:t},"DevicesRepository::getImeiIccidCarrier missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(Lt).createQueryBuilder("imeiIccidCarrier");return i&&r.setQueryRunner(i),t?.filters?.imei&&(r=r.where("imeiIccidCarrier.imei = :imei",{imei:t.filters.imei})),t?.filters?.iccid&&(r=r.andWhere("imeiIccidCarrier.iccid = :iccid",{iccid:t.filters.iccid})),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",de,"deviceType","imeiIccidCarrier.deviceTypeId = deviceType.id"),await r.getOne()}),"DevicesRepository::getImeiIccidCarrier",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getImeiIccidCarrier result"),t}async getDeviceTypeByImei(e){this.logger.trace(e,"DevicesRepository::getDeviceTypeByImei started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::getDeviceTypeByImei - missing imei parameter"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(de).createQueryBuilder("deviceType").innerJoin(Lt,"imeiIccidCarrier","deviceType.id = imeiIccidCarrier.deviceTypeId").where("imeiIccidCarrier.imei = :imei",{imei:t.filters.imei});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getDeviceTypeByImei",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceTypeByImei result"),t}async getImeiIccidCarriers(e){this.logger.trace(e,"DevicesRepository::getImeiIccidCarriers started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imeiList?.length)return i.warn({params:t},"DevicesRepository::getImeiIccidCarriers missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(Lt).createQueryBuilder("imeiIccidCarrier").where("imeiIccidCarrier.imei IN (:...imeiList)",{imeiList:t.filters.imeiList});return i&&r.setQueryRunner(i),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",de,"deviceType","imeiIccidCarrier.deviceTypeId = deviceType.id"),await r.getMany()}),"DevicesRepository::getImeiIccidCarriers",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getImeiIccidCarriers result"),t}async updateImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::updateImeiIccidCarrier started with params");const t=await(async(e,t,i)=>(t?.filters?.imei||t?.filters?.iccid)&&(t?.values?.carrier||t?.values?.phone||t?.values?.deviceTypeId||t?.values?.serviceProviderProductId||null!=t?.values?.isValid||t?.values?.model||t?.values?.realModel||t?.values?.po||null!=t?.values?.outOfInventory||t?.values?.apn||null!=t?.values?.itsEsim||t?.values?.btmac)?e.safeQuery2((async e=>{const i=e.getRepository(Lt),r=new Date;let a=i.createQueryBuilder().update(Lt).set({...t.values,modifiedAt:r});return t.filters.imei&&(a=a.where("imei = :imei",{imei:t.filters.imei})),t.filters.iccid&&(a=a.andWhere("iccid = :iccid",{iccid:t.filters.iccid})),(await a.execute()).affected>0}),"DevicesRepository::updateImeiIccidCarrier"):(i.warn({params:t},"DevicesRepository::updateImeiIccidCarrier missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateImeiIccidCarrier result"),t}async getClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::getClientDeviceSetting with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei||!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getClientDeviceSetting missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(at).createQueryBuilder("clientDeviceSetting").where("clientDeviceSetting.imei = :imei",{imei:t.filters.imei}).andWhere("clientDeviceSetting.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getClientDeviceSetting",r)})(this.dataSource,e,this.logger);return this.logger.info(t,"DevicesRepository::getClientDeviceSetting result"),t}async getClientDeviceSettings(e){this.logger.trace(e,"DevicesRepository::getClientDeviceSettings started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getClientDeviceSettings missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(at).createQueryBuilder("clientDeviceSetting").where("clientDeviceSetting.clientId = :clientId",{clientId:t.filters.clientId});return i&&r.setQueryRunner(i),await r.getMany()}),"DevicesRepository::getClientDeviceSettings",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getClientDeviceSettings result"),t}async createClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::createClientDeviceSetting started with params");const t=await(async(e,t,i)=>t?.imei&&t?.clientId?e.safeQuery2((async e=>{const i=e.getRepository(at),r={id:t.id,imei:t.imei,clientId:t.clientId,generateTrips:t.generateTrips??!0,movingPingFrequency:t.movingPingFrequency,stoppedPingFrequency:t.stoppedPingFrequency,fixedStatus:t.fixedStatus,stopThresholdMinutes:t.stopThresholdMinutes,offlineThresholdMinutes:t.offlineThresholdMinutes,movementThresholdSpeed:t.movementThresholdSpeed,externalBatteryInformation:t.externalBatteryInformation,reportingMode:t.reportingMode,starterInterruptInstalled:t.starterInterruptInstalled};return await i.save(r)}),"DevicesRepository::createClientDeviceSetting"):(i.warn({params:t},"DevicesRepository::createClientDeviceSetting missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createClientDeviceSetting result"),t}async updateClientDeviceSetting(e){this.logger.trace(e,"DevicesRepository::updateClientDeviceSetting started with params");const t=await(async(e,t,i)=>t?.filters?.imei&&t?.filters?.clientId&&(null!=t?.values?.generateTrips||t?.values?.movingPingFrequency||t?.values?.stoppedPingFrequency||t?.values?.fixedStatus||t?.values?.stopThresholdMinutes||t?.values?.offlineThresholdMinutes||t?.values?.movementThresholdSpeed||null!=t?.values?.externalBatteryInformation||t?.values?.reportingMode||null!=t?.values?.starterInterruptInstalled)?e.safeQuery2((async e=>{const i=e.getRepository(at).createQueryBuilder().update(at).set({generateTrips:t.values.generateTrips,movingPingFrequency:t.values.movingPingFrequency,stoppedPingFrequency:t.values.stoppedPingFrequency,fixedStatus:t.values.fixedStatus,stopThresholdMinutes:t.values.stopThresholdMinutes,offlineThresholdMinutes:t.values.offlineThresholdMinutes,movementThresholdSpeed:t.values.movementThresholdSpeed,externalBatteryInformation:t.values.externalBatteryInformation,reportingMode:t.values.reportingMode,starterInterruptInstalled:t.values.starterInterruptInstalled}).where("imei = :imei",{imei:t.filters.imei}).andWhere("clientId = :clientId",{clientId:t.filters.clientId});return(await i.execute()).affected>0}),"DevicesRepository::updateClientDeviceSetting"):(i.warn({params:t},"DevicesRepository::updateClientDeviceSetting missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateClientDeviceSetting result"),t}async getDeviceTypesModelsOrderedByDeviceCount(e){this.logger.trace(e,"DevicesRepository::getDeviceTypesOrderedByDeviceCount started with params");const t=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(de).createQueryBuilder("dt").leftJoin(ue,"d","d.deviceTypeId = dt.id").select(["dt.id as id","dt.model as model","dt.protocol as protocol","dt.protocolMatch as protocolMatch"]).addSelect("COUNT(d.id)","deviceCount");return i&&r.setQueryRunner(i),t?.filters?.deviceStatus&&(r=r.where("d.status = :deviceStatus",{deviceStatus:t.filters.deviceStatus})),r=r.groupBy("dt.id").orderBy("deviceCount","DESC"),(await r.getRawMany()).map((e=>({...e,deviceCount:parseInt(e.deviceCount,10)})))}),"DevicesRepository::getDeviceTypesModelsOrderedByDeviceCount",i)})(this.dataSource,e);return this.logger.trace({result:t},"DevicesRepository::getDeviceTypesOrderedByDeviceCount result"),t}async getDeviceCustomConfigs(e){this.logger.trace(e,"DevicesRepository::getDeviceCustomConfig started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.imei&&!t?.filters?.po)return i.warn({params:t},"DevicesRepository::getDeviceCustomConfig missing required params"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{let r=e.getRepository(ce).createQueryBuilder("deviceCustomConfiguration");return i&&r.setQueryRunner(i),t?.filters?.imei&&(r=r.orWhere("(LOWER(deviceCustomConfiguration.imei) = LOWER(:imei) AND deviceCustomConfiguration.clientId IS NULL AND (deviceCustomConfiguration.po IS NULL OR deviceCustomConfiguration.po = ''))",{imei:t.filters.imei})),t?.filters?.po&&(r=r.orWhere("(LOWER(deviceCustomConfiguration.po) = LOWER(:po) AND deviceCustomConfiguration.clientId IS NULL AND (deviceCustomConfiguration.imei IS NULL OR deviceCustomConfiguration.imei = ''))",{po:t.filters.po})),t?.filters?.clientId&&(r=r.orWhere("deviceCustomConfiguration.clientId = :clientId AND (deviceCustomConfiguration.po IS NULL OR deviceCustomConfiguration.po = '') AND (deviceCustomConfiguration.imei IS NULL OR deviceCustomConfiguration.imei = '')",{clientId:t.filters.clientId})),r=t?.filters?.deviceTypeId?r.andWhere("(deviceCustomConfiguration.deviceTypeId = :deviceTypeId OR deviceCustomConfiguration.deviceTypeId IS NULL)",{deviceTypeId:t.filters.deviceTypeId}):r.andWhere("deviceCustomConfiguration.deviceTypeId IS NULL"),r=r.orderBy("deviceCustomConfiguration.id"),await r.getMany()}),"DevicesRepository::getDeviceCustomConfig",r)})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::getDeviceCustomConfig result"),t}async upsertDeviceCustomConfigs(e){this.logger.trace(e,"DevicesRepository::upsertDeviceCustomConfigs started with params");const t=await(async(e,t,i)=>t?.some((e=>null==e.id&&null==e.deviceTypeId))?(i.warn({params:t},"DevicesRepository::upsertDeviceCustomConfig missing required params"),!1):e.safeQuery2((async e=>{const i=e.getRepository(ce),r=await i.upsert(t,{conflictPaths:["id"]});return r?.raw?.affectedRows>0}),"DevicesRepository::upsertDeviceCustomConfig"))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::upsertDeviceCustomConfigs result"),t}async createDeviceReplacement(e){this.logger.trace(e,"DevicesRepository::createDeviceReplacement started with params");const t=await(async(e,t,i)=>{if(!(t?.imeiOld&&t?.imeiNew&&t?.iccidNew&&t?.iccidOld&&t?.userId&&t?.clientId&&0!==t?.clientId))return i.warn({params:t},"DevicesRepository::createDeviceReplacement missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery2((async e=>{const i=e.getRepository(Rt),a={id:t.id,imeiOld:t.imeiOld,imeiNew:t.imeiNew,iccidOld:t.iccidOld,iccidNew:t.iccidNew,userId:r,clientId:t.clientId,createAt:new Date};return await i.save(a)}),"DevicesRepository::createDeviceReplacement"):(i.warn({params:t},"DevicesRepository::createDeviceReplacement - user id should be a valid UUID"),null)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createDeviceReplacement result"),t}async getIccidStatus(e){this.logger.trace(e,"DevicesRepository::getIccidStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.iccid)return i.warn({params:t},"DevicesRepository::getIccidStatus missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(kt).createQueryBuilder("iccidStatus").where("iccidStatus.iccid = :iccid",{iccid:t.filters.iccid});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getIccidStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getIccidStatus result"),t}async updateIccidStatus(e){this.logger.trace(e,"DevicesRepository::updateIccidStatus started with params");const t=await(async(e,t,i)=>t?.filters?.iccid&&(t?.values?.status||null!=t?.values?.processing||t?.values?.carrierFound)?e.safeQuery2((async e=>{const i=e.getRepository(kt).createQueryBuilder("iccidStatus").update(kt).set({status:t.values.status,processing:t.values.processing,carrierFound:t.values.carrierFound}).where("iccid = :iccid",{iccid:t.filters.iccid});return(await i.execute()).affected>0}),"DevicesRepository::updateIccidStatus"):(i.warn({params:t},"DevicesRepository::updateIccidStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateIccidStatus result"),t}async getCanceledDevicesWithActiveSimCards(e){this.logger.trace(e,"DevicesRepository::getCanceledDevicesWithActiveSimCards started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.lastAnalyzedDeviceId||!t?.pagingOptions?.limit)return i.warn({params:t},"DevicesRepository::getCanceledDevicesWithActiveSimCards missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ei).createQueryBuilder("serviceProvider");i&&r.setQueryRunner(i);const a=await r.getMany(),n=e.getRepository(ue).createQueryBuilder("device").innerJoin(kt,"iccidStatus","device.iccid = iccidStatus.iccid").innerJoin(Lt,"imeiIccidCarrier","device.iccid = imeiIccidCarrier.iccid").where("device.status = :deviceStatus",{deviceStatus:"D"}).andWhere("device.id > :lastAnalyzedDeviceId",{lastAnalyzedDeviceId:t.filters.lastAnalyzedDeviceId}).andWhere("iccidStatus.status = :iccidStatus",{iccidStatus:"active"}).select(["device.imei as imei","device.iccid as iccid","device.clientId as clientId","imeiIccidCarrier.carrier as carrierId","device.id as deviceId"]).orderBy("device.id","ASC").limit(t.pagingOptions.limit);return i&&n.setQueryRunner(i),(await n.getRawMany()).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,carrier:a?.find((t=>t.id===e.carrierId))?.name||"Unknown Carrier",deviceId:e.deviceId})))}),"DevicesRepository::getCanceledDevicesWithActiveSimCards",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getCanceledDevicesWithActiveSimCards result"),t}async getCarrierStatusUpdatedBefore(e){this.logger.trace(e,"DevicesRepository::getCarrierStatusUpdatedBefore started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.beforeDate||!t?.pagingOptions?.limit)return i.warn({params:t},"DevicesRepository::getCarrierStatusUpdatedBefore missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(kt).createQueryBuilder("iccidStatus").innerJoin(Lt,"imeiIccidCarrier","iccidStatus.iccid = imeiIccidCarrier.iccid").where("iccidStatus.modifiedAt < :beforeDate",{beforeDate:t.filters.beforeDate}).andWhere("coalesce(iccidStatus.processing, false) <> :processing",{processing:!0}).andWhere("iccidStatus.status <> :status",{status:"not found in carrier"}).select(["imeiIccidCarrier.carrier as carrier","iccidStatus.iccid as iccid","iccidStatus.status as status","iccidStatus.processing as processing","iccidStatus.carrierFound as carrierFound","iccidStatus.modifiedAt as modifiedAt"]).orderBy("iccidStatus.modifiedAt","ASC").addOrderBy("iccidStatus.iccid","ASC").limit(t.pagingOptions.limit);return i&&r.setQueryRunner(i),(await r.getRawMany()).map((e=>({carrier:e.carrier,iccid:e.iccid,status:e.status,processing:null!=e.processing?1===e.processing:null,carrierFound:e.carrierFound,modifiedAt:e.modifiedAt})))}),"DevicesRepository::getCarrierStatusUpdatedBefore",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getCarrierStatusUpdatedBefore result"),t}async upsertIccidStatus(e){this.logger.trace(e,"DevicesRepository::upsertIccidStatus started with params");const t=await(async(e,t,i)=>t?.values.iccid&&(t?.options?.updateProcessing||t?.values?.status&&t?.values?.carrierFound)?e.safeQuery2((async e=>{const i=e.getRepository(kt),r=null!=t.values.status?{iccid:t.values.iccid,status:t.values.status,modifiedAt:new Date,processing:!t.options?.updateProcessing&&void 0,carrierFound:t.values.carrierFound}:{iccid:t.values.iccid,status:void 0,modifiedAt:void 0,processing:!!t.options?.updateProcessing||void 0,carrierFound:t.values.carrierFound},a=await i.upsert(r,{conflictPaths:["iccid"]});return a?.raw?.affectedRows>0}),"DevicesRepository::upsertIccidStatus"):(i.warn({params:t},"DevicesRepository::upsertIccidStatus missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::upsertIccidStatus result"),t}async getDeviceWithUsersInfo(e){this.logger.trace(e,"DevicesRepository::getDeviceWithUsersInfo started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"DevicesRepository::getDeviceWithUsersInfo missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ue).createQueryBuilder("device").innerJoin(Lt,"iccidCarrier","device.imei = iccidCarrier.imei").innerJoin(we,"user","device.clientId = user.clientId").innerJoin(De,"userSecurityRole","user.id = userSecurityRole.userId").innerJoin(Se,"securityRole","userSecurityRole.securityRoleId = securityRole.id").leftJoin(Le,"billing","device.imei = billing.imei").leftJoin(pi,"userActivationDevice","device.imei = userActivationDevice.imei and userActivationDevice.id = (\n select userActivationDevice.id from userActivationDevice where userActivationDevice.imei = :imei \n order by userActivationDevice.id desc limit 1)\n ",{imei:t.filters.imei.toLowerCase()}).leftJoin(Dt,"deviceStatus","device.imei = deviceStatus.imei").where("device.imei = :imei",{imei:t.filters.imei.toLowerCase()}).orderBy("user.createdAt","DESC").select(["user.firstName as firstName","user.lastName as lastName","user.userName as username","user.email as email","deviceStatus.created as latestPositionCreatedAt","deviceStatus.sendTime as latestPositionActualDate","CAST(deviceStatus.data->>'$.latitude' AS DECIMAL(10,6)) as latestPositionLatitude","CAST(deviceStatus.data->>'$.longitude' AS DECIMAL(10,6)) as latestPositionLongitude","CAST(deviceStatus.data->>'$.odoMileage' AS DECIMAL(10,2)) as latestPositionOdometer","CAST(deviceStatus.data->>'$.speed' AS DECIMAL(10,2)) as latestPositionSpeed","device.status as deviceStatus","device.name as deviceName","iccidCarrier.iccid as iccid","userActivationDevice.servicePlan as servicePlan","securityRole.name as roleName","billing.subscriptionId as subscriptionId"]);return i&&r.setQueryRunner(i),(await r.getRawMany()).map((e=>({...e,firstName:void 0,lastName:void 0,clientName:e.firstName?.length&&e.lastName?.length?`${e.firstName} ${e.lastName}`:e.firstName||e.lastName||""})))}),"DevicesRepository::getDeviceWithUsersInfo",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceWithUsersInfo result"),t}async createDeviceType(e){this.logger.trace(e,"DevicesRepository::createDeviceType started with params");const t=await(async(e,t,i)=>t?.brand&&t?.model&&t?.modelFamily&&t?.identifierType?e.safeQuery2((async e=>{const i=e.getRepository(de),r={...t};return await i.save(r)}),"DevicesRepository::createDeviceType"):(i.warn({params:t},"DevicesRepository::createDeviceType missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createDeviceType result"),t}async updateDeviceType(e){this.logger.trace(e,"DevicesRepository::updateDeviceType started with params");const t=await(async(e,t,i)=>t?.filters?.id?t?.values?.brand||t?.values?.model||t?.values?.modelFamily||t?.values?.identifierType||t?.values?.description||t?.values?.tags||t?.values?.url||t?.values?.name||t?.values?.pictureUrl||t?.values?.userManualUrl||t?.values?.notes||null!=t?.values?.supported||null!=t?.values?.activatable||null!=t?.values?.selfActivatable||t?.values?.port||t?.values?.protocolMatch||t?.values?.stage||t?.values?.landingPage||t?.values?.troubleshooting||t?.values?.protocol?e.safeQuery2((async e=>{const i=e.getRepository(de).createQueryBuilder("deviceType").update(de).set({...t.values}).where("id = :id",{id:t.filters.id});return(await i.execute()).affected>0}),"DevicesRepository::updateDeviceType"):(i.warn({params:t},"DevicesRepository::updateIccidStatus missing required parameters"),!1):(i.warn({params:t},"DevicesRepository::updateDeviceType missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"DevicesRepository::updateDeviceType result"),t}async getDevicesCountByStatus(e){this.logger.trace(e,"DevicesRepository::getDevicesCountByStatus started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDevicesCountByStatus missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ue).createQueryBuilder("device").where("device.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.tagIdList?.length&&r.innerJoin(Ut,"entityTag","entityTag.entityId = device.id \n AND entityTag.entityType = 'Device'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),r.groupBy("device.status").select("device.status","status").addSelect("COUNT(device.status)","count"),i&&r.setQueryRunner(i),await r.getRawMany()}),"DevicesRepository::getDevicesCountByStatus",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDevicesCountByStatus result"),t}async getServiceProviderProduct(e){this.logger.trace(e,"DevicesRepository::getServiceProviderProduct started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"DevicesRepository::getServiceProviderProduct missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ti).createQueryBuilder("serviceProviderProduct").where("serviceProviderProduct.id = :id",{id:t.filters.id});return i&&r.setQueryRunner(i),await r.getOne()}),"DevicesRepository::getServiceProviderProduct",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getServiceProviderProduct result"),t}async createImeiIccidCarrier(e){this.logger.trace(e,"DevicesRepository::createImeiIccidCarrier started with params");const t=await(async(e,t,i)=>ga(t,Hi)?(i.warn({params:t},"DevicesRepository::createImeiIccidCarrier missing required parameters"),null):e.safeQuery2((async e=>e.getRepository(Lt).save({...t,createdAt:new Date})),"DevicesRepository::updateImeiIccidCarrier"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::createImeiIccidCarrier result"),t}async getDeviceChangesHistoryAssignedToValuesByClient(e){this.logger.trace(e,"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ft).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId}).select("DISTINCT deviceChangesHistory.assignedTo");i&&r.setQueryRunner(i);const a=await r.getRawMany();return a?a.map((e=>e.assignedTo)):[]}),"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceChangesHistoryAssignedToValuesByClient result"),t}async getDeviceChangesHistory(e){this.logger.trace(e,"DevicesRepository::getDeviceChangesHistory started with params");const t=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"DevicesRepository::getDeviceChangesHistory missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery2((async(e,i)=>{const r=e.getRepository(ft).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.imeis?.length&&r.andWhere("deviceChangesHistory.imei IN (:...imeis)",{imeis:t.filters.imeis}),i&&r.setQueryRunner(i),await r.getMany()}),"DevicesRepository::getDeviceChangesHistory",r)})(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::getDeviceChangesHistory result"),t}async addDeviceChangesHistory(e){this.logger.trace(e,"DevicesRepository::addDeviceChangesHistory started with params");const t=await(async(e,t,i)=>ga(t,Ki)?(i.warn({params:t},"DevicesRepository::addDeviceChangesHistory missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(ft),r=i.createQueryBuilder("deviceChangesHistory");if("update"===t.action){const e=await r.where("deviceChangesHistory.clientId = :clientId AND deviceChangesHistory.imei = :imei AND deviceChangesHistory.endDate IS NULL",{clientId:t.clientId,imei:t.imei}).getOne();e&&(e.endDate=Sa(),await i.save(e))}const a={clientId:t.clientId,imei:t.imei,assignedTo:t.assignedTo,startDate:Sa()};return await i.save(a)}),"DevicesRepository::addDeviceChangesHistory"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::addDeviceChangesHistory result"),t}},EntityTagsRepository:class extends ra{async createEntityTag(e){this.logger.trace(e,"EntityTagsRepository::createEntityTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>ga(t,Yi)?(i.warn({params:t},"EntityTagsRepository::createEntityTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Ut),r={...t,userId:t.userId?na(t.userId):null,createdAt:Sa()};return await i.save(r)??null}),"EntityTagsRepository::createEntityTag error"))(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::createEntityTag result"),i}async bulkCreateEntityTag(e){this.logger.trace(e,"EntityTagsRepository::bulkCreateEntityTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await Ma(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::bulkCreateEntityTag result"),i}async deleteEntityTag(e){this.logger.trace(e,"EntityTagsRepository::deleteEntityTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>ga(t,Zi)?(i.warn({params:t},"EntityTagsRepository::deleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Ut);return(await i.createQueryBuilder().delete().where("tagId = :tagId",{tagId:t.tagId}).andWhere("entityId = :entityId",{entityId:t.entityId}).andWhere("clientId = :clientId",{clientId:t.clientId}).andWhere("entityType = :entityType",{entityType:t.entityType}).execute()).affected>0}),"EntityTagsRepository::deleteEntityTag"))(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::deleteEntityTag result"),i}async searchEntityTags(e){this.logger.trace(e,"EntityTagsRepository::searchEntityTags started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,er))return i.warn({params:t},"EntityTagsRepository::searchEntityTags missing required parameters"),{entitiesTags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ut),{filters:a,pagingOptions:n}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:a.clientId});i&&o.setQueryRunner(i),a.entityIds?.length&&(o=o.andWhere("entityId IN (:...entityIds)",{entityIds:a.entityIds})),a.tagIds?.length&&(o=o.andWhere("tagId IN (:...tagIds)",{tagIds:a.tagIds})),a.entityTypes?.length&&(o=o.andWhere("entityType IN (:...entityTypes)",{entityTypes:a.entityTypes}));const s=await o.getCount(),l=n?.pageSize??50;o.limit(l);const d=(n?.pageIndex??0)*l;return o.offset(d),{entitiesTags:await o.getMany(),totalCount:s}}),"EntityTagsRepository::searchEntityTags",r)})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::searchEntityTags result"),i}async bulkDeleteEntityTag(e){this.logger.trace(e,"EntityTagsRepository::bulkDeleteEntityTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await Oa(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::bulkDeleteEntityTag result"),i}async enforceEntityTagsByEntity(e){this.logger.trace(e,"EntityTagsRepository::enforceEntityTagsByEntity started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(ga(t,rr)||0===t.values.tagIds.length)return i.warn({params:t},"EntityTagsRepository::enforceEntityTagsByEntity failed due to missing filters/values or empty tagIds array"),{entitiesTags:[],totalCount:0};try{if(!await Oa(e,{clientId:t.filters.clientId,entityType:t.filters.entityType,deletedBy:t.values.enforcedBy,entityIds:[t.filters.entityId]},i))return i.warn({params:t},"EntityTagsRepository::enforceEntityTagsByEntity failed to delete existing tags"),{entitiesTags:[],totalCount:0};const r=t.values.tagIds.map((e=>({tagId:e,createdBy:t.values.enforcedBy,clientId:t.filters.clientId,entityType:t.filters.entityType,entityId:t.filters.entityId}))),a=await Ma(e,r,i);return i.trace(a,"EntityTagsRepository::enforceEntityTagsByEntity result"),{entitiesTags:a,totalCount:t.values.tagIds.length}}catch(e){return i.error({error:e},"EntityTagsRepository::enforceEntityTagsByEntity error"),{entitiesTags:[],totalCount:0}}})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::enforceEntityTagsByEntity result"),i}async deleteEntityTagById(e){this.logger.trace({id:e},"EntityTagsRepository::deleteEntityTagById started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>t?e.safeQuery((async e=>{const i=e.getRepository(Ut);return(await i.delete(t)).affected>0}),"EntityTagsRepository::deleteEntityTagById"):(i.warn("EntityTagsRepository::deleteEntityTagById missing required id parameter"),!1))(t,e,this.logger);return this.logger.trace({wasDeleted:i},"EntityTagsRepository::deleteEntityTagById result"),i}async getEntityTagById(e){this.logger.trace({params:e},"EntityTagsRepository::getEntityTagById started with params");const t=new ta(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(ga(t,ar))return i.warn("EntityTagsRepository::getEntityTagByEntityTagId missing required id parameter"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Ut).createQueryBuilder("entityTag").where("entityTag.id = :id",{id:t.filters.id});return i&&r.setQueryRunner(i),await r.getOne()}),"EntityTagsRepository::getEntityTagByEntityTagId",r)})(t,e,this.logger);return this.logger.trace(i,"EntityTagsRepository::getEntityTagById result"),i}},FeatureRepository:class extends ra{async createFeature(e){this.logger.trace(e,"FeatureRepository::createFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,xa)?(i.warn({params:t},"FeatureRepository::createFeature missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Pt),r={key:t.key,name:t.name,description:t.description,tags:t.tags};return await i.save(r)??null}),"FeatureRepository::createFeature error"))(t,e,this.logger);return this.logger.trace(i,"FeatureRepository::createFeature result"),i}async getFeatures(e){this.logger.trace(e,"FeatureRepository::getFeatures started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Pt).createQueryBuilder("feature");i&&r.setQueryRunner(i),t?.filters?.keys?.length&&r.where("feature.key IN (:keyList)",{keyList:t.filters.keys}),t?.filters?.names?.length&&r.andWhere("feature.name IN (:nameList)",{nameList:t.filters.names});const a=await r.getMany();return a?.length?a:[]}),"FeatureRepository::getFeatures error",i)})(t,e);return this.logger.trace(i,"FeatureRepository::getFeatures result"),i}async upsertFeature(e){this.logger.trace(e,"FeatureRepository::upsertFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,xa)?(i.warn({params:t},"FeatureRepository::upsertFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Pt),r={key:t.key,name:t.name,description:t.description,tags:t.tags},a=await i.upsert(r,{conflictPaths:["key"]});return a?.raw?.affectedRows>0}),"FeatureRepository::upsertFeature"))(t,e,this.logger);return this.logger.trace({result:i},"FeatureRepository::upsertFeature result"),i}async deleteFeature(e){this.logger.trace(e,"FeatureRepository::deleteFeature started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.key?e.safeQuery((async e=>{const i=e.getRepository(Pt);return(await i.createQueryBuilder().delete().where("key = :key",{key:t.filters.key}).execute()).affected>0}),"FeatureRepository::deleteFeature"):(i.warn({params:t},"FeatureRepository::deleteFeature missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FeatureRepository::deleteFeature result"),i}},FirmwaresRepository:class extends ra{async getDeviceFirmwares(e){this.logger.trace("FirmwaresRepository::getDeviceFirmwares started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t)=>{const i=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Nt).createQueryBuilder("deviceTypeFirmware");return i&&r.setQueryRunner(i),t?.filters?.deviceTypeId&&(r=r.andWhere("deviceTypeFirmware.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),t?.filters?.firmwareId&&(r=r.andWhere("deviceTypeFirmware.id = :firmwareId",{firmwareId:t.filters.firmwareId})),t?.projectionOptions?.withDeviceType&&(r=r.leftJoinAndSelect("deviceTypeFirmware.deviceType","deviceType")),r=r.orderBy("deviceTypeFirmware.releaseDate","DESC"),await r.getMany()}),"FirmwaresRepository::getDeviceFirmwares",i)})(t,e);return this.logger.trace(i,"FirmwaresRepository::getDeviceFirmwares result"),i}async createDeviceFirmware(e){this.logger.trace("FirmwaresRepository::createDeviceFirmware started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.deviceTypeId&&t?.firmwareCode&&t?.firmwareVersion&&t?.firmwareUrl&&t?.releaseDate&&t?.description&&null!=t?.enabled&&t?.upgradeType?await e.safeQuery((async e=>{const i=e.getRepository(Nt),r={id:t.id,deviceTypeId:t.deviceTypeId,description:t.description,enabled:t.enabled,firmwareCode:t.firmwareCode,firmwareVersion:t.firmwareVersion,firmwareUrl:t.firmwareUrl,releaseDate:t.releaseDate,sourceFirmwareVersion:t.sourceFirmwareVersion,upgradeType:t.upgradeType,stage:t.stage,postUpgradeConfig:t.postUpgradeConfig,parentId:t.parentId,maxDeployPercentage:t.maxDeployPercentage,qmsRate:t.qmsRate,pendingTimeout:t.pendingTimeout,forceSMS:t.forceSMS};return await i.save(r)}),"FirmwaresRepository::createDeviceFirmware"):(i.warn({params:t},"FirmwaresRepository::createDeviceFirmware incorrect params"),null))(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::createDeviceFirmware result"),i}async createFirmwareUpgradeTask(e){this.logger.trace("FirmwaresRepository::createFirmwareUpgradeTask started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(e=>!e?.id||!e?.deviceTypeFirmwareId||!e?.clientId||e.clientId<=0||!e.imei||!e?.status)(t)?(i.warn({params:t},"FirmwaresRepository::createFirmwareUpgradeTask incorrect params"),null):await e.safeQuery((async e=>{const i=e.getRepository(Ot),r=new Date,a={id:na(t.id),deviceTypeFirmwareId:t.deviceTypeFirmwareId,clientId:t.clientId,imei:t.imei,status:t.status,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,createdAt:t.createdAt??r,modifiedAt:t.modifiedAt??r,preConfig:t.preConfig,postConfig:t.postConfig,commandsTaskId:t.commandsTaskId,postUpgradeCompleted:t.postUpgradeCompleted,fwCompletedOn:null};return await i.save(a)}),"FirmwaresRepository::createFirmwareUpgradeTask"))(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::createFirmwareUpgradeTask result"),i}async getFirmwareUpgradeTasks(e){this.logger.trace("FirmwaresRepository::getFirmwareUpgradeTasks started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await ka(t,e,this.logger);return this.logger.trace(i,"FirmwaresRepository::getFirmwareUpgradeTasks result"),i}async getFirmwareUpgradeTasksCount(e){this.logger.trace("FirmwaresRepository::getFirmwareUpgradeTasksCount started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await La(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::getFirmwareUpgradeTasksCount result"),i}async updateFirmwareUpgradeTasks(e){this.logger.trace("FirmwaresRepository::updateFirmwareUpgradeTasks started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&(t?.behaviorName||t?.behaviorParams||t?.status||t?.preConfig||t?.postConfig||t?.commandsTaskId||null!=t?.postUpgradeCompleted||t?.fwCompletedOn)?await e.safeQuery((async e=>{const i=e.getRepository(Ot),r=new Date,a=i.createQueryBuilder("firmwareUpgradeTask").update(Ot).set({modifiedAt:r,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,preConfig:t.preConfig,postConfig:t.postConfig,commandsTaskId:t.commandsTaskId,postUpgradeCompleted:t.postUpgradeCompleted,fwCompletedOn:t.fwCompletedOn}).where("id = :id",{id:na(t.id)});return(await a.execute()).affected>0}),"FirmwaresRepository::updateFirmwareUpgradeTasks"):(i.warn({params:t},"FirmwaresRepository::updateFirmwareUpgradeTasks incorrect params"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::updateFirmwareUpgradeTasks result"),i}async updateDeviceFirmware(e){this.logger.trace("FirmwaresRepository::updateDeviceFirmware started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deviceTypeId&&t?.firmwareCode&&t?.firmwareVersion&&t?.firmwareUrl&&t?.releaseDate&&t?.description&&null!=t?.enabled&&t?.upgradeType?await e.safeQuery((async e=>{const i=e.getRepository(Nt);return(await i.createQueryBuilder().update(Nt).set({deviceTypeId:t.deviceTypeId,description:t.description,enabled:t.enabled,firmwareCode:t.firmwareCode,firmwareVersion:t.firmwareVersion,firmwareUrl:t.firmwareUrl,releaseDate:t.releaseDate,sourceFirmwareVersion:t.sourceFirmwareVersion,upgradeType:t.upgradeType,stage:t.stage,postUpgradeConfig:t.postUpgradeConfig,parentId:t.parentId,maxDeployPercentage:t.maxDeployPercentage,qmsRate:t.qmsRate,pendingTimeout:t.pendingTimeout,forceSMS:t.forceSMS}).where("id = :id",{id:t.id}).execute()).affected>0}),"FirmwaresRepository::updateDeviceFirmware"):(i.warn({params:t},"FirmwaresRepository::updateDeviceFirmware incorrect params"),!1))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::updateDeviceFirmware result"),i}async createFirmwareAutoUpgradeBlacklist(e){this.logger.trace("FirmwaresRepository::createFirmwareAutoUpgradeBlacklist started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?await e.safeQuery((async e=>{const i=e.getRepository(Mt),r={deviceTypeId:t.deviceTypeId,clientId:t.clientId};return await i.save(r)}),"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist"):(i.warn({params:t},"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist incorrect params"),null))(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::createFirmwareAutoUpgradeBlacklist result"),i}async getFirmwareAutoUpgradeBlacklist(e){this.logger.trace("FirmwaresRepository::getFirmwareAutoUpgradeBlacklist started");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if((e=>!e?.filters?.clientId)(t))return i.warn({params:t},"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist incorrect params"),null;const r=e.createQueryRunnerFromParams(t);return await e.safeQuery((async(e,i)=>{let r=e.getRepository(Mt).createQueryBuilder("firmwareAutoUpgradeBlacklist");return i&&r.setQueryRunner(i),r=r.andWhere("firmwareAutoUpgradeBlacklist.clientId = :clientId",{clientId:t.filters.clientId}),t?.pagingOptions?.offset&&(r=r.offset(t?.pagingOptions?.offset)),r=r.limit(t?.pagingOptions?.limit??100),await r.getMany()}),"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist",r)})(t,e,this.logger);return this.logger.trace({result:i},"FirmwaresRepository::getFirmwareAutoUpgradeBlacklist result"),i}},LatestUserAppInfoRepository:class extends ra{async upsertLatestUserAppInfo(e){this.logger.trace(e,"LatestUserAppInfoRepository::upsertLatestUserAppInfo started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t.deviceOs||!t.appVersion)return i.warn({params:t},"LatestUserAppInfoRepository::upsertLatestUserAppInfo - missing required parameters"),!1;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(_t),a=new Date,n={id:t.id,userId:r,deviceOs:t.deviceOs,appVersion:t.appVersion,createdAt:a},o=await i.upsert(n,{conflictPaths:["userId"]});return o?.raw?.affectedRows>0}),"LatestUserAppInfoRepository::upsertLatestUserAppInfo"):(i.warn({params:t},"LatestUserAppInfoRepository::upsertLatestUserAppInfo - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"LatestUserAppInfoRepository::upsertLatestUserAppInfo result"),i}async getLatestUserAppInfo(e){this.logger.trace(e,"LatestUserAppInfoRepository::getLatestUserAppInfo started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"LatestUserAppInfoRepository::getLatestUserAppInfo - missing required parameters"),null;const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"LatestUserAppInfoRepository::getLatestUserAppInfo - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{const i=e.getRepository(_t).createQueryBuilder("latestUserAppInfo");return t&&i.setQueryRunner(t),await i.where("latestUserAppInfo.userId = :userId",{userId:r}).getOne()}),"LatestUserAppInfoRepository::upsertLatestUserAppInfo",a)})(t,e,this.logger);return this.logger.trace({result:i},"LatestUserAppInfoRepository::getLatestUserAppInfo result"),i}},NotificationRecipientsRepository:class extends ra{async createNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::createNotificationRecipient started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.clientId&&t?.userId&&t?.notificationType&&t?.recipient&&null!=t?.isEnabled&&null!=t?.isUserProfile))return i.warn({params:t},"NotificationRecipientsRepository::createNotificationRecipient - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(fe),a=new Date,n={id:t.id,userId:r,clientId:t.clientId,notificationType:t.notificationType,recipient:t.recipient,isEnabled:t.isEnabled,isUserProfile:t.isUserProfile,unsubscribed:t.unsubscribed,unsubscribedInfo:t.unsubscribedInfo,dataSourceTypeId:t.dataSourceTypeId,createdAt:a,modifiedAt:a,userAlertConfigurationId:t.userAlertConfigurationId};return await i.save(n)}),"NotificationRecipientsRepository::createNotificationRecipient"):(i.warn({params:t},"NotificationRecipientsRepository::createNotificationRecipient - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"NotificationRecipientsRepository::createNotificationRecipient result"),i}async getNotificationRecipients(e){this.logger.trace(e,"NotificationRecipientsRepository::getNotificationRecipients started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - missing required parameters"),[];const r=na(t?.filters?.userId);if(null!=t?.filters?.userId&&null==r)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - userId should be a valid uuid"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(fe).createQueryBuilder("notificationRecipient");return i&&a.setQueryRunner(i),a=a.where("notificationRecipient.clientId = :clientId",{clientId:t.filters.clientId}),null!=r&&(a=a.andWhere("notificationRecipient.userId = :userId",{userId:r})),t?.projectionOptions?.withUserAlertConfiguration&&(a=a.leftJoinAndSelect("notificationRecipient.userAlertConfiguration","userAlertConfiguration")),await a.getMany()}),"NotificationRecipientsRepository::getNotificationRecipients",a)})(t,e,this.logger);return this.logger.trace(i,"NotificationRecipientsRepository::getNotificationRecipients result"),i}async updateNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::updateNotificationRecipient started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.notificationType||t?.values?.recipient||null!=t?.values?.isEnabled||null!=t?.values?.isUserProfile||null!=t?.values?.unsubscribed||null!=t?.values?.unsubscribedInfo)?e.safeQuery((async e=>{const i=e.getRepository(fe),r=new Date;let a=i.createQueryBuilder().update(fe).set({notificationType:t?.values?.notificationType,recipient:t?.values?.recipient,isEnabled:t?.values?.isEnabled,isUserProfile:t?.values?.isUserProfile,unsubscribed:t?.values?.unsubscribed,unsubscribedInfo:t?.values?.unsubscribedInfo,modifiedAt:r});return a=a.where("id = :id",{id:t?.filters?.id}),(await a.execute()).affected>0}),"NotificationRecipientsRepository::updateNotificationRecipient"):(i.warn({params:t},"NotificationRecipientsRepository::updateNotificationRecipient - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateNotificationRecipient result"),i}async updateUsersNotificationsUnsuscribedStatus(e){this.logger.trace(e,"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.userPhone&&t?.filters?.userCountryCode?null==t?.values?.unsubscribed?(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(fe),r=new Date;return(await i.query("UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '');",[t.values.unsubscribed,t.values.unsubscribedInfo,r,N.Phone,t.filters.userPhone,t.filters.userCountryCode])).affectedRows>0}),"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus"):(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus result"),i}async updateUsersNotificationsUnsubscribedInfoStatus(e){this.logger.trace(e,"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>!t?.filters?.recipient||t?.filters?.notificationType==N.Phone&&!t?.filters?.countryCode||null==t?.values?.unsubscribed||null==t?.values.unsubscribedInfo?(i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - missing required parameters"),null):e.safeQuery((async e=>{const r=e.getRepository(fe),a=new Date;let n,o,s,l;switch(t?.filters?.notificationType){case N.Phone:o="SELECT \n nr.userId\n FROM notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '');",l=[N.Phone,t.filters.recipient,t.filters.countryCode],n="UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (CASE nr.recipient\n WHEN 'phone' THEN u.telephone \n ELSE nr.recipient \n END) = REPLACE(?, (SELECT c.internationalDirectDialing FROM country c WHERE c.alpha2Code = ? LIMIT 1), '')\n ;",s=[t.values.unsubscribed,t.values.unsubscribedInfo,a,N.Phone,t.filters.recipient,t.filters.countryCode];break;case N.Email:o="SELECT nr.userId\n FROM notificationRecipient nr \n WHERE nr.notificationType = ?\n AND nr.recipient = ?\n UNION\n SELECT u.id\n FROM user u\n WHERE u.email = ?;",l=[N.Email,t.filters.recipient,t.filters.recipient],n="UPDATE notificationRecipient nr\n INNER JOIN user u ON u.id = nr.userId\n SET nr.unsubscribed = ?, nr.unsubscribedInfo = ?, nr.modifiedAt = ?\n WHERE nr.notificationType = ?\n AND (nr.recipient = ?\n OR nr.userId IN (SELECT u.id FROM user u WHERE u.email = ?))\n ;",s=[t.values.unsubscribed,t.values.unsubscribedInfo,a,N.Email,t.filters.recipient,t.filters.recipient];break;default:return i.warn({params:t},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus - NotificationRecipientType not implemented"),null}const d=await r.query(o,l);return console.log(d),d.length?(await r.query(n,s),d.map((e=>oa(e.userId)))):null}),"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus"))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::updateUsersNotificationsUnsuscribedStatus result"),i}async deleteNotificationRecipients(e){this.logger.trace(e,"NotificationRecipientsRepository::deleteNotificationRecipients started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.userId&&!t?.filters?.clientAlertConfigurationId)return i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipients - missing required parameters"),!1;const r=na(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipients - userId is not a valid uuid"),!1):e.safeQuery((async e=>{let i=e.getRepository(fe).createQueryBuilder().delete();return t?.filters?.id&&(i=i.andWhere("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(i=i.andWhere("userId = :userId",{userId:r})),t?.filters?.clientAlertConfigurationId&&(i=i.andWhere("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t?.filters?.clientAlertConfigurationId})),(await i.execute()).affected>0}),"NotificationRecipientsRepository::deleteNotificationRecipients")})(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::deleteNotificationRecipients result"),i}async deleteNotificationRecipientsByEmailOrPhone(e){this.logger.trace(e,"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.clientId&&t?.filters?.notificationType&&t?.filters?.recipient?"email"===t?.filters?.recipient.toLowerCase()||"phone"===t?.filters?.recipient.toLowerCase()?(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone - recipient should be a valid email or phone"),!1):e.safeQuery((async e=>{const i=e.getRepository(fe).createQueryBuilder().delete().where("clientId = :clientId",{clientId:t?.filters?.clientId}).andWhere("notificationType = :notificationType",{notificationType:t?.filters?.notificationType}).andWhere("recipient = :recipient",{recipient:t?.filters?.recipient});return(await i.execute()).affected>0}),"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone"):(i.warn({params:t},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"NotificationRecipientsRepository::deleteNotificationRecipientsByEmailOrPhone result"),i}},PositionRepository:class extends ra{async createPosition(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.messageId&&t?.actualDate&&t?.clientId&&t?.imei))return null;try{await e.connect();const r=e.getRepository($t),a=new Date,n={id:t.id,imei:t.imei,lat:t.lat,lon:t.lon,actualDate:t.actualDate,speed:t.speed,odometer:t.odometer,createdAt:t.createdAt??a,messageId:na(t.messageId),batteryPercentage:t.batteryPercentage,clientId:t.clientId,address:t.address,sendTime:t.sendTime,gpsUtcTime:t.gpsUtcTime,externalBatteryPercentage:t.externalBatteryPercentage,externalPowerVoltage:t.externalPowerVoltage,azimuth:t.azimuth,motionDetected:t.motionDetected,deleted:!1},o=await r.save(n);return o?(await Fa(e,o,i),{...o,id:Number(o.id)}):null}catch(e){throw i.error(e,"PositionsRepository::createPosition error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::insertPositions result"),i}async upsertPositions(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const r=e.getRepository($t),a=[];t.forEach((e=>{if(!(e?.messageId&&e?.actualDate&&e?.clientId&&e?.imei))return null;const t=new Date,i={id:e.id,imei:e.imei,lat:e.lat,lon:e.lon,actualDate:e.actualDate,speed:e.speed,odometer:e.odometer,createdAt:e.createdAt??t,messageId:na(e.messageId),batteryPercentage:e.batteryPercentage,clientId:e.clientId,address:e.address,sendTime:e.sendTime,gpsUtcTime:e.gpsUtcTime,externalBatteryPercentage:e.externalBatteryPercentage,externalPowerVoltage:e.externalPowerVoltage,azimuth:e.azimuth,motionDetected:e.motionDetected,deleted:!1};a.push(i)})),await r.upsert(a,{conflictPaths:["messageId"]});const n=await r.createQueryBuilder("p").where("p.messageId IN (:messageIds)",{messageIds:a.map((e=>e.messageId))}).orderBy("p.id","ASC").getMany();for(const t of n)await Fa(e,t,i);return n?.map((e=>({...e,id:Number(e.id)})))??[]}catch(e){throw i.error(e,"PositionsRepository::upsertPositions error"),e}finally{await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::insertPositions result"),i}async getPositionsByImei(e){this.logger.trace(e,"PositionsRepository::this.getPositionsByImei started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository($t),a=await i.createQueryBuilder("position").setQueryRunner(r).where("position.imei = :imei",{imei:t.filters.imei}).andWhere("position.deleted = 0").getMany();return a?.map((e=>({...e,id:Number(e.id)})))??[]}catch(e){throw i.error({error:e},"PositionsRepository::getPositionsByImei error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::getPositionsByImei result"),i}async getPositionsReportByClient(e){this.logger.trace(e,"PositionsRepository::getPositionsReportByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();let i=e.getRepository($t).createQueryBuilder("p").setQueryRunner(r).where("p.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("p.deleted = 0");t.filters.imeis&&(i=i.andWhere("p.imei IN (:...imeis)",{imeis:t.filters.imeis})),t.filters.actualDateFrom&&(i=i.andWhere("p.actualDate >= :actualDateFrom",{actualDateFrom:t.filters.actualDateFrom})),t.filters.actualDateTo&&(i=i.andWhere("p.actualDate <= :actualDateTo",{actualDateTo:t.filters.actualDateTo})),t.filters.speedMin&&(i=i.andWhere("p.speed >= :speedMin",{speedMin:t.filters.speedMin})),t.filters.speedMax&&(i=i.andWhere("p.speed <= :speedMax",{speedMax:t.filters.speedMax})),t.filters.odometerMin&&(i=i.andWhere("p.odometer >= :odometerMin",{odometerMin:t.filters.odometerMin})),t.filters.odometerMax&&(i=i.andWhere("p.odometer <= :odometerMax",{odometerMax:t.filters.odometerMax}));const a=i.clone().select("COUNT(p.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixPositionClientId_Imei_ActualDate"),a.useIndex("ixPositionClientId_Imei_ActualDate")):(i.useIndex("ixPositionClientId_ActualDate"),a.useIndex("ixPositionClientId_ActualDate")),i.innerJoin(`(${a.getQuery()})`,"sub"),t.sortOptions?.sortField&&i.orderBy(t.sortOptions.sortField,t.sortOptions.sortOrder),(await i.select(["p.imei as imei","p.createdAt as createdAt","p.actualDate as actualDate","p.lat as lat","p.lon as lon","p.messageId as messageId","p.sendTime as sendTime","p.address as address","p.speed as speed","p.odometer as odometer","p.batteryPercentage as batteryPercentage","p.externalPowerVoltage as externalPowerVoltage","p.externalBatteryPercentage as externalBatteryPercentage","p.azimuth as azimuth","sub.totalCount as totalCount"]).limit(t.pagingOptions.pageSize).offset(t.pagingOptions.pageSize*t.pagingOptions.pageIndex).getRawMany()).map(Qa)}catch(e){throw i.error({error:e},"PositionsRepository::GetPositionsReportByClientId error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({length:i.length},"PositionsRepository::getPositionsReportByClientId result"),i}async getLatestPositionByImei(e){this.logger.trace(e,"PositionsRepository::this.getLatestPositionByImei started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return null;const r=e.createQueryRunnerFromParams(t);try{await e.connect();const i=e.getRepository(Wt),a=await i.createQueryBuilder("latestPosition").setQueryRunner(r).where("latestPosition.imei = :imei",{imei:t.filters.imei}).getOne();return a?{...a,positionId:Number(a.positionId)}:null}catch(e){throw i.error({error:e},"PositionsRepository::getLatestPositionsByImei error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::getLatestPositionByImei result"),i}async getBatteryReportForDevice(e){this.logger.trace(e,"PositionsRepository::getBatteryReportForDevice started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.clientId||!t.filters.imei)return[];const r=e.createQueryRunnerFromParams(t);try{await e.connect();let i=e.getRepository($t).createQueryBuilder("p").setQueryRunner(r).select("DATE(p.actualDate)","actualDate").addSelect("MAX(p.batteryPercentage)","batteryPercentage").where("p.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("p.imei = :imei",{imei:t.filters.imei}).andWhere("p.deleted = 0");t.filters.startDate&&(i=i.andWhere("p.actualDate >= :startDate",{startDate:t.filters.startDate})),t.filters.endDate&&(i=i.andWhere("p.actualDate <= :endDate",{endDate:t.filters.endDate}));const a=t?.pagingOptions?.pageSize??100,n=t?.pagingOptions?.pageIndex??1;return i=i.groupBy("DATE(p.actualDate)").orderBy("DATE(p.actualDate)","DESC").limit(a).offset(a*(n-1)),await i.getRawMany()}catch(e){throw i.error({error:e},"PositionsRepository::GetPositionsReportByClientId error"),e}finally{await r.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace(i,"PositionsRepository::getLatestPositionByImei result"),i}},PromotionRepository:class extends ra{async createPromotion(e){this.logger.trace(e,"PromotionRepository::this.createPromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,qa)||Xa(t,i)?(i.warn({params:t},"PromotionRepository::createPromotion missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ee),r={bannerText:t.bannerText,description:t.description,discount:t.discount,discountBillingCycles:t.discountBillingCycles,endDate:t.endDate,freeServiceMonths:t.freeServiceMonths,name:t.name,startDate:t.startDate,status:t.status,trackerText:t.trackerText,type:t.type};return await i.save(r)??null}),"PromotionRepository::createPromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createPromotion result"),i}async updatePromotion(e){this.logger.trace(e,"PromotionRepository::this.updatePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Wa)||va(t,_a)||Xa(t,i)?(i.warn({params:t},"PromotionRepository::updatePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ee),{filters:r,values:a}=t;return(await i.createQueryBuilder().update(ee).set({bannerText:a.bannerText,description:a.description,discount:a.discount,discountBillingCycles:a.discountBillingCycles,endDate:a.endDate,freeServiceMonths:a.freeServiceMonths,name:a.name,startDate:a.startDate,status:a.status,trackerText:a.trackerText,type:a.type}).where("id = :id",{id:r.id}).execute()).affected>0}),"PromotionRepository::updatePromotion error"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::updatePromotion result"),i}async getPromotions(e){this.logger.trace({params:e},"PromotionRepository::getPromotions started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(va(t,ja))return i.warn({params:t},"PromotionRepository::getPromotions missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ee).createQueryBuilder("promotion");return i&&r.setQueryRunner(i),t.filters.id&&r.andWhere("promotion.id = :id",{id:t.filters.id}),t.filters.status&&r.andWhere("promotion.status = :status",{status:t.filters.status}),t.filters.onlyPromotionsWithinDateRange&&r.andWhere("NOW() BETWEEN promotion.startDate AND promotion.endDate"),(t.projectionOptions?.withMarketplacePromotions||t.filters.marketplaceId)&&(r.leftJoinAndMapMany("promotion.marketplacePromotions",Z,"marketplacePromotion","marketplacePromotion.promotionId = promotion.id"),t.filters.marketplaceId&&r.andWhere("marketplacePromotion.marketplaceId = :marketplaceId",{marketplaceId:t.filters.marketplaceId})),(t.projectionOptions?.withAsinPromotions||t.filters.asin)&&(r.leftJoinAndMapMany("promotion.asinPromotions",te,"asinPromotion","asinPromotion.promotionId = promotion.id"),t.filters.asin&&r.andWhere("asinPromotion.asin = :asin",{asin:t.filters.asin})),(t.projectionOptions?.withDevicePromotions||t.filters.imei)&&(r.leftJoinAndMapMany("promotion.devicePromotions",X,"devicePromotion","devicePromotion.promotionId = promotion.id"),t.filters.imei&&r.andWhere("devicePromotion.imei = :imei",{imei:t.filters.imei})),(t.projectionOptions?.withDeviceTypePromotions||t.filters.deviceTypeId)&&(r.leftJoinAndMapMany("promotion.deviceTypePromotions",Y,"deviceTypePromotion","deviceTypePromotion.promotionId = promotion.id"),t.filters.deviceTypeId&&r.andWhere("deviceTypePromotion.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId})),await r.orderBy("discount","DESC").getMany()??[]}),"PromotionRepository::getPromotions",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getPromotions result"),i}async bulkInsertMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.createMarketplacePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ya(t.items,za)?(i.warn({params:t},"PromotionRepository::createMarketplacePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(Z);return await i.save(t.items)??[]}),"PromotionRepository::createMarketplacePromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createMarketplacePromotion result"),i}async bulkInsertDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.createDeviceTypePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ya(t.items,Va)?(i.warn({params:t},"PromotionRepository::createDeviceTypePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(Y);return await i.save(t.items)??[]}),"PromotionRepository::createDeviceTypePromotion error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createDeviceTypePromotion result"),i}async deleteMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.deleteMarketplacePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>va(t,Ga)?(i.warn({params:t},"PromotionRepository::deleteMarketplacePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Z).createQueryBuilder().delete();return t.promotionId&&i.where("promotionId = :promotionId",{promotionId:t.promotionId}),t.marketplaceId&&i.andWhere("marketplaceId = :marketplaceId",{marketplaceId:t.marketplaceId}),(await i.execute()).affected>0}),"PromotionRepository::deleteMarketplacePromotion"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::deleteMarketplacePromotion result"),i}async deleteDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.deleteDeviceTypePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>va(t,Ja)?(i.warn({params:t},"PromotionRepository::deleteDeviceTypePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(Y).createQueryBuilder().delete();return t.promotionId&&i.where("promotionId = :promotionId",{promotionId:t.promotionId}),t.deviceTypeId&&i.andWhere("deviceTypeId = :deviceTypeId",{deviceTypeId:t.deviceTypeId}),(await i.execute()).affected>0}),"PromotionRepository::deleteDeviceTypePromotion"))(t,e,this.logger);return this.logger.trace({result:i},"PromotionRepository::deleteDeviceTypePromotion result"),i}async getDeviceTypePromotion(e){this.logger.trace(e,"PromotionRepository.getDeviceTypePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(va(t,Ha))return i.warn({params:t},"PromotionRepository::getDeviceTypePromotion missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Y).createQueryBuilder("deviceTypePromotion");return i&&r.setQueryRunner(i),await r.where("deviceTypePromotion.promotionId = :promotionId",{promotionId:t.filters.promotionId}).andWhere("deviceTypePromotion.deviceTypeId = :deviceTypeId",{deviceTypeId:t.filters.deviceTypeId}).getOne()??null}),"PromotionRepository::getDeviceTypePromotion",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getDeviceTypePromotion result"),i}async getMarketplacePromotion(e){this.logger.trace(e,"PromotionRepository.getMarketplacePromotion started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(va(t,Ka))return i.warn({params:t},"PromotionRepository::getMarketplacePromotion missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(Z).createQueryBuilder("marketplacePromotion");return i&&r.setQueryRunner(i),await r.where("marketplacePromotion.promotionId = :promotionId",{promotionId:t.filters.promotionId}).andWhere("marketplacePromotion.marketplaceId = :marketplaceId",{marketplaceId:t.filters.marketplaceId}).getOne()??null}),"PromotionRepository::getMarketplacePromotion",r)})(t,e,this.logger);return this.logger.trace({promotion:i},"PromotionRepository::getMarketplacePromotion result"),i}async createPromotionHistory(e){this.logger.trace(e,"PromotionRepository.createPromotionHistory started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,$a)?(i.warn({params:t},"PromotionRepository::createPromotionHistory missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Xt),r={...t};return await i.save(r)??null}),"PromotionRepository::createPromotionHistory error"))(t,e,this.logger);return this.logger.trace(i,"PromotionRepository::createPromotionHistory result"),i}},SecurityRepository:class extends aa{async getAllRoles(){this.logger.trace("SecurityRepository::getAllRoles started");const e=await(async e=>e.safeQuery3(Se,"securityRole",(async e=>e.select().getMany())))(this.dataSource);return this.logger.trace(e,"SecurityRepository::getAllRoles result"),e}async getUserRoles(e){this.logger.trace(e,"SecurityRepository::getUserRoles started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(De,"userSecurityRole",(e=>e.select().where("userId = :userId",{userId:na(t.filters.userId)}).getMany()),{tag:"SecurityRepository::getUserRoles",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::getUserRoles - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::getUserRoles result"),t}async getUserRolesByClientId(e){this.logger.trace(e,"SecurityRepository::getUserRolesByClientId started with params");const t=await(async(e,t,i)=>t?.filters?.clientId?e.safeQuery3(De,"userSecurityRole",(e=>{const i=e.select().where("clientId = :clientId",{clientId:t.filters.clientId});return t.filters.role&&i.andWhere("securityRoleId = :securityRoleId",{securityRoleId:t.filters.role}),i.getMany()}),{tag:"SecurityRepository::getUserRolesByClientId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::getUserRolesByClientId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::getUserRolesByClientId result"),t}async userIsInRole(e){this.logger.trace(e,"SecurityRepository::userIsInRole started with params");const t=await(async(e,t,i)=>t?.filters?.userId?null!==await e.safeQuery3(De,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:na(t.filters.userId)}).andWhere("securityRoleId = :securityRoleId",{securityRoleId:t.filters.role}).getOne()),{tag:"SecurityRepository::userIsInRole",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::userIsInRole - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::userIsInRole result"),t}async userIsAdminOrOwner(e){this.logger.trace(e,"SecurityRepository::userIsAdminOrOwner started with params");const t=await(async(e,t,i)=>t?.filters?.userId?null!==await e.safeQuery3(De,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:na(t.filters.userId)}).andWhere("securityRoleId IN (:...roles)",{roles:[v.Admin,v.Owner]}).getOne()),{tag:"SecurityRepository::userIsAdminOrOwner",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"SecurityRepository::userIsAdminOrOwner - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::userIsAdminOrOwner result"),t}async createUserRole(e){this.logger.trace(e,"SecurityRepository::createUserRole started with params");const t=await(async(e,t,i)=>t?.userId?e.safeQuery((async e=>{const i=e.getRepository(De),r=await i.findOne({where:{userId:na(t.userId)}});if(!r){const e={userId:na(t.userId),clientId:t.clientId,securityRoleId:t.roleId,devicesAccess:t.devicesAccess,boundariesAccess:t.boundariesAccess,minAccessDate:t.minAccessDate};return await i.save(e)}if(r.clientId===t.clientId&&r.securityRoleId===t.roleId)return r;throw new Error("User role cannot be created because another role already exists")}),"SecurityRepository::createUserRole"):(i.warn({params:t},"SecurityRepository::createUserRole - missing required parameters"),null))(this.dataSource,e,this.logger);return this.logger.trace(t,"SecurityRepository::createUserRole result"),t}async updateUserRole(e){this.logger.trace(e,"SecurityRepository::updateUserRole started with params");const t=await(async(e,t,i)=>{if(va(t,yr))return i.warn({params:t},"SecurityRepository::updateUserRole - missing required parameters"),!1;const r=na(t.filters.userId);return(await e.safeQuery3(De,"userSecurityRole",(async e=>{const i=e.update().where("userId = :userId",{userId:r}).andWhere("securityRoleId <> :roleId",{roleId:t.values.roleId}),a={};return t.values.roleId&&(a.securityRoleId=t.values.roleId),t.values.devicesAccess&&(a.devicesAccess=t.values.devicesAccess),t.values.boundariesAccess&&(a.boundariesAccess=t.values.boundariesAccess),t.values.minAccessDate&&(a.minAccessDate=t.values.minAccessDate),i.set(a).execute()}),{tag:"SecurityRepository::updateUserRole",replicationMode:"master"})).affected>0})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::updateUserRole result"),t}async removeUserRoles(e){this.logger.trace(e,"SecurityRepository::removeUserRoles started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery((async e=>{const i=e.getRepository(De),r=await i.find({where:{userId:na(t.filters.userId)}});return!r.length||(await i.remove(r),!0)}),"SecurityRepository::removeUserRoles"):(i.warn({params:t},"SecurityRepository::removeUserRoles - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"SecurityRepository::removeUserRoles result"),t}async bulkCreateUserAuthorizedDevices(e,t={batchSize:100,useUpsert:!1}){this.logger.trace(e,"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices started with params");const i=await(async(e,t,i,r={batchSize:100,useUpsert:!1})=>ya(t,vr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices - missing required parameters"),!1):e.safeQuery2((async e=>{const i=e.getRepository(Ii),a=Ya(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:na(e.userId),imei:e.imei})));let n=0;for(const e of a)if(e.length>0){let t=0;t=r.useUpsert?(await i.upsert(e,["clientId","userId","imei"]))?.identifiers?.length??0:(await i.save(e))?.length??0,n+=t}return n===t.length}),"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices"))(this.dataSource,e,this.logger,t);return this.logger.trace({result:i},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices result"),i}async getAuthorizedDevicesByUserId(e){this.logger.trace(e,"UserAuthorizedRepository::getAuthorizedDevicesByUserId started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(Ii,"uad",(e=>{const i=e.select().where("uad.userId = :userId",{userId:na(t.filters.userId)});return t.filters.securityGroupId&&i.andWhere("exists ( \n select 1 from device d \n\t inner join entityTag et on et.entityId = d.id and et.entityType = 'Device'\n\t inner join tag t on t.id = et.tagId and JSON_EXTRACT(t.metadata, '$.isSecurityGroup') = true \n\t where d.imei = uad.imei and t.id = :securityGroupId \n )",{securityGroupId:t.filters.securityGroupId}),i.getMany()}),{tag:"UserAuthorizedRepository::getAuthorizedDevicesByUserId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"UserAuthorizedRepository::getAuthorizedDevicesByUserId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"UserAuthorizedRepository::getAuthorizedDevicesByUserId result"),t}async bulkCreateUserAuthorizedBoundaries(e,t={batchSize:100,useUpsert:!1}){this.logger.trace(e,"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries started with params");const i=await(async(e,t,i,r={batchSize:100,useUpsert:!1})=>ya(t,hr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries - missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(hi),a=Ya(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:na(e.userId),boundaryId:Number(e.boundaryId)})));let n=0;for(const e of a)if(e.length>0){let t=0;t=r.useUpsert?(await i.upsert(e,["clientId","userId","boundaryId"]))?.identifiers?.length??0:(await i.save(e))?.length??0,n+=t}return n===t.length}),"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries"))(this.dataSource,e,this.logger,t);return this.logger.trace({result:i},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries result"),i}async getAuthorizedBoundariesByUserId(e){this.logger.trace(e,"UserAuthorizedRepository::getAuthorizedBoundariesByUserId started with params");const t=await(async(e,t,i)=>t?.filters?.userId?e.safeQuery3(hi,"uab",(e=>{const i=e.select().where("uab.userId = :userId",{userId:na(t.filters.userId)});return t.filters.securityGroupId&&i.andWhere("exists ( \n select 1 from boundary b \n\t inner join entityTag et on et.entityId = b.id and et.entityType = 'Boundary'\n\t inner join tag t on t.id = et.tagId and JSON_EXTRACT(t.metadata, '$.isSecurityGroup') = true \n\t where b.id = uab.boundaryId and t.id = :securityGroupId \n )",{securityGroupId:t.filters.securityGroupId}),i.getMany()}),{tag:"UserAuthorizedRepository::getAuthorizedBoundariesByUserId",replicationMode:t.queryOptions?.replicationMode}):(i.warn({params:t},"UserAuthorizedRepository::getAuthorizedBoundariesByUserId - missing required parameters"),[]))(this.dataSource,e,this.logger);return this.logger.trace(t,"UserAuthorizedRepository::getAuthorizedBoundariesByUserId result"),t}async bulkRemoveUserAuthorizedDevices(e){this.logger.trace(e,"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices started with params");const t=await(async(e,t,i)=>t?.filters?.userId&&t?.filters?.imeis?.length?(await e.safeQuery3(Ii,"userAuthorizedDevice",(e=>e.delete().where("userAuthorizedDevice.userId = :userId",{userId:na(t.filters.userId)}).andWhere("userAuthorizedDevice.imei IN (:imeis)",{imeis:t.filters.imeis}).execute()),{tag:"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices",replicationMode:"master"})).affected>0:(i.warn({params:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedDevices result"),t}async bulkRemoveUserAuthorizedBoundaries(e){this.logger.trace(e,"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries started with params");const t=await(async(e,t,i)=>t?.filters?.userId&&t?.filters?.boundaryIdList?.length?(await e.safeQuery3(hi,"userAuthorizedBoundary",(e=>e.delete().where("userAuthorizedBoundary.userId = :userId",{userId:na(t.filters.userId)}).andWhere("userAuthorizedBoundary.boundaryId IN (:boundaryIdList)",{boundaryIdList:t.filters.boundaryIdList}).execute()),{tag:"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries",replicationMode:"master"})).affected>0:(i.warn({params:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries - missing required parameters"),!1))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::bulkRemoveUserAuthorizedBoundaries result"),t}async getUserIdsByClientIdAndAuthorizedDevices(e){this.logger.trace(e,"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices started with params");const t=await(async(e,t,i)=>{if(va(t,fr)||!t.filters.imeisList.length)return i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices - missing required parameters"),[];const r=await e.safeQuery3(Ii,"userAuthorizedDevice",(e=>e.select("BIN_TO_UUID(userAuthorizedDevice.userId) as userId").distinct(!0).where("userAuthorizedDevice.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("userAuthorizedDevice.imei IN (:imeisList)",{imeisList:t.filters.imeisList}).getRawMany()),{tag:"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices",replicationMode:t.queryOptions?.replicationMode});return r?.map((e=>e.userId))??[]})(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices result"),t}async getUserIdsByClientIdAndAuthorizedBoundaries(e){this.logger.trace(e,"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries started with params");const t=await(async(e,t,i)=>ga(t,Ir)||!t.filters.boundaryIdList.length?(i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries - missing required parameters"),[]):(await e.safeQuery3(hi,"userAuthorizedBoundary",(e=>e.select("BIN_TO_UUID(userAuthorizedBoundary.userId) as userId").distinct(!0).where("userAuthorizedBoundary.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("userAuthorizedBoundary.boundaryId IN (:boundaryIdList)",{boundaryIdList:t.filters.boundaryIdList}).getRawMany()),{tag:"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries",replicationMode:t.queryOptions?.replicationMode})).map((e=>e.userId)))(this.dataSource,e,this.logger);return this.logger.trace({result:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries result"),t}},TagsRepository:class extends ra{async createTag(e){this.logger.trace(e,"TagRepository::this.createTrip started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,br)?(i.warn({params:t},"TagsRepository::createTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ni),r={...t,name:t.name.trim().toLowerCase(),isSecurityGroup:t.metadata?.isSecurityGroup??!1,createdAt:Sa()};return await i.save(r)??null}),"TagRepository::createTag error"))(t,e,this.logger);return this.logger.trace(i,"TagRepository::createTrip result"),i}async updateTag(e){this.logger.trace(e,"TagRepository::this.updateTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Rr)||!en({...t?.values,modifiedBy:void 0})?(i.warn({params:t},"TagRepository::updateTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ni),{filters:r,values:a}=t;return(await i.createQueryBuilder().update(ni).set({modifiedBy:a.modifiedBy,modifiedAt:Sa(),color:a.color,description:a.description,name:a.name,metadata:a.metadata}).where("id = :id",{id:r.tagId}).andWhere("clientId = :clientId",{clientId:r.clientId}).execute()).affected>0}),"TagRepository::updateTag error"))(t,e,this.logger);return this.logger.trace({result:i},"TagRepository::updateTag result"),i}async deleteTag(e){this.logger.trace(e,"TagRepository::deleteTag started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Dr)?(i.warn({params:t},"TagsRepository::deleteTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ni);return(await i.createQueryBuilder().delete().where("id = :id",{id:t.tagId}).andWhere("clientId = :clientId",{clientId:t.clientId}).execute()).affected>0}),"TagsRepository::deleteTag"))(t,e,this.logger);return this.logger.trace({result:i},"TagRepository::deleteTag result"),i}async searchTags(e){this.logger.trace(e,"TagRepository::searchTags started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,wr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(ni),{filters:a,pagingOptions:n}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:a.clientId});i&&o.setQueryRunner(i),a.names?.length&&(o=o.andWhere("name IN (:...names)",{names:a.names})),a.tagIds?.length&&(o=o.andWhere("id IN (:...tagIds)",{tagIds:a.tagIds})),a.metadata&&(o=o.andWhere("JSON_CONTAINS(metadata, :metadata)",{metadata:JSON.stringify(a.metadata)}));const s=await o.getCount(),l=n?.pageSize??50;o.limit(l);const d=(n?.pageIndex??0)*l;return o.offset(d),{tags:await o.getMany(),totalCount:s}}),"TagsRepository::searchTags",r)})(t,e,this.logger);return this.logger.trace(i,"TagRepository::searchTags result"),i}async bulkCreateTags(e){this.logger.trace(e,"TagRepository::bulkCreateTags started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>ga(t,Sr)||0===t.tags.length||!t.tags.every((e=>e.name))?(i.warn({params:t},"TagsRepository::bulkCreateTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(ni),r=t.tags.map((e=>({...e,name:e.name.trim().toLowerCase(),clientId:t.clientId,createdBy:t.createdBy,isSecurityGroup:e.metadata?.isSecurityGroup??!1,createdAt:Sa()})));return await i.save(r)??[]}),"TagRepository::bulkCreateTag error"))(t,e,this.logger);return this.logger.trace(i,"TagRepository::bulkCreateTags result"),i}async searchTagsByUser(e){this.logger.trace(e,"TagRepository::searchTagsByUser started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(ga(t,Ar)||va(t,Tr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t),{filters:a,pagingOptions:n}=t;let o=a.userNumberId;if(!a.userNumberId){const t=await Za(e,{filters:{id:a.userId}},i);o=t?.numberId}return e.safeQuery((async(e,t)=>{let i=e.getRepository(ni).createQueryBuilder("tag").where("tag.clientId = :clientId",{clientId:a.clientId});t&&i.setQueryRunner(t),i.innerJoin(Ut,"entityTag","entityTag.tagId = tag.id AND entityTag.entityType = 'User' AND entityTag.entityId = :userId",{userId:o}),a.metadata&&(i=i.andWhere("JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify(a.metadata)}));const r=await i.getCount(),s=n?.pageSize??50;i.limit(s);const l=(n?.pageIndex??0)*s;return i.offset(l),{tags:await i.getMany(),totalCount:r}}),"TagsRepository::searchTags",r)})(t,e,this.logger);return this.logger.trace(i,"TagRepository::searchTagsByUser result"),i}},TasksRepository:class extends ra{async createTaskSchedule(e){this.logger.trace(e,"TasksRepository::createTaskSchedule started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId&&t?.title&&t?.description&&null!=t?.repeats&&t?.createdBy&&(t.repeats||t.dueDate||t.dueOdometer||t.dueActiveHours)&&(!t.repeats||t.intervalDays||t.intervalOdometer||t.intervalActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(wt),r=new Date,a={...t,createdAt:r,status:"active"};return await i.save(a)}),"TasksRepository::createTaskSchedule"):(i.warn({params:t},"TasksRepository::createTaskSchedule missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"TasksRepository::createTaskSchedule result"),i}async getTaskSchedule(e){this.logger.trace(e,"TasksRepository::getTaskSchedule started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"TasksRepository::getTaskSchedule missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(wt).createQueryBuilder("taskSchedule");i&&r.setQueryRunner(i);const a=await r.where("taskSchedule.id = :id",{id:t.filters.id}).getOne();if(t.projectionOptions?.numberOfDevicesToGet>0&&a){const r=e.getRepository(At),n=r.createQueryBuilder("deviceTask");i&&n.setQueryRunner(i);const o=await n.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:a.id}).limit(t.projectionOptions.numberOfDevicesToGet).getMany();a.deviceTasks=o;const s=r.createQueryBuilder("deviceTask");i&&s.setQueryRunner(i);const l=await s.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:a.id}).select("COUNT(taskScheduleId)","deviceCount").groupBy("deviceTask.taskScheduleId").getRawOne();a.totalDevicesCount=l?l.deviceCount:0}return a}),"TasksRepository::getTaskSchedule",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTaskSchedule result"),i}async updateTaskSchedule(e){this.logger.trace(e,"TasksRepository::updateTaskSchedule started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.modifiedBy&&(0!=t?.values?.repeats||t?.values?.dueDate||t?.values?.dueOdometer||t?.values?.dueActiveHours)&&(!t?.values?.repeats||t?.values?.intervalDays||t?.values?.intervalOdometer||t?.values?.intervalActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(wt),r=new Date;return(await i.createQueryBuilder().update(wt).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"TasksRepository::updateTaskSchedule"):(i.warn({params:t},"TasksRepository::updateTaskSchedule missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::updateTaskSchedule result"),i}async deleteTaskSchedule(e){this.logger.trace(e,"TasksRepository::deleteTaskSchedule started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(wt),r=new Date;return(await i.createQueryBuilder().update(wt).set({status:"deleted",deletedBy:t.deletedBy,deletedAt:r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::deleteTaskSchedule"):(i.warn({params:t},"TasksRepository::deleteTaskSchedule missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTaskSchedule result"),i}async getTaskSchedules(e){this.logger.trace(e,"TasksRepository::getTaskSchedules started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await on(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTaskSchedules result"),i}async getTaskSchedulesCount(e){this.logger.trace(e,"TasksRepository::getTaskSchedulesCount started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!en(t?.filters))return i.warn({params:t},"TasksRepository::getTaskSchedulesCount missing required parameters"),-1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(wt).createQueryBuilder("taskSchedule");return i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(At,"dt","taskSchedule.id = dt.taskScheduleId")),t.filters.imeiList?.length&&(r=r.andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=tn(r,t.filters,rn,"taskSchedule"),t.filters.authorizedImeis?.length&&(r=r.andWhere("\n NOT EXISTS (\n SELECT 1\n FROM deviceTask dt1\n WHERE dt1.taskScheduleId = taskSchedule.id\n AND dt1.imei NOT IN (:authorizedDevices)\n )\n ",{authorizedDevices:t.filters.authorizedImeis})),await r.getCount()}),"TasksRepository::getTaskSchedulesCount",r)})(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::getTaskSchedulesCount result"),i}async getDeviceTasks(e){this.logger.trace(e,"TasksRepository::getDeviceTasks started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.taskScheduleId&&!t?.filters?.imei&&!t?.filters?.clientId)return i.warn({params:t},"TasksRepository::getDeviceTasks missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(At).createQueryBuilder("deviceTask");return i&&(r=r.setQueryRunner(i)),t.filters.taskScheduleId&&(r=r.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:t.filters.taskScheduleId})),t.filters.imei&&(r=r.andWhere("deviceTask.imei = :imei",{imei:t.filters.imei})),t.filters.clientId&&(r=r.andWhere("deviceTask.clientId = :clientId",{clientId:t.filters.clientId})),await r.getMany()}),"TasksRepository::getDeviceTasks",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getDeviceTasks result"),i}async setTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::setTaskScheduleDevices started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId?e.safeQuery((async e=>{const i=e.getRepository(wt),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const a=e.getRepository(At);if(await a.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).execute(),!t?.imeis?.length)return!0;const n=[];for(let e=0;e<t.imeis.length;e+=50)n.push(t.imeis.slice(e,e+50));for(const e of n){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),n=await a.insert(i);if(!n?.raw?.affectedRows)return!1}return!0}),"TasksRepository::setTaskScheduleDevices"):(i.error("TasksRepository::setTaskScheduleDevices - taskScheduleId is required"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::setTaskScheduleDevices result"),i}async addTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::addTaskScheduleDevices started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imeis?.length?e.safeQuery((async e=>{const i=e.getRepository(wt),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const a=e.getRepository(At),n=[];for(let e=0;e<t.imeis.length;e+=50)n.push(t.imeis.slice(e,e+50));for(const e of n){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),n=await a.upsert(i,{conflictPaths:["taskScheduleId","imei"]});if(!n?.raw?.affectedRows)return!1}return!0}),"TasksRepository::addTaskScheduleDevices"):(i.error("TasksRepository::addTaskScheduleDevices - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::addTaskScheduleDevices result"),i}async deleteTaskScheduleDevices(e){this.logger.trace(e,"TasksRepository::deleteTaskScheduleDevices started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imeis?.length?e.safeQuery((async e=>{const i=e.getRepository(At),r=await i.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).andWhere("imei IN (:...imeis)",{imeis:t.imeis}).execute();return r?.affected>0}),"TasksRepository::deleteTaskScheduleDevices"):(i.error("TasksRepository::deleteTaskScheduleDevices - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTaskScheduleDevices result"),i}async createTask(e){this.logger.trace(e,"TasksRepository::createTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId&&t?.imei&&t?.clientId&&(t.dueDate||t.dueOdometer||t.dueActiveHours)?e.safeQuery((async e=>{const i=e.getRepository(oi),r=new Date,a={...t,createdAt:r,status:"pending"};return await i.save(a)}),"TasksRepository::createTask"):(i.warn({params:t},"TasksRepository::createTask missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"TasksRepository::createTask result"),i}async getTasks(e){this.logger.trace(e,"TasksRepository::getTasks started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!en(t?.filters))return i.warn({params:t},"TasksRepository::getTasks missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(oi).createQueryBuilder("task");i&&(r=r.setQueryRunner(i)),t.projectionOptions?.includeTaskSchedule?r=r.leftJoinAndSelect("task.taskSchedule","taskSchedule"):(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),(t.projectionOptions?.includeDeviceStatus||null!=t.filters?.dueInActiveHoursFilter?.minValue||null!=t.filters?.dueInActiveHoursFilter?.maxValue||null!=t.filters?.dueInOdometerFilter?.maxValue||null!=t.filters?.dueInOdometerFilter?.minValue)&&(r=r.leftJoinAndSelect("task.deviceStatus","deviceStatus","deviceStatus.imei = task.imei")),r=tn(r,t.filters,an,"task"),r=tn(r,t.filters,nn,"taskSchedule"),null!=t.filters?.dueInOdometerFilter?.maxValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') IS NOT NULL \n AND task.dueOdometer IS NOT NULL\n AND (task.dueOdometer > CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4))\n AND task.dueOdometer - CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4)) <= :dueInMaxOdometer))",{dueInMaxOdometer:t.filters.dueInOdometerFilter.maxValue})),null!=t.filters?.dueInOdometerFilter?.minValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') IS NOT NULL \n AND task.dueOdometer IS NOT NULL\n AND (task.dueOdometer > CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4))\n AND task.dueOdometer - CAST(JSON_EXTRACT(deviceStatus.data, '$.odoMileage') AS DECIMAL(15,4)) >= :dueInMinOdometer))",{dueInMinOdometer:t.filters.dueInOdometerFilter.minValue})),null!=t.filters?.dueInActiveHoursFilter?.maxValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') IS NOT NULL\n AND task.dueActiveHours IS NOT NULL\n AND (task.dueActiveHours > CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4))\n AND task.dueActiveHours - CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4)) <= :dueInMaxActiveHours))",{dueInMaxActiveHours:t.filters.dueInActiveHoursFilter.maxValue})),null!=t.filters?.dueInActiveHoursFilter?.minValue&&(r=r.andWhere("(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') IS NOT NULL\n AND task.dueActiveHours IS NOT NULL\n AND (task.dueActiveHours > CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4))\n AND task.dueActiveHours - CAST(JSON_EXTRACT(deviceStatus.data, '$.hoursOfOperation') AS DECIMAL(15,4)) >= :dueInMinActiveHours))",{dueInMinActiveHours:t.filters.dueInActiveHoursFilter.minValue})),t.filters?.authorizedImeis?.length&&(r=r.andWhere("NOT EXISTS (\n SELECT 1\n FROM task task1\n WHERE task1.taskScheduleId = task.taskScheduleId\n AND task1.imei NOT IN (:authorizedDevices)\n )",{authorizedDevices:t.filters.authorizedImeis}));const a=t.sortingOptions?.length?t.sortingOptions:[{sortField:t.sortOptions?.sortField??"id",sortOrder:t.sortOptions?.sortOrder??"DESC"}];for(const e of a){const t=e.sortField??"id",i=e.sortOrder??"DESC";r=r.addOrderBy(`task.${t}`,i)}return await r.limit(t?.pagingOptions?.pageSize??100).offset((t?.pagingOptions?.pageSize??100)*(t?.pagingOptions?.pageIndex??0)).getMany()}),"TasksRepository::getTasks",r)})(t,e,this.logger);return this.logger.trace(i,"TasksRepository::getTasks result"),i}async getTasksCount(e){this.logger.trace(e,"TasksRepository::getTasksCount started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!en(t?.filters))return i.warn({params:t},"TasksRepository::getTasksCount missing required parameters"),-1;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(oi).createQueryBuilder("task");return i&&(r=r.setQueryRunner(i)),(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),r=tn(r,t.filters,an,"task"),r=tn(r,t.filters,nn,"taskSchedule"),t.filters?.authorizedImeis?.length&&(r=r.andWhere("NOT EXISTS (\n SELECT 1\n FROM task task1\n WHERE task1.taskScheduleId = task.taskScheduleId\n AND task1.imei NOT IN (:authorizedDevices)\n )",{authorizedDevices:t.filters.authorizedImeis})),await r.getCount()}),"TasksRepository::getTasksCount",r)})(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::getTasksCount result"),i}async updateTask(e){this.logger.trace(e,"TasksRepository::updateTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&t?.values?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(oi),r=new Date;return(await i.createQueryBuilder().update(oi).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id}).execute()).affected>0}),"TasksRepository::updateTask"):(i.warn({params:t},"TasksRepository::updateTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::updateTask result"),i}async setTaskAsPastDue(e){this.logger.trace(e,"TasksRepository::setTaskAsPastDue started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(oi),r=new Date;return(await i.createQueryBuilder().update(oi).set({status:"past_due",modifiedBy:t.modifiedBy,modifiedAt:r,pastDueAt:t.pastDueAt??r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::setTaskAsPastDue"):(i.warn({params:t},"TasksRepository::setTaskAsPastDue missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::setTaskAsPastDue result"),i}async completeTask(e){this.logger.trace(e,"TasksRepository::completeTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id?e.safeQuery((async e=>{const i=e.getRepository(oi),r=new Date,a=t.includeTimeInCompletedAt??!1,n=t.completedAt??r;return a||n.setHours(0,0,0,0),(await i.createQueryBuilder().update(oi).set({status:"completed",completedBy:t.completedBy,completedAt:n,completionNotes:t.completionNotes,completionOdometer:t.completionOdometer,completionActiveHours:t.completionActiveHours,completionMetadata:t.completionMetadata,includeTimeInCompletedAt:a,cost:t.cost,timeSpent:t.timeSpent}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::completeTask"):(i.warn({params:t},"TasksRepository::completeTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::completeTask result"),i}async deleteTask(e){this.logger.trace(e,"TasksRepository::deleteTask started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(oi),r=new Date;return(await i.createQueryBuilder().update(oi).set({status:"deleted",deletedBy:t.deletedBy,deletedAt:r}).where("id = :id",{id:t.id}).execute()).affected>0}),"TasksRepository::deleteTask"):(i.warn({params:t},"TasksRepository::deleteTask missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"TasksRepository::deleteTask result"),i}},TripRepository:class extends aa{async createTrip(e){this.logger.trace(e,"TripRepository::this.createTrip started with params");const t=await(async(e,t)=>e.safeQuery2((async e=>{const i=e.getRepository(si),r=new Date,a={...t,createdAt:t.createdAt??r};return await i.save(a)??null}),"TripRepository::createTrip error"))(this.dataSource,e);return this.logger.trace(t,"TripRepository::createTrip result"),t}async updateTripEndValues(e){this.logger.trace(e,"TripRepository::this.updateTripEndValues started with params");const t=await(async(e,t)=>{const i=na(t?.filters?.tripGuid),{values:r}=t;return(await e.safeQuery3(si,"trip",(async e=>e.update().set({endDate:r.endDate,endLat:r.endLat,endLon:r.endLon,endAddress:r.endAddress,positionEnd:r.positionEnd,endMessageId:r.endMessageId,distance:r.distance,duration:r.duration,tripType:r.tripType,tripCompletionStatusId:r.tripCompletionStatusId}).where("tripGuid = :tripGuid",{tripGuid:i}).execute()),{tag:"TripRepository::updateTripEndValues",replicationMode:"master"})).affected>0})(this.dataSource,e);return this.logger.trace({result:t},"TripRepository::updateTripEndValues result"),t}async getTripById(e,t){this.logger.trace({id:e,forceUseReplica:t},"TripRepository::this.getTripById started with params");const i=await(async(e,t,i,r)=>{const a=na(t);return a?await e.safeQuery3(si,"trip",(async e=>e.select().where("tripGuid = :tripGuid",{tripGuid:a}).andWhere("deleted = 0").getOne()),{replicationMode:r?"slave":"master",tag:"TripRepository::getTripById"}):(i.warn("TripRepository::getTripById missing required parameter tripGuid"),null)})(this.dataSource,e,this.logger,t);return this.logger.trace(i,"TripRepository::getTripById result"),i}async getTrips(e){this.logger.trace(e,"TripRepository::this.getTrips started with params");const t=await(async(e,t,i)=>ga(t,Br)?(i.warn("TripRepository::getTrips missing required parameters"),null):await e.safeQuery3(si,"trip",(async e=>{const i=e.select(["trip.id as id","trip.tripGuid as tripGuid","trip.startDate as startDate","trip.endDate as endDate","trip.clientId as clientId","trip.imei as imei","trip.startLat as startLat","trip.startLon as startLon","trip.endLat as endLat","trip.endLon as endLon","trip.startAddress as startAddress","trip.endAddress as endAddress","trip.positionStart as positionStart","trip.positionEnd as positionEnd","trip.startMessageId as startMessageId","trip.endMessageId as endMessageId","trip.startSendTimeMessage as startSendTimeMessage","trip.endSendTimeMessage as endSendTimeMessage","trip.createdAt as createdAt","trip.distance as distance","trip.duration as duration","trip.tripType as tripType","trip.tripCompletionStatusId as tripCompletionStatusId","device.name as deviceName"]);i.innerJoin(ue,"device","device.clientId = trip.clientId AND device.imei = trip.imei"),i.useIndex("ixTripClientIdImeiStartDate");const{filters:r,pagingOptions:a,sortOptions:n}=t;i.where("trip.clientId = :clientId",{clientId:r.clientId}),i.andWhere("trip.deleted = 0"),r.imeis?.length&&i.andWhere("trip.imei IN (:imeiList)",{imeiList:r.imeis}),i.andWhere("trip.startDate between :from and :to",{from:r.from,to:r.to}),r.deviceStatus||(r.deviceStatus="A"),sn(i,r,"device.status","=","deviceStatus"),sn(i,r,"device.name","=","deviceName"),sn(i,r,"trip.tripCompletionStatusId","=","completionStatus"),sn(i,r,"trip.tripType","=","tripType"),sn(i,r,"trip.duration",">=","durationMin"),sn(i,r,"trip.duration","<=","durationMax"),sn(i,r,"trip.distance",">=","distanceMin"),sn(i,r,"trip.distance","<=","distanceMax"),((e,t)=>{let i="trip",r=t?.sortField??"startDate";"deviceName"===r&&(i="device",r="name"),e.orderBy(`${i}.${r}`,"ASC"===t?.sortOrder?"ASC":"DESC")})(i,n);const o=i.getCount(),s=a.pageSize??50;i.limit(s);const l=(a.pageIndex??0)*s;i.offset(l);const d=await i.getRawMany(),[u,c]=await Promise.all([o,d]);return{trips:c.map((e=>({id:e.id,tripGuid:e.tripGuid,startDate:e.startDate,endDate:e.endDate,clientId:e.clientId,imei:e.imei,startLat:e.startLat,startLon:e.startLon,endLat:e.endLat,endLon:e.endLon,startAddress:e.startAddress,endAddress:e.endAddress,positionStart:e.positionStart,positionEnd:e.positionEnd,startMessageId:e.startMessageId,endMessageId:e.endMessageId,startSendTimeMessage:e.startSendTimeMessage,endSendTimeMessage:e.endSendTimeMessage,createdAt:e.createdAt,distance:e.distance,duration:e.duration,tripType:e.tripType,tripCompletionStatusId:e.tripCompletionStatusId,deviceName:e.deviceName}))),totalCount:u}}),{replicationMode:t.queryOptions?.forceUseReplica?"slave":"master",tag:"TripRepository::getTrips"}))(this.dataSource,e,this.logger);return this.logger.trace({totalCount:t?.totalCount??0},"TripRepository::getTrips result.totalCount"),t}async upsertTrip(e){this.logger.trace(e,"TripRepository::this.upsertTrip started with params");const t=await(async(e,t)=>e.safeQuery2((async e=>{const i=e.getRepository(si),r=new Date,a={...t,createdAt:t.createdAt??r},n=await i.upsert(a,{conflictPaths:["tripGuid"]});return n?.raw?.affectedRows>0}),"TripRepository::upsertTrip error"))(this.dataSource,e);return this.logger.trace({result:t},"TripRepository::upsertTrip result"),t}async getDeviceTripConfiguration(e){this.logger.trace(e,"TripRepository::this.getDeviceTripConfiguration started with params");const t=await(async(e,t,i)=>ga(t,Ur)?(i.warn("TripRepository::getTrips missing required parameters"),null):await e.safeQuery3(ue,"device",(async e=>{const i=e.select(["device.clientId as clientId","device.deviceTypeId as deviceTypeId","uad.servicePlan as servicePlan","cds.generateTrips as generateTrips","cds.stopThresholdMinutes as stopThresholdMinutes","cds.movementThresholdSpeed as movementThresholdSpeed","cds.reportingMode as reportingMode"]),r=t?.filters?.clientId?"cds.clientId = device.clientId AND cds.imei = device.imei":"cds.imei = device.imei";i.innerJoin(at,"cds",r).leftJoin(pi,"uad","uad.imei = device.imei");const{filters:a}=t;a.clientId?i.where("device.clientId = :clientId",{clientId:a.clientId}).andWhere("device.imei = :imei",{imei:a.imei}):i.where("device.imei = :imei",{imei:a.imei});const n=await i.getRawOne();return n?{...n,generateTrips:1===n.generateTrips}:null}),{replicationMode:t.queryOptions?.forceUseReplica?"slave":"master",tag:"TripRepository::getTrips"}))(this.dataSource,e,this.logger);return this.logger.trace(t,"TripRepository::getDeviceTripConfiguration result"),t}},UserActivationsRepository:class extends ra{async createUserActivation(e){this.logger.trace(e,"UserActivationsRepository::createUserActivation started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.clientId)return i.warn({params:t},"UserActivationsRepository::createUserActivation - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(ci),a=new Date,n={id:t?.id,userId:r,clientId:t?.clientId,createdAt:a,legacyCreatedAt:a,status:t?.status??"A"};return await i.save(n)}),"UserActivationsRepository::createUserActivation"):(i.warn({params:t},"UserActivationsRepository::createUserActivation - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivation result"),i}async getUserActivations(e){this.logger.trace(e,"UserActivationsRepository::getUserActivations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.clientId)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),[];const r=na(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(ci).createQueryBuilder("userActivation");return i&&a.setQueryRunner(i),t.filters.userId&&(a=a.where("userActivation.userId = :userId",{userId:r})),t.filters.clientId&&(a=a.andWhere("userActivation.clientId = :clientId",{clientId:t.filters.clientId})),await a.getMany()}),"UserActivationsRepository::getUserActivations",a)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivations result"),i}async deleteUserActivation(e){this.logger.trace(e,"UserActivationsRepository::deleteUserActivation started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId)return i.warn({params:t},"UserActivationsRepository::deleteUserActivation - missing required parameters"),!1;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(ci);return(await t.createQueryBuilder("userActivation").delete().where("userId = :userId",{userId:r}).execute()).affected>0}),"UserActivationsRepository::deleteUserActivation"):(i.warn({params:t},"UserActivationsRepository::deleteUserActivation - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::deleteUserActivation result"),i}async getUserActivationDevices(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationDevices started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.imei)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(pi).createQueryBuilder("userActivationDevice");return i&&r.setQueryRunner(i),t.filters.id&&(r=r.where("userActivationDevice.id = :id",{id:t.filters.id})),t.filters.imei&&(r=r.andWhere("userActivationDevice.imei = :imei",{imei:t.filters.imei})),r=r.orderBy("userActivationDevice.id","DESC"),await r.getMany()}),"UserActivationsRepository::getUserActivationDevices",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationDevices result"),i}async getUserActivationDevicesByClientId(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationDevicesByClientId started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId)return i.warn({params:t},"UserActivationsRepository::getUserActivationDevicesByClientId - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(pi),a="SELECT *\n FROM (\n SELECT uad.*,\n row_number() over (partition by uad.imei order by uad.createdAt desc) as rk\n FROM userActivationDevice uad\n INNER JOIN device d on uad.deviceId = d.id\n WHERE d.clientId = ?\n ) AS sub\n WHERE sub.rk = 1";return(i?await i.query(a,[t.filters.clientId]):r.query(a,[t.filters.clientId])).map((e=>({...e,notificationByEmail:1===e.notificationByEmail,notificationBySms:1===e.notificationBySms,planAnnual:1===e.planAnnual})))}),"UserActivationsRepository::getUserActivationDevicesByClientId",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationDevicesByClientId result"),i}async createUserActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationDevice started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userActivationId&&t?.deviceId&&t?.imei?e.safeQuery((async e=>{const i=e.getRepository(pi),r=new Date,a={id:t?.id,deviceId:t?.deviceId,billingInterval:t?.billingInterval,deviceName:t?.deviceName,userActivationId:t?.userActivationId,trackingReason:t?.trackingReason,deviceColor:t?.deviceColor,notificationByEmail:t?.notificationByEmail,notificationBySms:t?.notificationBySms,planAnnual:t?.planAnnual,dataSourceTypeId:t?.dataSourceTypeId,subscriptionId:t?.subscriptionId,platform:t?.platform,eventType:t?.eventType,planCode:t?.planCode,servicePlan:t?.servicePlan,model:t?.model,imei:t?.imei,status:t?.status,createdAt:r,modifiedAt:r};return await i.save(a)}),"UserActivationsRepository::createUserActivation"):(i.warn({params:t},"UserActivationsRepository::createUserActivation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationDevice result"),i}async getLastActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::getLastActivationDevice started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UserActivationsRepository::getLastActivationDevice - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(pi).createQueryBuilder("userActivationDevice");i&&r.setQueryRunner(i),t.projectionOptions?.withDevice&&(r=r.innerJoinAndSelect("userActivationDevice.device","device")),t.projectionOptions?.withUserActivation&&(r=r.innerJoinAndSelect("userActivationDevice.userActivation","userActivation")),r=r.where("LOWER(userActivationDevice.imei) = LOWER(:imei)",{imei:t.filters.imei});const a=t.sortOptions?.sortField?`userActivationDevice.${t.sortOptions.sortField}`:"userActivationDevice.id";return r=r.orderBy(a,"DESC").limit(1),await r.getOne()}),"UserActivationsRepository::getLastActivationDevice",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getLastActivationDevice result"),i}async updateUserActivationDevice(e){this.logger.trace(e,"UserActivationsRepository::updateUserActivationDevice started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>(t?.filters?.imei||t?.filters?.id)&&(t?.values?.trackingReason||t?.values?.deviceName||t?.values?.deviceColor||null!=t?.values?.planAnnual||t?.values?.subscriptionId||t?.values?.platform||t?.values?.model||t?.values?.servicePlan)?e.safeQuery((async e=>{const i=e.getRepository(pi),r=new Date;let a=i.createQueryBuilder().update(pi).set({...t.values,modifiedAt:r});return t.filters.imei&&(a=a.where("imei = :imei",{imei:t.filters.imei})),t.filters.id&&(a=a.andWhere("id = :id",{id:t.filters.id})),(await a.execute()).affected>0}),"UserActivationsRepository::updateUserActivationDevice"):(i.warn({params:t},"UserActivationsRepository::updateUserActivationDevice - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::updateUserActivationDevice result"),i}async getUserActivationMetrics(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationMetrics started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - missing required parameters"),null;const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(gi).createQueryBuilder("userActivationMetric");return i&&a.setQueryRunner(i),t.filters.userId&&(a=a.where("userActivationMetric.userId = :userId",{userId:r})),await a.getOne()}),"UserActivationsRepository::getUserActivationMetrics",a)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationMetrics result"),i}async updateUserActivationMetrics(e){this.logger.trace(e,"UserActivationsRepository::updateUserActivationMetrics started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=na(t?.filters?.userId);return r&&(t?.values?.firstName||t?.values?.lastName||t?.values?.email||t?.values?.phone||t?.values?.trackingReason||t?.values?.companyName||t?.values?.role||t?.values?.industry||t?.values?.devicesActivatingCategory||t?.values?.assetsCountRange||t?.values?.devicesActivatingCount||t?.values?.plan||t?.values?.usersInvitedCount||null!=t?.values?.meetingScheduled||t?.values?.planAnnual||t?.values?.planId||t?.values?.spyEnvironment||t?.values?.jarvisScore||t?.values?.enrichmentCompanyDescription||t?.values?.jarvisEnrichmentCompanyEin||t?.values?.enrichmentCompanyEmployees||t?.values?.enrichmentCompanyIndustry||t?.values?.enrichmentCompanyLocation||t?.values?.enrichmentCompanyName||t?.values?.enrichmentCompanyRevenue||t?.values?.enrichmentPrivateDomain||t?.values?.enrichmentPublicTicker||t?.values?.enrichmentRole||t?.values?.enrichmentTags||t?.values?.jenrichmentTitle||t?.values?.enrichmentVerifiedEmployment)?e.safeQuery((async e=>{const i=e.getRepository(gi),a=new Date;let n=i.createQueryBuilder().update(gi).set({...t.values,modifiedAt:a});return r&&(n=n.andWhere("userId = :userId",{userId:r})),(await n.execute()).affected>0}),"UserActivationsRepository::UpdateUserActivationMetrics"):(i.warn({params:t},"UserActivationsRepository::UpdateUserActivationMetrics - missing required parameters"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserActivationsRepository::updateUserActivationMetrics result"),i}async createUserActivationEvent(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationEvent started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.eventId||!t?.eventName)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - missing required parameters"),null;const r=na(t?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - user id should be a valid UUID"),null;const a=na(t?.eventId);return a?.length?e.safeQuery((async e=>{const i=e.getRepository(mi),n=new Date,o={userId:r,eventId:a,eventName:t?.eventName,eventValue:t?.eventValue,eventMetadata:t?.eventMetadata,platform:t?.platform,ip:t?.ip,userAgent:t?.userAgent,createdAt:t?.createdAt??n};return await i.save(o)}),"UserActivationsRepository::createUserActivationEvent"):(i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - event id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationEvent result"),i}async createUserActivationMetric(e){this.logger.trace(e,"UserActivationsRepository::createUserActivationMetric started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.firstName&&t?.lastName&&t?.email))return i.warn({params:t},"UserActivationsRepository::createUserActivationMetric - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(gi),a=new Date,n={id:t?.id,userId:r,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phone:t?.phone,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserActivationsRepository::createUserActivationMetric"):(i.warn({params:t},"UserActivationsRepository::createUserActivationMetric - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::createUserActivationMetric result"),i}async getUserActivationById(e){this.logger.trace(e,"UserActivationsRepository::getUserActivationById started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UserActivationsRepository::getUserActivations - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(ci).createQueryBuilder("userActivation");return i&&r.setQueryRunner(i),r=r.andWhere("userActivation.id = :id",{id:t.filters.id}),await r.getOne()}),"UserActivationsRepository::getUserActivations",r)})(t,e,this.logger);return this.logger.trace(i,"UserActivationsRepository::getUserActivationById result"),i}},UserAppFeedbackRepository:class extends ra{async createUserAppFeedback(e){this.logger.trace(e,"UserAppFeedbackRepository::createUserAppFeedback started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||!t?.platform||!t?.appVersion)return i.warn({params:t},"UserAppFeedbackRepository::createUserAppFeedback - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(yi),a={id:t.id,userId:r,platform:t.platform,appVersion:t.appVersion,feedback:t.feedback,amazonReviewDate:t.amazonReviewDate,createdAt:new Date};return await i.save(a)}),"UserAppFeedbackRepository::createUserAppFeedback"):(i.warn({userId:t?.userId},"UserAppFeedbackRepository::createUserAppFeedback - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserAppFeedbackRepository::createUserAppFeedback result"),i}},UserAppIncidentsRepository:class extends ra{async getUserAppIncidents(e){this.logger.trace(e,"UserAppIncidentsRepository::getUserAppIncidents started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - missing required parameters"),[];const r=na(t.filters.userId);if(!r?.length)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - userId is not a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(vi).createQueryBuilder("userAppIncident").where("userAppIncident.userId = :userId",{userId:r}).andWhere("userAppIncident.createdAt between :createdFrom and :createdTo",{createdFrom:t.filters.createdFrom,createdTo:t.filters.createdTo}).orderBy("userAppIncident.createdAt","DESC");return i&&a.setQueryRunner(i),await a.getMany()}),"UserAppIncidentsRepository::getUserAppIncidents",a)})(t,e,this.logger);return this.logger.trace(i,"UserAppIncidentsRepository::getUserAppIncidents result"),i}async upsertUserAppIncident(e){this.logger.trace(e,"UserAppIncidentsRepository::upsertUserAppIncident started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t.deviceOs&&t.stage&&t.appVersion&&t?.errorId))return i.warn({params:t},"UserAppIncidentsRepository::upsertUserAppIncident - missing required parameters"),!1;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(vi),a=new Date,n={id:t.id,userId:r,userName:t.userName,userEmail:t.userEmail,deviceOs:t.deviceOs,deviceManufacturer:t.deviceManufacturer,deviceModel:t.deviceModel,stage:t.stage,appVersion:t.appVersion,errorMessage:t.errorMessage,errorFirstReceivedAt:t.errorFirstReceivedAt,errorReceivedAt:t.errorReceivedAt,deviceJailbroken:t.deviceJailbroken,deviceOsVersion:t.deviceOsVersion,deviceFreeMemory:t.deviceFreeMemory,deviceTotalMemory:t.deviceTotalMemory,deviceCharging:t.deviceCharging,deviceBatteryLevel:t.deviceBatteryLevel,deviceNetworkAccess:t.deviceNetworkAccess,appActiveScreen:t.appActiveScreen,appInForeground:t.appInForeground,appDurationInForeground:t.appDurationInForeground,appBundleId:t.appBundleId,incidentUrl:t.incidentUrl,errorId:t.errorId,createdAt:a},o=await i.upsert(n,{conflictPaths:["userId","errorId"]});return o?.raw?.affectedRows>0}),"UserAppIncidentsRepository::upsertUserAppIncident"):(i.warn({params:t},"UserAppIncidentsRepository::upsertUserAppIncident - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace({result:i},"UserAppIncidentsRepository::upsertUserAppIncident result"),i}},UserConfigurationsRepository:class extends ra{async getUserConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.clientId&&!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - missing required parameters"),[];const r=na(t?.filters?.userId);if(t?.filters?.userId&&!r)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(be).createQueryBuilder("userConfiguration");return i&&a.setQueryRunner(i),t.filters.clientId&&(a=a.innerJoin("userConfiguration.user","user"),a=a.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),r&&(a=a.andWhere("userConfiguration.userId = :userId",{userId:r})),await a.getMany()}),"UserConfigurationsRepository::getUserConfigurations",a)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::getUserConfigurations result"),i}async createUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::createUserConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.userId||null==t?.isMetric)return i.warn({params:t},"UserConfigurationsRepository::createUserConfiguration - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(be),a=new Date,n={id:t?.id,userId:r,isMetric:t?.isMetric,timezone:t?.timezone,defaultMapLayer:t?.defaultMapLayer,speedUnits:t?.speedUnits,distanceUnits:t?.distanceUnits,alertsNotificationsOn:null==t?.alertsNotificationsOn||t?.alertsNotificationsOn,dataSourceTypeId:t?.dataSourceTypeId,homepage:t?.homepage,temperatureUnits:t?.temperatureUnits,addressFormat:t?.addressFormat,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserConfigurationsRepository::createUserConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::createUserConfiguration - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::createUserConfiguration result"),i}async updateUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::updateUserConfiguration - missing required parameters"),!1;const r=na(t?.filters?.userId);return r?t?.values?.timezone||t?.values?.defaultMapLayer||t?.values?.speedUnits||t?.values?.distanceUnits||null!=t?.values?.alertsNotificationsOn||t?.values?.dataSourceTypeId||t?.values?.homepage||t?.values?.temperatureUnits||t?.values?.addressFormat?e.safeQuery((async e=>{const i=e.getRepository(be),a=new Date,n=i.createQueryBuilder().update(be).set({timezone:t.values.timezone,defaultMapLayer:t.values.defaultMapLayer,speedUnits:t.values.speedUnits,distanceUnits:t.values.distanceUnits,alertsNotificationsOn:t.values.alertsNotificationsOn,dataSourceTypeId:t.values.dataSourceTypeId,homepage:t.values.homepage,temperatureUnits:t.values.temperatureUnits,modifiedAt:a,addressFormat:t.values.addressFormat}).where("userId = :userId",{userId:r});return(await n.execute()).affected>0}),"UserConfigurationsRepository::updateUserConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserConfiguration - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserConfiguration - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserConfiguration result"),i}async deleteUserConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::deleteUserConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserConfiguration - missing required parameters"),!1;const r=na(t?.filters?.userId);return r?e.safeQuery((async e=>{const t=e.getRepository(be).createQueryBuilder().delete().where("userId = :userId",{userId:r});return(await t.execute()).affected>0}),"UserConfigurationsRepository::deleteUserConfiguration"):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserConfiguration - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserConfiguration result"),i}async getUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - missing required parameters"),[];const r=na(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(Ie).createQueryBuilder("userAlertConfiguration");return i&&a.setQueryRunner(i),a=a.innerJoinAndSelect("userAlertConfiguration.alertType","alertType",t.filters.includeBeta?void 0:"alertType.stage = 'prod'"),a=a.where("userAlertConfiguration.userId = :userId",{userId:r}),t?.projectionOptions?.withNotificationRecipients&&(a=a.leftJoinAndSelect("userAlertConfiguration.notificationRecipients","notificationRecipient")),a=a.orderBy("userAlertConfiguration.alertTypeId"),await a.getMany()}),"UserConfigurationsRepository::getUserAlertConfigurations",a)})(t,e,this.logger);return this.logger.trace(i,"UserConfigurationsRepository::getUserAlertConfigurations result"),i}async bulkCreateUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.alertConfigurations?.length?e.safeQuery((async e=>{const r=e.getRepository(Ie),a=[];for(const e of t.alertConfigurations){if(!e?.userId||!e?.alertTypeId)return i.warn(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - User alert configuration could not be created: missing required parameters"),[];const t=na(e?.userId);if(!t?.length)return i.warn(e,"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - User alert configuration could not be created: user id should be a valid UUID"),[];const r={id:e?.id,userId:t,alertTypeId:e?.alertTypeId,smsNotification:e?.smsNotification,emailNotification:e?.emailNotification,appNotification:e?.appNotification,pushNotification:e?.pushNotification,alertValue:e?.alertValue,alertMetadata:e?.alertMetadata,name:e?.name,createdBy:e?.createdBy,enabled:e?.enabled,filter:e?.filter};a.push(r)}return a.length?await r.save(a):[]}),"UserConfigurationsRepository::bulkCreateUserAlertConfigurations"):(i.warn({params:t},"UserConfigurationsRepository::bulkCreateUserAlertConfigurations - missing required parameters"),[]))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::bulkCreateUserAlertConfigurations result"),i}async createUserAlertConfiguration(e){this.logger.trace(e,"UserConfigurationsRepository::createUserAlertConfiguration started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.alertTypeId?e.safeQuery((async e=>{const r=e.getRepository(Ie),a=na(t?.userId);if(!a?.length)return i.warn(t,"UserConfigurationsRepository::createUserAlertConfiguration - User alert configuration could not be created: user id should be a valid UUID"),null;const n={id:t?.id,userId:a,alertTypeId:t?.alertTypeId,smsNotification:t?.smsNotification,emailNotification:t?.emailNotification,appNotification:t?.appNotification,pushNotification:t?.pushNotification,alertValue:t?.alertValue,alertMetadata:t?.alertMetadata,name:t?.name,createdBy:t?.createdBy,enabled:t?.enabled,filter:t?.filter};return await r.save(n)}),"UserConfigurationsRepository::createUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::createUserAlertConfiguration - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::createUserAlertConfiguration result"),i}async updateUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters"),!1;const r=na(t?.filters?.userId);return r?null!=t?.values?.smsNotification||null!=t?.values?.emailNotification||null!=t?.values?.appNotification||null!=t?.values?.pushNotification||t?.values?.alertValue||t?.values?.alertMetadata?e.safeQuery((async e=>{const i=e.getRepository(Ie).createQueryBuilder().update(Ie).set({smsNotification:t?.values?.smsNotification,emailNotification:t?.values?.emailNotification,appNotification:t?.values?.appNotification,pushNotification:t?.values?.pushNotification,alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata}).where("userId = :userId",{userId:r});return t?.filters?.alertTypeId&&i.andWhere("alertTypeId = :alertTypeId",{alertTypeId:t?.filters?.alertTypeId}),(await i.execute()).affected>0}),"UserConfigurationsRepository::updateUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurations - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserAlertConfigurations - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserAlertConfigurations result"),i}async updateUserAlertConfigurationById(e){this.logger.trace(e,"UserConfigurationsRepository::updateUserAlertConfigurationsByIds started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.userAlertConfigurationId)return i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - missing required parameters"),!1;const r=na(t?.filters?.userId);return r?null!=t?.values?.smsNotification||null!=t?.values?.emailNotification||null!=t?.values?.appNotification||null!=t?.values?.pushNotification||null!=t?.values?.enabled||t?.values?.alertValue||t?.values?.alertMetadata||t?.values?.filter||t?.values?.name||t?.values?.createdBy?e.safeQuery((async e=>{const i=e.getRepository(Ie).createQueryBuilder().update(Ie).set({smsNotification:t?.values?.smsNotification,emailNotification:t?.values?.emailNotification,appNotification:t?.values?.appNotification,pushNotification:t?.values?.pushNotification,alertValue:t?.values?.alertValue,alertMetadata:t?.values?.alertMetadata,createdBy:t?.values?.createdBy,filter:t?.values?.filter,name:t?.values?.name,enabled:t?.values?.enabled}).where("userId = :userId and id = :userAlertConfigurationId",{userId:r,userAlertConfigurationId:t.filters.userAlertConfigurationId});return(await i.execute()).affected>0}),"UserConfigurationsRepository::updateUserAlertConfiguration"):(i.warn({params:t},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - missing required parameters"),!1):(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::updateUserAlertConfigurationsByIds result"),i}async deleteUserAlertConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::deleteUserAlertConfigurations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserAlertConfigurations - missing required parameters"),!1;const r=na(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserAlertConfigurations - user id should be a valid UUID"),!1):e.safeQuery((async e=>{let i=e.getRepository(Ie).createQueryBuilder().delete();return r&&(i=i.where("userId = :userId",{userId:r})),t?.filters?.userAlertConfigurationIds?.length&&(i=i.andWhere("id IN (:...userAlertConfigurationIds)",{userAlertConfigurationIds:t.filters.userAlertConfigurationIds})),(await i.execute()).affected>0}),"UserConfigurationsRepository::deleteUserAlertConfigurations")})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserAlertConfigurations result"),i}async getUserAlertNotificationsConfig(e){this.logger.trace(e,"UserConfigurationsRepository::getUserAlertNotificationsConfig started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - missing required parameters"),[];const r=na(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,a)=>{const n=await ln(e,r,a),o=await un(e,r,n,a),s=o?.length?await dn(e,r,o,a):[],l=o.filter((e=>!s?.find((t=>t.clientAlertConfigurationId===e.id)))),d=await cn(e,l?.map((e=>e.id)),a);return o.map((e=>{const a=s.find((t=>t.clientAlertConfigurationId===e.id));if(a)return i.trace({userNotificationId:a.id},"Existing notification override found"),a;const o=d.find((i=>i.clientAlertConfigurationId===e.id&&oa(i.userId)==t.filters.userId&&i.isEnabled));if(o)return i.trace({userRecipientId:o.id},"Existing notification configured specific for the user"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:o.smsNotification,emailNotification:o.emailNotification,appNotification:o.appNotification,pushNotification:o.pushNotification};const l=d.find((t=>t.clientAlertConfigurationId===e.id&&n.find((e=>e.securityRoleId===t.roleId))&&t.isEnabled));if(l)return i.trace({roleRecipientId:l.id},"Existing notification configured specific for the user role"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:l.smsNotification,emailNotification:l.emailNotification,appNotification:l.appNotification,pushNotification:l.pushNotification};const u=d.find((t=>t.clientAlertConfigurationId===e.id&&null==t.userId&&null==t.roleId&&t.isEnabled));return u?(i.trace({allUsersRecipientId:u.id},"Existing notification configured specific for all users"),{id:null,clientAlertConfigurationId:e.id,userId:r,smsNotification:u.smsNotification,emailNotification:u.emailNotification,appNotification:u.appNotification,pushNotification:u.pushNotification}):void 0}))}),"UserConfigurationsRepository::getUserAlertNotificationsConfig",a)})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::getUserAlertNotificationsConfig result"),i}async upsertUserAlertNotificationsConfig(e){this.logger.trace(e,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.clientAlertConfigurationId?e.safeQuery((async e=>{const r=e.getRepository(Ce),a=na(t?.userId);if(!a?.length)return i.warn(t,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - User alert configuration could not be created: user id should be a valid UUID"),null;const n={id:t?.id,userId:a,clientAlertConfigurationId:t?.clientAlertConfigurationId,smsNotification:t?.smsNotification??!1,emailNotification:t?.emailNotification??!1,appNotification:t?.appNotification??!1,pushNotification:t?.pushNotification??!1},o=await r.upsert(n,{conflictPaths:["userId","clientAlertConfigurationId"]});return o?.raw?.affectedRows>0}),"UserConfigurationsRepository::upsertUserAlertNotificationsConfig"):(i.warn({params:t},"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::upsertUserAlertNotificationsConfig result"),i}deleteUserAlertNotificationsConfig=async e=>{this.logger.trace(e,"UserConfigurationsRepository::deleteUserAlertNotificationsConfig started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig - missing required parameters"),!1;const r=na(t?.filters?.userId);return t?.filters?.userId&&!r?(i.warn({userId:t?.filters?.userId},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig - user id should be a valid UUID"),!1):e.safeQuery((async e=>{let i=e.getRepository(Ce).createQueryBuilder().delete();return r&&(i=i.where("userId = :userId",{userId:r})),t?.filters?.clientAlertConfigurationIds?.length&&(i=i.andWhere("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t.filters.clientAlertConfigurationIds})),(await i.execute()).affected>0}),"UserConfigurationsRepository::deleteUserAlertNotificationsConfig")})(t,e,this.logger);return this.logger.trace({result:i},"UserConfigurationsRepository::deleteUserAlertNotificationsConfig result"),i}},UserDataDeletionRequestsRepository:class extends ra{async getUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.id)return i.warn({params:t},"UserDataDeletionRequestsRepository::getUserDataDeletionRequest - missing required parameters"),null;const r=na(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserDataDeletionRequestsRepository::getUserDataDeletionRequest - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(bi).createQueryBuilder("userDataDeletionRequest");return i&&a.setQueryRunner(i),t?.filters?.id&&(a=a.andWhere("userDataDeletionRequest.id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(a=a.andWhere("userDataDeletionRequest.userId = :userId",{userId:r})),await a.getOne()}),"UserDataDeletionRequestsRepository::getUserDataDeletionRequest",a)})(t,e,this.logger);return this.logger.trace(i,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest result"),i}async createUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::createUserDataDeletionRequest started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.clientId&&t?.email&&t?.userSecurityRoleName))return i.warn({params:t},"UserDataDeletionRequestsRepository::createUserDataDeletionRequest - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(bi),a=new Date,n={id:t?.id,userId:r,clientId:t.clientId,email:t.email,userSecurityRoleName:t.userSecurityRoleName,status:t.status,createdAt:a,modifiedAt:a};return await i.save(n)}),"UserDataDeletionRequestsRepository::createUserDataDeletionRequest"):(i.warn({userId:t?.userId},"UserDataDeletionRequestsRepository::createUserDataDeletionRequest - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserDataDeletionRequestsRepository::createUserDataDeletionRequest result"),i}async updateUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId&&!t?.filters?.id)return i.warn({params:t},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters"),!1;if(!t?.values?.status)return i.warn({params:t},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - missing required parameters"),!1;const r=na(t?.filters?.userId);return t?.filters?.userId&&!r?.length?(i.warn({userId:t?.filters?.userId},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest - user id should be a valid UUID"),!1):e.safeQuery((async e=>{const i=e.getRepository(bi),a=new Date;let n=i.createQueryBuilder().update(bi).set({status:t?.values?.status,modifiedAt:a});return t?.filters?.id&&(n=n.where("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(n=n.andWhere("userId = :userId",{userId:r})),(await n.execute()).affected>0}),"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest")})(t,e,this.logger);return this.logger.trace({result:i},"UserDataDeletionRequestsRepository::updateUserDataDeletionRequest result"),i}async removeUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(bi).createQueryBuilder().delete().where("id = :id",{id:t?.filters?.id});return(await i.execute()).affected>0}),"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest"):(i.warn({params:t},"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserDataDeletionRequestsRepository::removeUserDataDeletionRequest result"),i}},UserInvitationsRepository:class extends ra{async getUserInvitationById(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitationById started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - missing required parameters"),null;const r=na(t?.filters?.id);if(!r?.length)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - user invitation id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(Vr).createQueryBuilder("userInvitation");return t&&i.setQueryRunner(t),i=i.where("userInvitation.id = :id",{id:r}),await i.getOne()}),"UserInvitationsRepository::getUserInvitationById",a)})(t,e,this.logger);return this.logger.trace(i,"UserInvitationsRepository::getUserInvitationById result"),i}async getUserInvitations(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitations started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.inviteeEmails?.length||t?.filters?.inviterClientId||t?.filters?.statusList?.length||t?.filters?.tagIdListByEntityType?.userTagIdList?.length||t?.filters?.tagIdListByEntityType?.invitationTagIdList?.length))return i.warn({params:t},"UserInvitationsRepository::getUserInvitations - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(Vr).createQueryBuilder("userInvitation");if(i&&r.setQueryRunner(i),t?.filters?.inviteeEmails?.length&&(r=r.andWhere("LOWER(userInvitation.inviteeEmail) IN (:...inviteeEmails)",{inviteeEmails:t.filters.inviteeEmails.map((e=>e.trim().toLowerCase()))})),t?.filters?.inviterClientId&&(r=r.andWhere("userInvitation.inviterClientId = :inviterClientId",{inviterClientId:t.filters.inviterClientId})),t?.filters?.statusList?.length&&(r=r.andWhere("userInvitation.statusId IN (:...statusList)",{statusList:t.filters.statusList})),t.filters.tagIdListByEntityType){const{userTagIdList:e,invitationTagIdList:i}=t.filters.tagIdListByEntityType;e?.length&&r.innerJoin(we,"user","user.id = userInvitation.inviterUserId").innerJoin(Ut,"entityTagUser","entityTagUser.entityId = user.numberId \n AND entityTagUser.entityType = 'User'\n AND entityTagUser.tagId IN (:...userTagIdList)",{userTagIdList:e}),i?.length&&r.innerJoin(Ut,"entityTagInvitation","entityTagInvitation.entityId = userInvitation.numberId \n AND entityTagInvitation.entityType = 'UserInvitation'\n AND entityTagInvitation.tagId IN (:...invitationTagIdList)",{invitationTagIdList:i})}return r=r.orderBy("userInvitation.createdAt","DESC"),await r.getMany()}),"UserInvitationsRepository::getUserInvitations",r)})(t,e,this.logger);return this.logger.trace(i,"UserInvitationsRepository::getUserInvitations result"),i}async updateUserInvitation(e){this.logger.trace(e,"UserInvitationsRepository::updateUserInvitation started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id)return i.warn({params:t},"UsersRepository::updateUserInvitation - missing required parameters"),!1;const r=na(t?.filters?.id);return r?.length?t?.values?.statusId||t?.values?.inviteeEmail||t?.values?.inviteeSecurityRoleId||t?.values?.trackerImeis||t?.values?.trackerAccess||t?.values?.minAccessDate||t?.values?.boundaries||t?.values?.boundaryAccess||t?.values?.tasksAccess?e.safeQuery((async e=>{const i=e.getRepository(Vr),a=new Date;let n=i.createQueryBuilder().update(Vr).set({statusId:t?.values?.statusId,inviteeUserId:t?.values?.inviteeUserId,inviteeEmail:t?.values?.inviteeEmail,inviteeSecurityRoleId:t?.values?.inviteeSecurityRoleId,trackerImeis:t?.values?.trackerImeis?.split(",")??null,trackerAccess:t?.values?.trackerAccess,minAccessDate:t?.values?.minAccessDate,boundaries:t?.values?.boundaries?.split(",")?.map(Number)??null,boundaryAccess:t?.values?.boundaryAccess,tasksAccess:t?.values?.tasksAccess,modifiedAt:a});return n=n.where("id = :id",{id:r}),(await n.execute()).affected>0}),"UsersRepository::updateUserInvitation"):(i.warn({params:t},"UsersRepository::updateUserInvitation - missing required parameters"),!1):(i.warn({invitationId:t?.filters?.id},"UsersRepository::updateUserInvitation - user invitation id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UserInvitationsRepository::updateUserInvitation result"),i}async createUserInvitation(e){this.logger.trace(e,"UserInvitationsRepository::createUserInvitation started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.inviterClientId&&t?.inviterUserId&&t?.inviteeEmail&&t?.inviteeSecurityRoleId&&t?.statusId?e.safeQuery((async e=>{const i=e.getRepository(Vr),r=new Date,a={...t,boundaries:t?.boundaries?.split(",")?.map(Number)??null,trackerImeis:t?.trackerImeis?.split(",")??null,createdAt:r,modifiedAt:r};return i.save(a)}),"UsersRepository::createUserInvitation"):(i.warn({params:t},"UsersRepository::createUserInvitation - missing required parameters"),null))(t,e,this.logger);return this.logger.trace({result:i},"UserInvitationsRepository::createUserInvitation result"),i}},UserRatingRequestsRepository:class extends ra{async getUserRatingRequests(e){this.logger.trace(e,"UserRatingRequestsRepository::getUserRatingRequests started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - missing required parameters"),[];const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(Gr).createQueryBuilder("userRatingRequest");return t&&i.setQueryRunner(t),i=i.where("userRatingRequest.userId = :userId",{userId:r}),i=i.orderBy("userRatingRequest.requestDate","DESC"),await i.getMany()}),"UserRatingRequestsRepository::getUserRatingRequests",a)})(t,e,this.logger);return this.logger.trace(i,"UserRatingRequestsRepository::getUserRatingRequests result"),i}async createUserRatingRequest(e){this.logger.trace(e,"UserRatingRequestsRepository::createUserRatingRequest started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.userId&&t?.clientId&&t?.deviceManufacturer&&t?.deviceOs&&t.deviceOsVersion&&t?.appVersion))return i.warn({params:t},"UserRatingRequestsRepository::createUserRatingRequest - missing required parameters"),null;const r=na(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Gr),a={id:t?.id,userId:r,clientId:t.clientId,deviceManufacturer:t.deviceManufacturer,deviceOs:t.deviceOs,deviceOsVersion:t.deviceOsVersion,appVersion:t.appVersion,requestDate:t.requestDate,amazonRequestDate:t.amazonRequestDate,deviceIdentifierKey:t.deviceIdentifierKey};return await i.save(a)}),"UserRatingRequestsRepository::createUserRatingRequest"):(i.warn({userId:t?.userId},"UserRatingRequestsRepository::createUserRatingRequest - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UserRatingRequestsRepository::createUserRatingRequest result"),i}},UserRegistrationAttemptsRepository:class extends ra{async getUserRegistrationAttempts(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.id&&!t?.filters?.tempUserId)return i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - missing required parameters"),[];const r=na(t?.filters?.tempUserId);if(t?.filters?.tempUserId&&!r?.length)return i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID"),[];const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let a=e.getRepository(Jr).createQueryBuilder("userRegistrationAttempt");return i&&a.setQueryRunner(i),t?.filters?.id&&(a=a.andWhere("userRegistrationAttempt.id = :id",{id:t?.filters?.id})),t?.filters?.tempUserId&&(a=a.andWhere("userRegistrationAttempt.tempUserId = :tempUserId",{tempUserId:r})),await a.getMany()}),"UserRegistrationAttemptsRepository::getUserRegistrationAttempts",a)})(t,e,this.logger);return this.logger.trace(i,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts result"),i}async createUserRegistrationAttempt(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::createUserRegistrationAttempt started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.firstName||t?.lastName||t?.email||t?.phoneNumber||t?.phoneCode||t?.phoneCodeCountryId||t?.imei||t?.platform||t?.status||t?.tempUserId))return i.warn({params:t},"UserRegistrationAttemptsRepository::createUserRegistrationAttempt - missing required parameters"),null;const r=na(t?.tempUserId);return t?.tempUserId&&!r?.length?(i.warn({params:t},"UserRegistrationAttemptsRepository::getUserRegistrationAttempts - temp user id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(Jr),a={id:t?.id,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phoneNumber:t?.phoneNumber,phoneCode:t?.phoneCode,phoneCodeCountryId:t?.phoneCodeCountryId,imei:t?.imei,platform:t?.platform,status:t?.status,tempUserId:r,createdAt:new Date};return await i.save(a)}),"UserRegistrationAttemptsRepository::createUserRegistrationAttempt")})(t,e,this.logger);return this.logger.trace(i,"UserRegistrationAttemptsRepository::createUserRegistrationAttempt result"),i}async updateUserRegistrationAttempt(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id&&(t?.values?.clientId||t?.values?.userName||t?.values?.pin||t?.values?.street||t?.values?.city||t?.values?.state||t?.values?.postalCode||t?.values?.country||t?.values?.countryCode)?e.safeQuery((async e=>{const i=e.getRepository(Jr).createQueryBuilder().update(Jr).set({clientId:t?.values?.clientId,userName:t?.values?.userName,pin:t?.values?.pin,street:t?.values?.street,city:t?.values?.city,state:t?.values?.state,postalCode:t?.values?.postalCode,country:t?.values?.country,countryCode:t?.values?.countryCode,lastUpdatedAt:new Date}).where("id = :id",{id:t?.filters?.id});return(await i.execute()).affected>0}),"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt"):(i.warn({params:t},"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt - missing required parameters"),!1))(t,e,this.logger);return this.logger.trace({result:i},"UserRegistrationAttemptsRepository::updateUserRegistrationAttempt result"),i}},UsersRepository:class extends ra{async getUserById(e){this.logger.trace(e,"UsersRepository::getUserById started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Za(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUserById result"),i}async getUsers(e){this.logger.trace(e,"UsersRepository::getUsers started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.filters?.emailList?.length||t?.filters?.userName||t?.filters?.clientId||t?.filters?.search||t?.filters?.status||t?.filters?.tagIdList?.length))return i.warn({params:t},"UsersRepository::getUsers - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(we).createQueryBuilder("user");if(i&&(r=r.setQueryRunner(i)),t.filters.emailList?.length&&(r=r.where("LOWER(user.email) IN (:...emailList)",{emailList:t.filters.emailList.map((e=>e.trim().toLowerCase()))})),t.filters.userName&&(r=r.andWhere("(LOWER(user.userName) = LOWER(:userName) OR LOWER(user.preferredUserName) = LOWER(:userName))",{userName:t.filters.userName.trim()})),t.filters.clientId&&(r=r.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),t.filters.search){const e=na(t.filters.search);r=r.andWhere("(LOWER(user.userName) = LOWER(:search) OR \n LOWER(user.preferredUserName) = LOWER(:search) OR \n LOWER(user.email) = LOWER(:search) OR \n user.id = :binaryBuffer)",{search:t.filters.search.trim(),binaryBuffer:e})}t.filters.status&&(r=r.andWhere("user.status = :status",{status:t.filters.status})),t.filters.tagIdList?.length&&r.innerJoin(Ut,"entityTag","entityTag.entityId = user.numberId \n AND entityTag.entityType = 'User'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList}),r=r.orderBy("user.lastname","DESC"),t.projectionOptions?.withSecurityRole&&(r=r.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole")),t.projectionOptions?.withCountryInfo&&(r=r.leftJoinAndSelect("user.telephoneCountry","telephoneCountry").leftJoinAndSelect("user.country","country")),t.projectionOptions?.withUserConfiguration&&(r=r.leftJoinAndSelect("user.userConfiguration","userConfiguration")),t.projectionOptions?.withClientAlertNotificationOverride&&(r=r.leftJoinAndSelect("user.clientAlertNotificationOverride","clientAlertNotificationOverride"));let a=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(Ut);a=await Promise.all(a.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const a=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.numberId,entityType:"User"}).innerJoin(ni,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:a}})))}return a}),"UsersRepository::getUsers",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsers result"),i}async getUsersConfigurationByImei(e){this.logger.trace(e,"UsersRepository::getUsersConfigurationByImei started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UsersRepository::getUsersConfigurationByImei - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(we).createQueryBuilder("user");return i&&r.setQueryRunner(i),r.innerJoin("user.client","client").innerJoinAndSelect("client.devices","device").innerJoinAndSelect("user.userConfiguration","userConfiguration").innerJoinAndSelect("user.userAlertConfiguration","userAlertConfiguration").innerJoinAndSelect("user.country","country").where("device.imei = :imei",{imei:t.filters.imei}).getMany()}),"UsersRepository::getUsersConfigurationByImei",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersConfigurationByImei result"),i}async getUsersIdsByPhoneAndCountryCode(e){this.logger.trace(e,"UsersRepository::getUsersIdsByPhoneAndCountryCode started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.phone||!t?.filters?.countryCode)return i.warn({params:t},"UsersRepository::getUsersIdsByPhoneAndCountryCode - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let r=e.getRepository(we).createQueryBuilder("user").innerJoin(ge,"country","country.id = user.countryId").where("country.alpha2Code = :countryCode",{countryCode:t.filters.countryCode}).andWhere("user.telephone = REPLACE(:phone, country.internationalDirectDialing, '')",{phone:t.filters.phone});i&&(r=r.setQueryRunner(i)),r=r.select("user.id as id");const a=await r.getRawMany();return a?.map((e=>oa(e.id)))}),"UsersRepository::getUsersIdsByPhoneAndCountryCode",r)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersIdsByPhoneAndCountryCode result"),i}async getUsersWithRoles(e){this.logger.trace(e,"UsersRepository::getUsersWithRoles started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await pn(t,e,this.logger);return this.logger.trace(i,"UsersRepository::getUsersWithRoles result"),i}async createUser(e){this.logger.trace(e,"UsersRepository::createUser started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!(t?.id&&t?.firstName&&t?.lastName&&t?.email&&t?.userName&&t?.clientId))return i.warn({params:t},"UsersRepository::createUser - missing required parameters"),null;const r=na(t?.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(we),a=new Date,n={id:r,firstName:t.firstName,lastName:t.lastName,companyName:t.companyName,telephone:t.telephone,street:t.street,postalCode:t.postalCode,city:t.city,region:t.region,email:t.email?.toLowerCase(),userName:t.userName,preferredUserName:t.preferredUserName,status:t.status??"A",clientId:t.clientId,pincode:t.pinCode,isAdmin:t.isAdmin??!1,countryId:t.countryId,telephoneCountryId:t.telephoneCountryId,dataSourceTypeId:t.dataSourceTypeId,emailVerified:t.emailVerified??!0,createdAt:a,modifiedAt:a};return await i.save(n)}),"UsersRepository::createUser"):(i.warn({params:t},"UsersRepository::createUser - user id should be a valid UUID"),null)})(t,e,this.logger);return this.logger.trace(i,"UsersRepository::createUser result"),i}async deleteUser(e){this.logger.trace(e,"UsersRepository::deleteUser started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.id)return i.warn({params:t},"UsersRepository::deleteUser - missing required parameters"),!1;const r=na(t?.id);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(we);return(await t.createQueryBuilder("user").delete().where("id = :id",{id:r}).execute()).affected>0}),"UsersRepository::deleteUser"):(i.warn({params:t},"UsersRepository::deleteUser - user id should be a valid UUID"),!1)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUser result"),i}async updateUser(e){this.logger.trace(e,"UsersRepository::updateUser started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=na(t?.filters?.userId);if(!(r||t?.filters?.email||t?.filters?.statusList?.length||t?.filters?.userName))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;if(!(void 0!==t?.values?.city||void 0!==t?.values?.companyName||t?.values?.countryCode||t?.values?.countryId||t?.values?.dataSourceTypeId||t?.values?.email||null!=t?.values?.emailVerified||t?.values?.firstName||null!=t?.values?.isAdmin||t?.values?.lastName||t?.values?.postalCode||t?.values?.pinCode||t?.values?.preferredUserName||void 0!==t?.values?.region||t?.values?.status||void 0!==t?.values?.street||void 0!==t?.values?.telephone||t?.values?.telephoneCountryCode||t?.values?.telephoneCountryId||t?.values?.userName||t?.values?.latitude||t?.values?.longitude||t?.values?.lastLoginAt))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;let a=t.values.countryId;!a&&t.values.countryCode&&(a=await mn(t.values.countryCode,e,i));let n=t.values.telephoneCountryId;return!n&&t.values.telephoneCountryCode&&(n=await mn(t.values.telephoneCountryCode,e,i)),e.safeQuery((async e=>{const i=e.getRepository(we),o=new Date;let s=i.createQueryBuilder().update(we).set({firstName:t.values.firstName,lastName:t.values.lastName,companyName:t.values.companyName,telephone:t.values.telephone,street:t.values.street,pincode:t.values.pinCode,postalCode:t.values.postalCode,city:t.values.city,region:t.values.region,email:t.values.email?.toLowerCase(),userName:t.values.userName,preferredUserName:t.values.preferredUserName,status:t.values.status,isAdmin:t.values.isAdmin,countryId:a,telephoneCountryId:n,dataSourceTypeId:t.values.dataSourceTypeId,emailVerified:t.values.emailVerified,modifiedAt:o,lat:t.values.latitude,lon:t.values.longitude,lastLoginAt:t.values.lastLoginAt});return r&&(s=s.andWhere("id = :id",{id:r})),t.filters.email&&(s=s.andWhere("LOWER(email) = LOWER(:email)",{email:t.filters.email})),t.filters.statusList?.length&&(s=s.andWhere("status IN (:statusList)",{statusList:t.filters.statusList})),t.filters.userName&&(s=s.andWhere("userName = :userName",{userName:t.filters.userName})),(await s.execute()).affected>0}),"UsersRepository::updateUser")})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::updateUser result"),i}async getUsersData(e){this.logger.trace(e,"UsersRepository::getUsersData started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.imei)return i.warn({params:t},"UsersRepository::getUsersData - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>(await i.query("SELECT U.id as userId, U.telephone, U.email\n , UC.isMetric, coalesce (UC.timezone, '') as timezone, UC.alertsNotificationsOn, UC.speedUnits , UC.distanceUnits\n , AC.alertTypeId, AC.smsNotification, AC.emailNotification, AC.alertValue, AC.pushNotification , AC.appNotification , AC.alertMetadata\n , AC.id as userAlertConfigurationId, AC.name as alertName, AC.filter, AC.enabled\n , D.name as deviceName, D.deviceTypeId\n , C.id as clientId\n , U.isAdmin\n , CO.internationalDirectDialing\n , ( SELECT CONCAT('[',\n GROUP_CONCAT( distinct case when NR.isUserProfile = true\n then CONCAT('\"', U.telephone, '\"') else CONCAT('\"', NR.recipient, '\"') end SEPARATOR ','), \n ']') AS JSON\n from notificationRecipient as NR\n where NR.clientId = C.id\n and NR.userId = U.id\n and NR.notificationType = 2\n and NR.isEnabled = true\n and NR.unsubscribed = false \n and (NR.userAlertConfigurationId IS NULL or NR.userAlertConfigurationId = AC.id )) as phoneNumbers\n , ( SELECT CONCAT('[',\n GROUP_CONCAT( distinct case when NR.isUserProfile = true\n then CONCAT('\"', U.email, '\"') else CONCAT('\"', NR.recipient, '\"') end SEPARATOR ','),\n ']') AS JSON\n from notificationRecipient as NR\n where NR.clientId = C.id\n and NR.userId = U.id\n and NR.notificationType = 1\n and NR.isEnabled = true\n and NR.unsubscribed = false\n and (NR.userAlertConfigurationId IS NULL or NR.userAlertConfigurationId = AC.id ) ) as emailAddresses\n FROM device AS D\n JOIN client AS C\n ON D.clientId = C.id\n JOIN user AS U\n ON U.clientId = C.id and U.status = 'A'\n JOIN userConfiguration AS UC\n ON UC.userId = U.id\n JOIN userAlertConfiguration as AC\n ON AC.userId = U.id\n JOIN alertType AS A\n ON A.id = AC.alertTypeId\n JOIN country AS CO\n ON CO.id = CASE WHEN(U.countryId IS NULL OR U.countryId = 0) THEN 236 ELSE U.countryId END\n WHERE D.imei = ?",[t.filters.imei])).map((e=>({...e,userId:oa(e.userId),isAdmin:1===e.isAdmin,isMetric:1===e.isMetric,alertsNotificationOn:1===e.alertsNotificationsOn,smsNotification:1===e.smsNotification,emailNotification:1===e.emailNotification,pushNotification:1===e.pushNotification,appNotification:1===e.appNotification,phoneNumbers:e.phoneNumbers?JSON.parse(e.phoneNumbers):[],emailAddresses:e.emailAddresses?JSON.parse(e.emailAddresses):[]})))),"UsersRepository::getUsersData",r)})(t,e,this.logger);return this.logger.trace({resultCount:i?.length??0},"UsersRepository::getUsersData result count"),i}async deleteAccount(e){this.logger.trace(e,"UsersRepository::deleteAccount started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{let r=na(t?.filters?.userId);await e.connect();const a=e.createQueryRunner();try{if(!r&&t?.filters?.email){const i=e.getRepository(we),a=await i.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();a&&(r=a.id)}let i=t.filters.clientId;if(!i&&t.filters.email){const r=e.getRepository(me),a=await r.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();a&&(i=a.id)}await a.startTransaction();let n=!1;if(i){await a.manager.delete(fe,{clientId:i}),await a.manager.delete(De,{clientId:i}),await a.manager.delete(Vr,{inviterClientId:i});const e=await a.manager.createQueryBuilder().select("boundary.id").from(Ze,"boundary").where("boundary.clientId = :clientId",{clientId:i}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(et,"boundaryEvent").where("boundaryEvent.boundaryId IN (:ids)",{ids:e.map((e=>e.id))}).execute(),await a.manager.delete(Ze,{clientId:i})),await a.manager.delete(si,{clientId:i}),await a.manager.delete(rt,{clientId:i}),await a.manager.delete(lt,{clientId:i}),n=(await a.manager.delete(me,i)).affected>0}let o=!1;if(r){await a.manager.delete(be,{userId:r}),await a.manager.delete(Ie,{userId:r});const e=await a.manager.createQueryBuilder().select("userActivation.id").from(ci,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(pi,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await a.manager.delete(ci,{userId:r})),await a.manager.delete(Gr,{userId:r}),await a.manager.delete(yi,{userId:r}),o=(await a.manager.delete(we,{id:r})).affected>0}return await a.commitTransaction(),n||o}catch(e){throw await a.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteAccount error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteAccount result"),i}async getUserClientRelatedEntitiesCount(e){this.logger.trace(e,"UsersRepository::getUserClientRelatedEntitiesCount started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t.filters.userId)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - missing required parameters"),null;const r=na(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - user id should be a valid UUID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(me).createQueryBuilder("client").select("client.id","clientId");return i&&a.setQueryRunner(i),t.projectionOptions?.withDevicesCount&&a.addSelect((e=>e.select("COUNT(*)","devicesCount").from("device","d").where("client.id = d.clientId").andWhere("d.status = :deviceStatus",{deviceStatus:h.Active})),"devicesCount"),t.projectionOptions?.withBoundariesCount&&a.addSelect((e=>e.select("COUNT(*)","boundariesCount").from("boundary","b").where("client.id = b.clientId").andWhere("b.status = :boundaryStatus",{boundaryStatus:f.Active})),"boundariesCount"),t.projectionOptions?.withUsersCount&&a.addSelect((e=>e.select("COUNT(*)","usersCount").from("user","u").where("client.id = u.clientId").andWhere("u.status = :userStatus",{userStatus:I.Active})),"usersCount"),a.where("EXISTS (\n SELECT 1\n FROM user u2\n WHERE client.id = u2.clientId\n AND u2.id = :userId\n LIMIT 1\n )",{userId:r}),await a.getRawOne()}),"UsersRepository::getUserClientRelatedEntitiesCount",a)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUserClientRelatedEntitiesCount result"),i}async getUsersInfoWithDevicesInfo(e){this.logger.trace(e,"UsersRepository::getUsersInfoWithDevicesInfo started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userName)return i.warn({params:t},"UsersRepository::getUsersInfoWithDevicesInfo - missing required parameters"),[];const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const r=e.getRepository(we).createQueryBuilder("user").innerJoin(ue,"device","device.clientId = user.clientId and device.status = :status",{status:h.Active}).where("LOWER(user.userName) = LOWER(:userName)",{userName:t.filters.userName.trim()}).orderBy("user.email","ASC").select(["user.id as userId","user.firstName as firstName","user.lastName as lastName","user.email as email","user.userName as userName","device.imei as imei","device.name as deviceName"]);i&&r.setQueryRunner(i);const a=await r.getRawMany(),n=[],o=[];return a.forEach((e=>{const t=oa(e.userId);o.includes(t)||(o.push(t),n.push({userId:t,firstName:e.firstName,lastName:e.lastName,email:e.email,userName:e.userName,devices:[]}));const i=n.findIndex((e=>e.userId===t));n[i].devices.push({imei:e.imei,name:e.deviceName})})),n}),"UsersRepository::getUsersInfoWithDevicesInfo",r)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUsersInfoWithDevicesInfo result"),i}async getUserInfoWithAmazonDevicesInfo(e){this.logger.trace(e,"UsersRepository::getUserInfoWithAmazonDevicesInfo started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.filters?.userId)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - missing required parameters"),null;const r=na(t.filters.userId);if(!r)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - invalid user ID"),null;const a=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const a=e.getRepository(we).createQueryBuilder("user").innerJoin(me,"client","client.id = user.clientId").innerJoin(ue,"device","device.clientId = user.clientId and device.status = :deviceStatus",{deviceStatus:h.Active}).innerJoin(de,"deviceType","device.deviceTypeId = deviceType.id").leftJoin(s,"acumaticaImeiIccidData","device.imei = acumaticaImeiIccidData.imei").leftJoin(d,"acumaticaShipment","acumaticaImeiIccidData.amazonShipmentId = acumaticaShipment.shipmentId and \n acumaticaShipment.location IS NOT NULL and acumaticaShipment.location <> ''").where("user.id = :userId and user.status = :userStatus",{userId:r,userStatus:I.Active}).distinct(!0).select(["user.id as userId","user.email as email","client.id as clientId","client.useType as useType","client.clientTypeId as clientTypeId","device.imei as imei","device.name as deviceName","device.status as deviceStatus","device.createdAt as deviceCreatedAt","deviceType.id as deviceTypeId","deviceType.brand as deviceBrand","deviceType.model as deviceModel","deviceType.name as deviceTypeName","deviceType.supported as deviceTypeSupported","deviceType.modelFamily as deviceTypeModelFamily","acumaticaShipment.location as amazonShipment","case when acumaticaShipment.location is not null and acumaticaShipment.location <> '' then true else false end as isAmazonDevice"]);let n;return i&&a.setQueryRunner(i),(await a.getRawMany()).forEach((e=>{n||(n={userId:t.filters.userId,email:e.email,clientId:e.clientId,useType:e.useType,clientTypeId:e.clientTypeId,devices:[]}),n.devices.push({imei:e.imei,name:e.deviceName,status:e.deviceStatus,createdAt:e.deviceCreatedAt,amazonShipment:e.amazonShipment,isAmazonDevice:1==e.isAmazonDevice,deviceType:{id:e.deviceTypeId,brand:e.deviceBrand,model:e.deviceModel,name:e.deviceTypeName,supported:1==e.deviceTypeSupported,modelFamily:e.deviceTypeModelFamily}})})),n}),"UsersRepository::getUserInfoWithAmazonDevicesInfo",a)})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::getUserInfoWithAmazonDevicesInfo result"),i}async deleteUserData(e){this.logger.trace(e,"UsersRepository::deleteUserData started with params");const t=new ta(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!t?.id)return i.warn({params:t},"UsersRepository::deleteUserData - missing required parameters"),!1;const r=na(t?.id);if(!r?.length)return i.warn({params:t},"UsersRepository::deleteUserData - user id should be a valid UUID"),!1;await e.connect();const a=e.createQueryRunner();try{await a.startTransaction(),await a.manager.delete(fe,{userId:r}),await a.manager.delete(De,{userId:r}),await a.manager.delete(Vr,{inviteeUserId:t.id}),await a.manager.delete(be,{userId:r}),await a.manager.delete(Ie,{userId:r});const e=await a.manager.createQueryBuilder().select("userActivation.id").from(ci,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await a.manager.createQueryBuilder().delete().from(pi,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await a.manager.delete(ci,{userId:r})),await a.manager.delete(Gr,{userId:r}),await a.manager.delete(yi,{userId:r});const i=await a.manager.delete(we,{id:r});return await a.commitTransaction(),i.affected>0}catch(e){throw await a.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteUserData error"),e}finally{await a.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUserData result"),i}}});const yn={uuidStringToBinaryBuffer:na,binaryBufferToUuidString:oa,getRandomBoolean:()=>Math.random()<.5,getRandomImei:(e=15)=>{const t="0123456789";let i="";for(let r=0;r<e;r++){const e=Math.floor(10*Math.random());i+=t.charAt(e)}return i},getRandomDateInRange:e=>{const t=new Date,i=new Date(t);i.setDate(t.getDate()-e);const r=new Date(t);r.setDate(t.getDate()+e);const a=i.getTime()+Math.random()*(r.getTime()-i.getTime());return new Date(a)},getRandomInteger:e=>Math.floor(Math.random()*e)+1,getRandomString:e=>{const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";let i="";for(let r=0;r<e;r++){const e=Math.floor(62*Math.random());i+=t.charAt(e)}return i},tryParseBoolean:(e,t=null)=>"boolean"==typeof e?e:"string"==typeof e?"true"===e.toLowerCase():t,tryParseDate:(e,t=null)=>{try{return e?new Date(e.toString()):t}catch(e){return t}},tryParseFloat:(e,t=null)=>{const i=Number.parseFloat(e);return Number.isNaN(i)?t:i},allAttributesAreNull:va,anyAttributeInArrayIsNull:ya,anyAttributeIsNull:ga,now:Sa,addMonthsToNow:e=>ba.utc().add(e,"month").toDate()};exports.ConsoleLogger=ia,exports.Entities=Kr,exports.Enums=$,exports.NovaDataSource=ta,exports.Repositories=gn,exports.Types=_r,exports.Utils=yn;
2
2
  //# sourceMappingURL=index.js.map