@spytecgps/nova-orm 1.4.136 → 1.4.138

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"),i=require("dayjs");function r(e,t,i,r){var n,a=arguments.length,o=a<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--)(n=e[s])&&(o=(a<3?n(o):a>3?n(t,i,o):n(t,i))||o);return a>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 a=class{id;sku;asin;description;reviewUrl;productUrl};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],a.prototype,"id",void 0),r([e.Column("varchar",{name:"sku",length:50}),n("design:type",String)],a.prototype,"sku",void 0),r([e.Column("varchar",{name:"asin",length:50}),n("design:type",String)],a.prototype,"asin",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],a.prototype,"description",void 0),r([e.Column("varchar",{name:"reviewUrl",nullable:!0,length:1e3}),n("design:type",String)],a.prototype,"reviewUrl",void 0),r([e.Column("varchar",{name:"productUrl",nullable:!0,length:1e3}),n("design:type",String)],a.prototype,"productUrl",void 0),a=r([e.Entity("acumaticaAmazonProduct",{schema:"nova"})],a);let o=class{id;imei;iccid;amazonShipmentId;deviceModel;deviceCarrier;carrierNetwork;carrierProductId;poNbr;createdBy;createdDate;lastModifiedDate;shipDate;asin;countryCode;platform;listingId;location};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],o.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:50}),n("design:type",String)],o.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:50}),n("design:type",String)],o.prototype,"iccid",void 0),r([e.Column("varchar",{name:"amazonShipmentId",nullable:!0,length:50}),n("design:type",String)],o.prototype,"amazonShipmentId",void 0),r([e.Column("varchar",{name:"deviceModel",nullable:!0,length:50}),n("design:type",String)],o.prototype,"deviceModel",void 0),r([e.Column("varchar",{name:"deviceCarrier",nullable:!0,length:50}),n("design:type",String)],o.prototype,"deviceCarrier",void 0),r([e.Column("varchar",{name:"carrierNetwork",nullable:!0,length:50}),n("design:type",String)],o.prototype,"carrierNetwork",void 0),r([e.Column("varchar",{name:"carrierProductId",nullable:!0,length:50}),n("design:type",String)],o.prototype,"carrierProductId",void 0),r([e.Column("varchar",{name:"poNbr",nullable:!0,length:50}),n("design:type",String)],o.prototype,"poNbr",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],o.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"createdDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"createdDate",void 0),r([e.Column("varchar",{name:"lastModifiedDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"lastModifiedDate",void 0),r([e.Column("varchar",{name:"shipDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"shipDate",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],o.prototype,"asin",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],o.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:100}),n("design:type",String)],o.prototype,"platform",void 0),r([e.Column("varchar",{name:"listingId",nullable:!0,length:100}),n("design:type",String)],o.prototype,"listingId",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:100}),n("design:type",String)],o.prototype,"location",void 0),o=r([e.Index("ixAcumaticaImeiIccidDataIccid",["iccid"],{}),e.Index("ixAcumaticaImeiIccidDataImei",["imei"],{}),e.Index("ixAcumaticaImeiIccidDataAmazonShipmentId",["amazonShipmentId"],{}),e.Entity("acumaticaImeiIccidData",{schema:"nova"})],o);let s=class{id;imei;shipmentNumber;shipmentStatus;shipmentDate;orderType;orderStatus;iccid;sku};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],s.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],s.prototype,"imei",void 0),r([e.Column("varchar",{name:"shipmentNumber",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipmentNumber",void 0),r([e.Column("varchar",{name:"shipmentStatus",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipmentStatus",void 0),r([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],s.prototype,"shipmentDate",void 0),r([e.Column("varchar",{name:"orderType",nullable:!0,length:10}),n("design:type",String)],s.prototype,"orderType",void 0),r([e.Column("varchar",{name:"orderStatus",nullable:!0,length:50}),n("design:type",String)],s.prototype,"orderStatus",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:255}),n("design:type",String)],s.prototype,"iccid",void 0),r([e.Column("varchar",{name:"sku",nullable:!0,length:50}),n("design:type",String)],s.prototype,"sku",void 0),s=r([e.Entity("acumaticaOrderShipmentDetails",{schema:"nova"}),e.Index("ixAcumaticaOrderShipmentDetails_imei_shipmentDate",["imei","shipmentDate"],{})],s);let l=class{shipmentId;shipmentDate;location};r([e.PrimaryColumn("varchar",{name:"shipmentId",length:50}),n("design:type",String)],l.prototype,"shipmentId",void 0),r([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],l.prototype,"shipmentDate",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:6}),n("design:type",String)],l.prototype,"location",void 0),l=r([e.Entity("acumaticaShipment",{schema:"nova"})],l);let d=class{shipmentId;asin};r([e.Column("varchar",{name:"shipmentId",primary:!0,length:50}),n("design:type",String)],d.prototype,"shipmentId",void 0),r([e.Column("varchar",{name:"asin",primary:!0,length:50}),n("design:type",String)],d.prototype,"asin",void 0),d=r([e.Entity("acumaticaShipmentAmazon",{schema:"nova"})],d);let u=class{id;clientId;token;createdAt;updatedAt;expiresAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],u.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],u.prototype,"clientId",void 0),r([e.Column("binary",{name:"token",length:16}),n("design:type",Buffer)],u.prototype,"token",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],u.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],u.prototype,"updatedAt",void 0),r([e.Column("datetime",{name:"expiresAt",nullable:!0}),n("design:type",Date)],u.prototype,"expiresAt",void 0),u=r([e.Index("ixuAempToken_Token",["token"],{unique:!0}),e.Entity("aempToken",{schema:"nova"})],u);class c{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 p=class{id;name;title;description;isSystem;icon;context;identifier;stage;category;key;createdAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],p.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],p.prototype,"name",void 0),r([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],p.prototype,"title",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],p.prototype,"description",void 0),r([e.Column("tinyint",{name:"isSystem",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],p.prototype,"isSystem",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],p.prototype,"icon",void 0),r([e.Column("varchar",{name:"context",nullable:!0,length:25}),n("design:type",String)],p.prototype,"context",void 0),r([e.Column("varchar",{name:"identifier",nullable:!0,length:50}),n("design:type",String)],p.prototype,"identifier",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],p.prototype,"stage",void 0),r([e.Column("varchar",{name:"category",nullable:!0,length:25}),n("design:type",String)],p.prototype,"category",void 0),r([e.Column("varchar",{name:"key",nullable:!0,length:50}),n("design:type",String)],p.prototype,"key",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],p.prototype,"createdAt",void 0),p=r([e.Index("ixAlertTypeStage",["stage"],{}),e.Entity("alertType",{schema:"nova"})],p);let m=class{id;alertTypeId;alertType;value;createdAt;userId;messageId;boundaryId;imei;sendTime;lat;lon;address;clientId;isBuffer;isNotification;gpsUtcTime;relevantAddress;gpsMessageId;cellTowerRelevantAddress;userAlertConfigurationId;clientAlertConfigurationId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],m.prototype,"id",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],m.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],m.prototype,"alertType",void 0),r([e.Column("varchar",{name:"value",nullable:!0,length:5e3}),n("design:type",String)],m.prototype,"value",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],m.prototype,"createdAt",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],m.prototype,"userId",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],m.prototype,"messageId",void 0),r([e.Column("int",{name:"boundaryId",nullable:!0}),n("design:type",Number)],m.prototype,"boundaryId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],m.prototype,"imei",void 0),r([e.Column("datetime",{name:"sendTime",precision:3}),n("design:type",Date)],m.prototype,"sendTime",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],m.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],m.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],m.prototype,"address",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],m.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"isBuffer",nullable:!0,width:1}),n("design:type",Boolean)],m.prototype,"isBuffer",void 0),r([e.Column("tinyint",{name:"isNotification",nullable:!0,width:1}),n("design:type",Boolean)],m.prototype,"isNotification",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],m.prototype,"gpsUtcTime",void 0),r([e.Column("varchar",{name:"relevantAddress",nullable:!0,length:255}),n("design:type",String)],m.prototype,"relevantAddress",void 0),r([e.Column("binary",{name:"gpsMessageId",nullable:!0,length:16}),n("design:type",Buffer)],m.prototype,"gpsMessageId",void 0),r([e.Column("varchar",{name:"cellTowerRelevantAddress",nullable:!0,length:255}),n("design:type",String)],m.prototype,"cellTowerRelevantAddress",void 0),r([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],m.prototype,"userAlertConfigurationId",void 0),r([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],m.prototype,"clientAlertConfigurationId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],m.prototype,"deleted",void 0),m=r([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"})],m);let y=class{id;name;description;statusId};var g,v,h,I,f,C,b,S,A,D,R,w,T,N,B,U,E,P,O,x,k,M,F,L,Q,q,_,W,j,z,V,G,J,H,K,$,X,Y,Z,ee,te,ie;r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],y.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],y.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],y.prototype,"description",void 0),r([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],y.prototype,"statusId",void 0),y=r([e.Entity("appFeatureType",{schema:"nova"})],y),function(e){e[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner"}(g||(g={})),function(e){e.Active="A",e.Deleted="D",e.Terminated="T",e.Replaced="R"}(v||(v={})),function(e){e[e.Active=1]="Active",e[e.Inactive=2]="Inactive",e[e.Deleted=3]="Deleted"}(h||(h={})),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"}(f||(f={})),function(e){e[e.b2c=1]="b2c",e[e.b2b=2]="b2b",e[e.test=3]="test",e[e.demo=4]="demo"}(C||(C={})),function(e){e.b2c="b2c",e.b2b="b2b",e.test="test",e.demo="demo"}(b||(b={})),function(e){e.Personal="personal",e.Business="business"}(S||(S={})),function(e){e[e.b2c=3]="b2c",e[e.b2b=50]="b2b"}(A||(A={})),function(e){e.ReportingFrequency="ReportingFrequency",e.Advanced="Advanced",e.Query="Query",e.General="General"}(D||(D={})),function(e){e.Active="active",e.Inactive="inactive"}(R||(R={})),function(e){e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed"}(w||(w={})),function(e){e[e.Email=1]="Email",e[e.Phone=2]="Phone"}(T||(T={})),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"}(N||(N={})),function(e){e[e.Trip=1]="Trip",e[e.Stop=2]="Stop"}(B||(B={})),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"}(U||(U={})),function(e){e.Enter="boundaryEnter",e.Exit="boundaryExit"}(E||(E={})),function(e){e.FreeService="freeService",e.Discount="discount"}(P||(P={})),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"}(M||(M={})),function(e){e.Image="image",e.Video="video"}(F||(F={})),function(e){e.Front="front",e.Interior="interior"}(L||(L={})),function(e){e.SDCard="sdCard",e.Server="server"}(Q||(Q={})),function(e){e.TakePicture="takePicture",e.TakeVideo="takeVideo",e.UploadPicture="uploadPicture",e.UploadVideo="uploadVideo"}(q||(q={})),function(e){e.Requested="requested",e.Streaming="streaming",e.Closed="closed",e.Failed="failed",e.Closing="closing"}(_||(_={})),function(e){e.shopify="shopify",e.braintree="braintree",e.acumatica="acumatica",e.klarna="klarna",e.amazon="amazon",e.braintree_amazon="braintree_amazon",e.demo="demo",e.stripe="stripe",e.stripe_amazon="stripe_amazon"}(W||(W={})),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",e.CV200="CV200",e.FMM650="FMM650",e.GL32="GL32",e.DEMO="DEMO"}(j||(j={})),function(e){e.new_activation="new_activation",e.reactivation="reactivation",e.subscription_change="subscription_change",e.resumption="resumption",e.device_swap="device_swap",e.subscription_update="subscription_update"}(z||(z={})),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"}(V||(V={})),function(e){e.Active="Active",e.Pending="Pending",e.Canceled="Canceled",e.Expired="Expired",e.PastDue="Past Due",e.Incomplete="Incomplete",e.IncompleteExpired="Incomplete Expired",e.Trialing="Trialing",e.Unpaid="Unpaid",e.Paused="Paused"}(G||(G={})),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",e.klarna_billing_failed="klarna_billing_failed",e.prepaid_recurring_pending="prepaid_recurring_pending",e.expired_subscription="expired_subscription",e.unknown_reason="unknown_reason"}(J||(J={})),function(e){e.customer="customer",e.customer_support="customer_support",e.system="system"}(H||(H={})),function(e){e[e.Pod=1]="Pod",e[e.Verizon=2]="Verizon",e[e.Kore=3]="Kore",e[e.Twilio=4]="Twilio",e[e.Unknown=99]="Unknown",e[e.None=-1]="None"}(K||(K={})),function(e){e.device_cancel="device_cancel",e.device_pause="device_pause",e.churnbuster_lost="churnbuster_lost",e.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",e.device_cancel_admin="device_cancel_admin",e.klarna_billing_failed="klarna_billing_failed",e.expired_subscription="expired_subscription",e.prepaid_recurring_pending="prepaid_recurring_pending",e.device_swap="device_swap",e.system_auto="system_auto"}($||($={})),function(e){e.device_pause_resume="device_pause_resume"}(X||(X={})),function(e){e.campaign_started="campaign_started",e.email_bounced="email_bounced",e.campaign_recovered="campaign_recovered",e.campaign_lost="campaign_lost",e.campaign_won="campaign_won"}(Y||(Y={})),function(e){e.original="original",e.calculated="calculated"}(Z||(Z={})),function(e){e.Draft="draft",e.Open="open",e.Paid="paid",e.Uncollectible="uncollectible",e.Void="void"}(ee||(ee={})),function(e){e.in_trial="in_trial",e.canceled="canceled",e.converted="converted",e.overdue="overdue"}(te||(te={})),function(e){e.free_trial="free_trial",e.free_offer="free_offer"}(ie||(ie={}));var re=Object.freeze({__proto__:null,get AvalaraBasePrice(){return Z},get BillingCampaignFreeTrialStatus(){return te},get BillingCampaignType(){return ie},get BlacklistType(){return N},get BoundaryEventType(){return E},get BoundaryStatus(){return h},get CameraSource(){return L},get CarrierDeactivationType(){return $},get CarrierReactivationType(){return X},get Carriers(){return K},get ChurnbusterEventType(){return Y},get DataExportStatus(){return k},get DataExportType(){return x},get DeactivationCode(){return J},get DeactivationCreatedBy(){return H},get DeviceActivationSource(){return V},get DeviceBLEMeshStatus(){return O},get DeviceBehaviorStatus(){return R},get DeviceBehaviorTaskStatus(){return w},get DeviceBehaviorType(){return D},get DeviceCameraEventBehaviorType(){return q},get DeviceCameraMediaLocation(){return Q},get DeviceEventType(){return z},get DeviceModels(){return j},get DevicePlatform(){return W},get DeviceStatus(){return v},get HapnClientType(){return C},get HapnClientTypeNames(){return b},get HapnSecurityRole(){return g},get HapnUseType(){return S},get InvoiceStatus(){return ee},get M2SyncType(){return M},get MaxUsersAllowed(){return A},get MediaType(){return F},get NotificationRecipientType(){return T},get PromotionType(){return P},get StreamingStatus(){return _},get SubscriptionStatus(){return G},get TripCompletionStatus(){return U},get TripType(){return B},get UserInvitationStatus(){return f},get UserStatus(){return I}});let ne=class{imei;promotionId;promotion};r([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],ne.prototype,"imei",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],ne.prototype,"promotionId",void 0),r([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ne.prototype,"promotion",void 0),ne=r([e.Entity("devicePromotion",{schema:"nova"})],ne);let ae=class{deviceTypeId;promotionId;promotion};r([e.Column("smallint",{name:"deviceTypeId",primary:!0}),n("design:type",Number)],ae.prototype,"deviceTypeId",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],ae.prototype,"promotionId",void 0),r([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ae.prototype,"promotion",void 0),ae=r([e.Entity("deviceTypePromotion",{schema:"nova"})],ae);let oe=class{marketplaceId;promotionId;promotion};r([e.Column("varchar",{name:"marketplaceId",length:15,primary:!0}),n("design:type",String)],oe.prototype,"marketplaceId",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],oe.prototype,"promotionId",void 0),r([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],oe.prototype,"promotion",void 0),oe=r([e.Entity("marketplacePromotion",{schema:"nova"})],oe);let se=class{id;name;description;type;discount;discountBillingCycles;freeServiceMonths;startDate;endDate;status;bannerText;trackerText;marketplacePromotions;asinPromotions;devicePromotions;deviceTypePromotions};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],se.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],se.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],se.prototype,"description",void 0),r([e.Column("enum",{name:"type",enum:Object.values(P),comment:"The type of promotion: freeService or discount."}),n("design:type",String)],se.prototype,"type",void 0),r([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)],se.prototype,"discount",void 0),r([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)],se.prototype,"discountBillingCycles",void 0),r([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)],se.prototype,"freeServiceMonths",void 0),r([e.Column("datetime",{name:"startDate",comment:"The date that the promotion will start"}),n("design:type",Date)],se.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,comment:"The date that the promotion will end"}),n("design:type",Date)],se.prototype,"endDate",void 0),r([e.Column("varchar",{name:"status",length:25,comment:"The status of the promotion: active, inactive"}),n("design:type",String)],se.prototype,"status",void 0),r([e.Column("varchar",{name:"bannerText",nullable:!0,length:255}),n("design:type",String)],se.prototype,"bannerText",void 0),r([e.Column("varchar",{name:"trackerText",nullable:!0,length:255}),n("design:type",String)],se.prototype,"trackerText",void 0),r([e.OneToMany((()=>oe),(e=>e.promotion)),n("design:type",Array)],se.prototype,"marketplacePromotions",void 0),r([e.OneToMany((()=>le),(e=>e.promotion)),n("design:type",Array)],se.prototype,"asinPromotions",void 0),r([e.OneToMany((()=>ne),(e=>e.promotion)),n("design:type",Array)],se.prototype,"devicePromotions",void 0),r([e.OneToMany((()=>ae),(e=>e.promotion)),n("design:type",Array)],se.prototype,"deviceTypePromotions",void 0),se=r([e.Entity("promotion",{schema:"nova"})],se);let le=class{asin;promotionId;promotion};r([e.Column("varchar",{name:"asin",length:15,primary:!0}),n("design:type",String)],le.prototype,"asin",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],le.prototype,"promotionId",void 0),r([e.ManyToOne((()=>se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],le.prototype,"promotion",void 0),le=r([e.Entity("asinPromotion",{schema:"nova"})],le);let de=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],de.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],de.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],de.prototype,"description",void 0),de=r([e.Index("ixuAssetCategoryName",["name"],{unique:!0}),e.Entity("assetCategory",{schema:"nova"})],de);let ue=class{id;assetProfileId;assetProfile;name;value;type;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ue.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],ue.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],ue.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ue.prototype,"name",void 0),r([e.Column("varchar",{name:"value",length:50}),n("design:type",String)],ue.prototype,"value",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],ue.prototype,"type",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ue.prototype,"createdAt",void 0),ue=r([e.Index("ix_assetProfileId",["assetProfileId"],{}),e.Entity("assetProfileCustomField",{schema:"nova"})],ue);let ce=class{id;assetProfileId;assetProfile;mediaType;fileName;fileExtension;s3FilesPath;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ce.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],ce.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],ce.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"mediaType",length:15,comment:"The type of the media: image or document"}),n("design:type",String)],ce.prototype,"mediaType",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],ce.prototype,"fileName",void 0),r([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],ce.prototype,"fileExtension",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],ce.prototype,"s3FilesPath",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ce.prototype,"createdAt",void 0),ce=r([e.Index("ixu_ix_assetProfileId_fileName",["assetProfileId","fileName"],{unique:!0}),e.Entity("assetProfileMedia",{schema:"nova"})],ce);const pe={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(Buffer.isBuffer(e)){if(16!==e.length)throw new TypeError("Invalid Buffer length for UUID");return t.stringify(e)}if(e&&"object"==typeof e&&"Buffer"===e.type&&Array.isArray(e.data)){if(16!==e.data.length)throw new TypeError("Invalid Buffer length for UUID");const i=Buffer.from(e.data);return t.stringify(i)}throw new TypeError("Invalid value type for UUID: "+typeof e)}};let me=class{id;name;description;status};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],me.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],me.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],me.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],me.prototype,"status",void 0),me=r([e.Index("ixClientTypeName",["name"],{}),e.Entity("clientType",{schema:"nova"})],me);let ye=class{clientId;client;enterprise;maintenanceModule;billingMethod;customerSegment};r([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],ye.prototype,"clientId",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ye.prototype,"client",void 0),r([e.Column("tinyint",{name:"enterprise",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ye.prototype,"enterprise",void 0),r([e.Column("tinyint",{name:"maintenanceModule",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ye.prototype,"maintenanceModule",void 0),r([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)],ye.prototype,"billingMethod",void 0),r([e.Column("enum",{enum:["whale","bass","guppy","guppy-self-serve"],name:"customerSegment",nullable:!0}),n("design:type",String)],ye.prototype,"customerSegment",void 0),ye=r([e.Entity("customerAttribute",{schema:"nova"})],ye);let ge=class{id;name;randomMovementEnabled;maxMovingDevices;devices};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ge.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ge.prototype,"name",void 0),r([e.Column("tinyint",{name:"randomMovementEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],ge.prototype,"randomMovementEnabled",void 0),r([e.Column("smallint",{name:"maxMovingDevices",default:()=>"2"}),n("design:type",Number)],ge.prototype,"maxMovingDevices",void 0),ge=r([e.Entity("demoAccountTemplate",{schema:"nova"})],ge);let ve=class{id;clientId;fileName;s3FilesPath;altText;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ve.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ve.prototype,"clientId",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],ve.prototype,"fileName",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],ve.prototype,"s3FilesPath",void 0),r([e.Column("varchar",{name:"altText",nullable:!0,length:100}),n("design:type",String)],ve.prototype,"altText",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ve.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ve.prototype,"modifiedAt",void 0),ve=r([e.Index("ixClientDeviceIcon_clientId_fileName",["clientId","fileName"],{unique:!0}),e.Entity("clientDeviceIcon",{schema:"nova"})],ve);let he=class{id;brand;model;modelFamily;description;tags;url;name;pictureUrl;userManualUrl;notes;supported;activatable;selfActivatable;port;protocolMatch;stage;identifierType;landingPage;troubleshooting;protocol;readOnly;customerFacingModel;customerFacingName;devices};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],he.prototype,"id",void 0),r([e.Column("varchar",{name:"brand",length:50}),n("design:type",String)],he.prototype,"brand",void 0),r([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],he.prototype,"model",void 0),r([e.Column("varchar",{name:"modelFamily",length:50}),n("design:type",String)],he.prototype,"modelFamily",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],he.prototype,"description",void 0),r([e.Column("varchar",{name:"tags",nullable:!0,length:255}),n("design:type",String)],he.prototype,"tags",void 0),r([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],he.prototype,"url",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],he.prototype,"name",void 0),r([e.Column("varchar",{name:"pictureUrl",nullable:!0,length:1e3}),n("design:type",String)],he.prototype,"pictureUrl",void 0),r([e.Column("varchar",{name:"userManualUrl",nullable:!0,length:1e3}),n("design:type",String)],he.prototype,"userManualUrl",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:2e3}),n("design:type",String)],he.prototype,"notes",void 0),r([e.Column("tinyint",{name:"supported",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],he.prototype,"supported",void 0),r([e.Column("tinyint",{name:"activatable",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],he.prototype,"activatable",void 0),r([e.Column("tinyint",{name:"selfActivatable",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],he.prototype,"selfActivatable",void 0),r([e.Column("smallint",{name:"port",nullable:!0}),n("design:type",Number)],he.prototype,"port",void 0),r([e.Column("varchar",{name:"protocolMatch",nullable:!0,length:5}),n("design:type",String)],he.prototype,"protocolMatch",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],he.prototype,"stage",void 0),r([e.Column("varchar",{name:"identifierType",length:20}),n("design:type",String)],he.prototype,"identifierType",void 0),r([e.Column("varchar",{name:"landingPage",nullable:!0,length:1e3}),n("design:type",String)],he.prototype,"landingPage",void 0),r([e.Column("varchar",{name:"troubleshooting",nullable:!0,length:1e3}),n("design:type",String)],he.prototype,"troubleshooting",void 0),r([e.Column("varchar",{name:"protocol",nullable:!0,length:50}),n("design:type",String)],he.prototype,"protocol",void 0),r([e.Column("tinyint",{name:"readOnly",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],he.prototype,"readOnly",void 0),r([e.Column("varchar",{name:"customerFacingModel",length:50,nullable:!0}),n("design:type",String)],he.prototype,"customerFacingModel",void 0),r([e.Column("varchar",{name:"customerFacingName",length:50,nullable:!0}),n("design:type",String)],he.prototype,"customerFacingName",void 0),r([e.OneToMany((()=>Ie),(e=>e.deviceType)),n("design:type",Array)],he.prototype,"devices",void 0),he=r([e.Entity("deviceType",{schema:"nova"})],he);let Ie=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;demoAccountTemplateDeviceId;iccidCarrier;clientDeviceSetting;securityGroupEntityTags;devicePairing;assetProfile;extendedAttributes};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ie.prototype,"id",void 0),r([e.Column("varchar",{name:"identifier",length:100}),n("design:type",String)],Ie.prototype,"identifier",void 0),r([e.Column("varchar",{name:"identifierKey",length:255}),n("design:type",String)],Ie.prototype,"identifierKey",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],Ie.prototype,"deviceTypeId",void 0),r([e.ManyToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ie.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ie.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ie.prototype,"clientId",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ie.prototype,"client",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ie.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],Ie.prototype,"name",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"status",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],Ie.prototype,"iccid",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ie.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"modifiedBy",void 0),r([e.Column("tinyint",{name:"forward",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ie.prototype,"forward",void 0),r([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],Ie.prototype,"color",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"icon",void 0),r([e.Column("int",{name:"customIconId",nullable:!0}),n("design:type",Number)],Ie.prototype,"customIconId",void 0),r([e.OneToOne((()=>ve),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Ie.prototype,"customIcon",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],Ie.prototype,"description",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ie.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"assetCategoryId",nullable:!0}),n("design:type",Number)],Ie.prototype,"assetCategoryId",void 0),r([e.Column("varchar",{name:"usageRegion",nullable:!0,length:25}),n("design:type",String)],Ie.prototype,"usageRegion",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Ie.prototype,"btmac",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:36}),n("design:type",String)],Ie.prototype,"serialNumber",void 0),r([e.Column("varchar",{name:"assignedTo",nullable:!0,length:255}),n("design:type",String)],Ie.prototype,"assignedTo",void 0),r([e.Column("varchar",{name:"assignmentMode",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"assignmentMode",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId",nullable:!0}),n("design:type",Number)],Ie.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("json",{name:"extendedAttributes",nullable:!0}),n("design:type",Object)],Ie.prototype,"extendedAttributes",void 0),Ie=r([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.Index("ixDeviceSearch",["clientId","status","imei","createdAt","deviceTypeId"],{}),e.Entity("device",{schema:"nova"})],Ie);let fe=class{id;clientId;client;deviceTypeId;imei;configFileUrl;skipActivationDefaults;createdAt;po};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],fe.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],fe.prototype,"clientId",void 0),r([e.ManyToOne((()=>be),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],fe.prototype,"client",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],fe.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],fe.prototype,"imei",void 0),r([e.Column("varchar",{name:"configFileUrl",nullable:!0,length:1e3}),n("design:type",String)],fe.prototype,"configFileUrl",void 0),r([e.Column("tinyint",{name:"skipActivationDefaults",width:1,default:0,transformer:new c}),n("design:type",Boolean)],fe.prototype,"skipActivationDefaults",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],fe.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],fe.prototype,"po",void 0),fe=r([e.Index("ixDeviceCustomConfigurationsClientId",["clientId"],{}),e.Entity("deviceCustomConfiguration",{schema:"nova"})],fe);let Ce=class{id;name;description;websiteUrl;address;mainContact};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ce.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Ce.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],Ce.prototype,"description",void 0),r([e.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),n("design:type",String)],Ce.prototype,"websiteUrl",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Ce.prototype,"address",void 0),r([e.Column("binary",{name:"mainContact",length:16}),n("design:type",Buffer)],Ce.prototype,"mainContact",void 0),Ce=r([e.Entity("organization",{schema:"nova"})],Ce);let be=class{id;name;createdAt;modifiedAt;uuid;email;modifiedBy;createdBy;dataSourceTypeId;clientTypeId;clientType;salesforceId;accumaticaId;expirationDate;useType;btCustomerId;activationCampaign;organizationId;organization;users;devices;deviceCustomConfigurations;customerAttribute;demoAccountExpirationDate;demoAccountTemplateId;demoAccountTemplate;lastIterableSyncDate;activeOrRecentlyChurned};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],be.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],be.prototype,"name",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],be.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],be.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"uuid",nullable:!0,length:16}),n("design:type",Buffer)],be.prototype,"uuid",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],be.prototype,"email",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],be.prototype,"modifiedBy",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],be.prototype,"createdBy",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],be.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"clientTypeId",default:()=>"'1'"}),n("design:type",Number)],be.prototype,"clientTypeId",void 0),r([e.ManyToOne((()=>me),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],be.prototype,"clientType",void 0),r([e.Column("varchar",{name:"salesforceId",nullable:!0,length:50}),n("design:type",String)],be.prototype,"salesforceId",void 0),r([e.Column("varchar",{name:"accumaticaId",nullable:!0,length:50}),n("design:type",String)],be.prototype,"accumaticaId",void 0),r([e.Column("datetime",{name:"expirationDate",nullable:!0}),n("design:type",Date)],be.prototype,"expirationDate",void 0),r([e.Column("varchar",{name:"useType",nullable:!0,length:25}),n("design:type",String)],be.prototype,"useType",void 0),r([e.Column("varchar",{name:"btCustomerId",nullable:!0,length:50}),n("design:type",String)],be.prototype,"btCustomerId",void 0),r([e.Column("varchar",{name:"activationCampaign",nullable:!0,length:50}),n("design:type",String)],be.prototype,"activationCampaign",void 0),r([e.Column("int",{name:"organizationId",nullable:!0}),n("design:type",Number)],be.prototype,"organizationId",void 0),r([e.OneToOne((()=>Ce),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],be.prototype,"organization",void 0),r([e.OneToMany((()=>Oe),(e=>e.client)),n("design:type",Array)],be.prototype,"users",void 0),r([e.OneToMany((()=>Ie),(e=>e.client)),n("design:type",Array)],be.prototype,"devices",void 0),r([e.OneToMany((()=>fe),(e=>e.client)),n("design:type",Array)],be.prototype,"deviceCustomConfigurations",void 0),r([e.OneToOne((()=>ye),(e=>e.client)),n("design:type",Object)],be.prototype,"customerAttribute",void 0),r([e.Column("datetime",{name:"demoAccountExpirationDate",nullable:!0}),n("design:type",Date)],be.prototype,"demoAccountExpirationDate",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId",nullable:!0}),n("design:type",Number)],be.prototype,"demoAccountTemplateId",void 0),r([e.OneToOne((()=>ge),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],be.prototype,"demoAccountTemplate",void 0),r([e.Column("datetime",{name:"lastIterableSyncDate",nullable:!0}),n("design:type",Date)],be.prototype,"lastIterableSyncDate",void 0),r([e.Column("tinyint",{name:"activeOrRecentlyChurned",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],be.prototype,"activeOrRecentlyChurned",void 0),be=r([e.Index("ixClientClientTypeId",["clientTypeId"],{}),e.Index("ixClientCreatedAt",["createdAt"],{}),e.Index("ixClientEmail",["email"],{}),e.Index("ixClientEmailLower",{synchronize:!1}),e.Index("ixClientComposite",["id","email","accumaticaId","clientTypeId"],{}),e.Entity("client",{schema:"nova"})],be);let Se=class{id;name;currencies;capital;region;subregion;languages;lat;lon;borders;area;internationalDirectDialing;alpha2Code;alpha3Code};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Se.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"name",void 0),r([e.Column("varchar",{name:"currencies",nullable:!0,length:255}),n("design:type",String)],Se.prototype,"currencies",void 0),r([e.Column("varchar",{name:"capital",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"capital",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"region",void 0),r([e.Column("varchar",{name:"subregion",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"subregion",void 0),r([e.Column("varchar",{name:"languages",nullable:!0,length:255}),n("design:type",String)],Se.prototype,"languages",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Se.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Se.prototype,"lon",void 0),r([e.Column("varchar",{name:"borders",nullable:!0,length:255}),n("design:type",String)],Se.prototype,"borders",void 0),r([e.Column("int",{name:"area",nullable:!0}),n("design:type",Number)],Se.prototype,"area",void 0),r([e.Column("varchar",{name:"internationalDirectDialing",nullable:!0,length:10}),n("design:type",String)],Se.prototype,"internationalDirectDialing",void 0),r([e.Column("varchar",{name:"alpha2Code",nullable:!0,length:2}),n("design:type",String)],Se.prototype,"alpha2Code",void 0),r([e.Column("varchar",{name:"alpha3Code",nullable:!0,length:3}),n("design:type",String)],Se.prototype,"alpha3Code",void 0),Se=r([e.Index("ixCountryAlpha2Code",["alpha2Code"],{}),e.Index("ixCountryName",["name"],{}),e.Entity("country",{schema:"nova"})],Se);let Ae=class{id;userId;user;alertTypeId;alertType;clientId;client;email;reason;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ae.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ae.prototype,"userId",void 0),r([e.ManyToOne((()=>Oe),(e=>e.userAlertComplain),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Ae.prototype,"user",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],Ae.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Ae.prototype,"alertType",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ae.prototype,"clientId",void 0),r([e.ManyToOne((()=>be),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],Ae.prototype,"client",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],Ae.prototype,"email",void 0),r([e.Column("varchar",{name:"reason",length:25}),n("design:type",String)],Ae.prototype,"reason",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Ae.prototype,"createdAt",void 0),Ae=r([e.Index("ixuUserAlertComplainUserIdAlertTypeId",["userId","alertTypeId"],{unique:!0}),e.Entity("userAlertComplain",{schema:"nova"})],Ae);let De=class{id;clientAlertConfigurationId;clientAlertConfiguration;userId;roleId;isEnabled;smsNotification;emailNotification;appNotification;pushNotification};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],De.prototype,"id",void 0),r([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],De.prototype,"clientAlertConfigurationId",void 0),r([e.ManyToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],De.prototype,"clientAlertConfiguration",void 0),r([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],De.prototype,"userId",void 0),r([e.Column("tinyint",{name:"roleId",nullable:!0}),n("design:type",Number)],De.prototype,"roleId",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],De.prototype,"isEnabled",void 0),r([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],De.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],De.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],De.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],De.prototype,"pushNotification",void 0),De=r([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Entity("clientAlertRecipient",{schema:"nova"})],De);let Re=class{id;clientId;alertTypeId;name;description;status;alertValue;alertMetadata;filter;readOnly;createdAt;createdBy;modifiedBy;internalRecipients;externalRecipients};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Re.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Re.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],Re.prototype,"alertTypeId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Re.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],Re.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],Re.prototype,"status",void 0),r([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],Re.prototype,"alertValue",void 0),r([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],Re.prototype,"alertMetadata",void 0),r([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],Re.prototype,"filter",void 0),r([e.Column("tinyint",{name:"readOnly",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Re.prototype,"readOnly",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Re.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Re.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],Re.prototype,"modifiedBy",void 0),r([e.OneToMany((()=>De),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],Re.prototype,"internalRecipients",void 0),r([e.OneToMany((()=>we),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],Re.prototype,"externalRecipients",void 0),Re=r([e.Index("ixClientAlertConfigurationClientIdAlertTypeId",["clientId","alertTypeId"],{unique:!1}),e.Index("ixClientAlertConfigurationClientIdCreatedAt",["clientId","createdAt"],{unique:!1}),e.Entity("clientAlertConfiguration",{schema:"nova"})],Re);let we=class{id;clientId;notificationType;recipient;isEnabled;isUserProfile;createdAt;modifiedAt;dataSourceTypeId;unsubscribed;unsubscribedInfo;userId;userAlertConfigurationId;userAlertConfiguration;clientAlertConfigurationId;clientAlertConfiguration};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],we.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],we.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"notificationType"}),n("design:type",Number)],we.prototype,"notificationType",void 0),r([e.Column("varchar",{name:"recipient",length:100}),n("design:type",String)],we.prototype,"recipient",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c}),n("design:type",Boolean)],we.prototype,"isEnabled",void 0),r([e.Column("tinyint",{name:"isUserProfile",width:1,transformer:new c}),n("design:type",Boolean)],we.prototype,"isUserProfile",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],we.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],we.prototype,"modifiedAt",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],we.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"unsubscribed",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],we.prototype,"unsubscribed",void 0),r([e.Column("varchar",{name:"unsubscribedInfo",nullable:!0,length:256}),n("design:type",String)],we.prototype,"unsubscribedInfo",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],we.prototype,"userId",void 0),r([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],we.prototype,"userAlertConfigurationId",void 0),r([e.ManyToOne((()=>Te),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"userAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],we.prototype,"userAlertConfiguration",void 0),r([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],we.prototype,"clientAlertConfigurationId",void 0),r([e.ManyToOne((()=>Re),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],we.prototype,"clientAlertConfiguration",void 0),we=r([e.Index("ixuNotificationRecipientClientIdRecipientUserId",["clientId","recipient","userId"],{unique:!0}),e.Index("ixNotificationRecipientClientId",["clientId"],{}),e.Index("ixNotificationRecipientUserId",["userId"],{}),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"})],we);let Te=class{id;userId;user;smsNotification;emailNotification;alertTypeId;alertType;alertValue;appNotification;dataSourceTypeId;pushNotification;alertMetadata;filter;enabled;createdBy;name;notificationRecipients};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Te.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Te.prototype,"userId",void 0),r([e.ManyToOne((()=>Oe),(e=>e.userAlertConfiguration),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Te.prototype,"user",void 0),r([e.Column("tinyint",{name:"smsNotification",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Te.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Te.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],Te.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Te.prototype,"alertType",void 0),r([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],Te.prototype,"alertValue",void 0),r([e.Column("tinyint",{name:"appNotification",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Te.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Te.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Te.prototype,"pushNotification",void 0),r([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],Te.prototype,"alertMetadata",void 0),r([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],Te.prototype,"filter",void 0),r([e.Column("tinyint",{name:"enabled",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Te.prototype,"enabled",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Te.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],Te.prototype,"name",void 0),r([e.OneToMany((()=>we),(e=>e.userAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"userAlertConfigurationId"}),n("design:type",Array)],Te.prototype,"notificationRecipients",void 0),Te=r([e.Index("ixUserAlertConfigurationUserIdAlertTypeId",["userId","alertTypeId"],{unique:!1}),e.Entity("userAlertConfiguration",{schema:"nova"})],Te);let Ne=class{id;clientAlertConfigurationId;userId;user;smsNotification;emailNotification;appNotification;pushNotification};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ne.prototype,"id",void 0),r([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],Ne.prototype,"clientAlertConfigurationId",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ne.prototype,"userId",void 0),r([e.ManyToOne((()=>Oe),(e=>e.clientAlertNotificationOverride),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Ne.prototype,"user",void 0),r([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"pushNotification",void 0),Ne=r([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Index("ixUserId",["userId"],{unique:!1}),e.Index("ixUserIdClientAlertConfigurationId",["userId","clientAlertConfigurationId"],{unique:!0}),e.Entity("userAlertNotificationsConfig",{schema:"nova"})],Ne);let Be=class{id;userId;user;isMetric;timezone;createdAt;modifiedAt;defaultMapLayer;speedUnits;distanceUnits;alertsNotificationsOn;dataSourceTypeId;homepage;temperatureUnits;addressFormat;assetProfileStatusLabelsEnabled;trackerClusteringEnabled};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Be.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Be.prototype,"userId",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Be.prototype,"user",void 0),r([e.Column("tinyint",{name:"isMetric",width:1,transformer:new c}),n("design:type",Boolean)],Be.prototype,"isMetric",void 0),r([e.Column("varchar",{name:"timezone",nullable:!0,length:255,default:()=>"'EST'"}),n("design:type",String)],Be.prototype,"timezone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Be.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Be.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"defaultMapLayer",nullable:!0,length:25}),n("design:type",String)],Be.prototype,"defaultMapLayer",void 0),r([e.Column("varchar",{name:"speedUnits",nullable:!0,length:10}),n("design:type",String)],Be.prototype,"speedUnits",void 0),r([e.Column("varchar",{name:"distanceUnits",nullable:!0,length:10}),n("design:type",String)],Be.prototype,"distanceUnits",void 0),r([e.Column("tinyint",{name:"alertsNotificationsOn",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Be.prototype,"alertsNotificationsOn",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Be.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"homepage",nullable:!0,length:50}),n("design:type",String)],Be.prototype,"homepage",void 0),r([e.Column("varchar",{name:"temperatureUnits",nullable:!0,length:10}),n("design:type",String)],Be.prototype,"temperatureUnits",void 0),r([e.Column("varchar",{name:"addressFormat",nullable:!0,length:100}),n("design:type",String)],Be.prototype,"addressFormat",void 0),r([e.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Be.prototype,"assetProfileStatusLabelsEnabled",void 0),r([e.Column("tinyint",{name:"trackerClusteringEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Be.prototype,"trackerClusteringEnabled",void 0),Be=r([e.Index("ixUserConfigurationUserId",["userId"],{}),e.Entity("userConfiguration",{schema:"nova"})],Be);let Ue=class{id;key;name;description;ordinalPosition;userSecurityRoles};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Ue.prototype,"id",void 0),r([e.Column("varchar",{name:"key",length:25}),n("design:type",String)],Ue.prototype,"key",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ue.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],Ue.prototype,"description",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Ue.prototype,"ordinalPosition",void 0),r([e.OneToMany((()=>Pe),(e=>e.securityRole),{createForeignKeyConstraints:!1}),n("design:type",Array)],Ue.prototype,"userSecurityRoles",void 0),Ue=r([e.Entity("securityRole",{schema:"nova"})],Ue);const Ee=["full","limited"];let Pe=class{clientId;userId;user;securityRole;securityRoleId;devicesAccess;boundariesAccess;minAccessDate;tasksAccess;devicesAccessNew;customSecurityRoleId;customSecurityRole};r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pe.prototype,"clientId",void 0),r([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],Pe.prototype,"userId",void 0),r([e.ManyToOne((()=>Oe),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Pe.prototype,"user",void 0),r([e.ManyToOne((()=>Ue),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Pe.prototype,"securityRole",void 0),r([e.Column("tinyint",{primary:!0,name:"securityRoleId"}),n("design:type",Number)],Pe.prototype,"securityRoleId",void 0),r([e.Column("enum",{name:"access",enum:Ee,default:"full"}),n("design:type",String)],Pe.prototype,"devicesAccess",void 0),r([e.Column("enum",{name:"boundariesAccess",enum:Ee,default:"full"}),n("design:type",String)],Pe.prototype,"boundariesAccess",void 0),r([e.Column("datetime",{name:"minAccessDate",nullable:!0,precision:0}),n("design:type",Date)],Pe.prototype,"minAccessDate",void 0),r([e.Column("enum",{name:"tasksAccess",enum:["full","can_complete","read_only","no_access"],default:"full"}),n("design:type",String)],Pe.prototype,"tasksAccess",void 0),r([e.Column("enum",{name:"devicesAccess",enum:Ee,default:"full"}),n("design:type",String)],Pe.prototype,"devicesAccessNew",void 0),r([e.Column("int",{name:"customSecurityRoleId",nullable:!0}),n("design:type",Number)],Pe.prototype,"customSecurityRoleId",void 0),Pe=r([e.Index("ixUserSecurityRoleClientId",["clientId"],{}),e.Index("ixUserSecurityRoleSecurityRoleId",["securityRoleId"],{}),e.Index("ixUserSecurityRoleUserId",["userId"],{}),e.Index("ixUserSecurityRoleClientIdAccessUserId",["clientId","devicesAccess","userId"],{}),e.Entity("userSecurityRole",{schema:"nova"})],Pe);let Oe=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;userAgreementAcceptedAt;userConfiguration;userAlertConfiguration;clientAlertNotificationOverride;userAlertComplain;userSecurityRoles;securityGroupEntityTags;fullPhoneNumber};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Oe.prototype,"id",void 0),r([e.Column("int",{name:"numberId",nullable:!0,unique:!0}),e.Generated("increment"),n("design:type",Number)],Oe.prototype,"numberId",void 0),r([e.Column("varchar",{name:"firstName",length:100}),n("design:type",String)],Oe.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",length:100}),n("design:type",String)],Oe.prototype,"lastName",void 0),r([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Oe.prototype,"companyName",void 0),r([e.Column("varchar",{name:"telephone",nullable:!0,length:20}),n("design:type",String)],Oe.prototype,"telephone",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Oe.prototype,"street",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],Oe.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Oe.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Oe.prototype,"region",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],Oe.prototype,"email",void 0),r([e.Column("varchar",{name:"userName",length:255}),n("design:type",String)],Oe.prototype,"userName",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Oe.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Oe.prototype,"modifiedAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],Oe.prototype,"status",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Oe.prototype,"clientId",void 0),r([e.ManyToOne((()=>be),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],Oe.prototype,"client",void 0),r([e.Column("varchar",{name:"pincode",nullable:!0,length:20}),n("design:type",String)],Oe.prototype,"pincode",void 0),r([e.Column("tinyint",{name:"isAdmin",width:1,transformer:new c}),n("design:type",Boolean)],Oe.prototype,"isAdmin",void 0),r([e.Column("smallint",{name:"countryId",nullable:!0}),n("design:type",Number)],Oe.prototype,"countryId",void 0),r([e.OneToOne((()=>Se),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Oe.prototype,"country",void 0),r([e.Column("smallint",{name:"telephoneCountryId",nullable:!0}),n("design:type",Number)],Oe.prototype,"telephoneCountryId",void 0),r([e.OneToOne((()=>Se),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Oe.prototype,"telephoneCountry",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Oe.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"preferredUserName",nullable:!0,length:255}),n("design:type",String)],Oe.prototype,"preferredUserName",void 0),r([e.Column("datetime",{name:"lastLoginAt",nullable:!0}),n("design:type",Date)],Oe.prototype,"lastLoginAt",void 0),r([e.Column("tinyint",{name:"emailVerified",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Oe.prototype,"emailVerified",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Oe.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Oe.prototype,"lon",void 0),r([e.Column("datetime",{name:"userAgreementAcceptedAt",nullable:!0}),n("design:type",Date)],Oe.prototype,"userAgreementAcceptedAt",void 0),r([e.OneToOne((()=>Be),(e=>e.user)),n("design:type",Object)],Oe.prototype,"userConfiguration",void 0),r([e.OneToMany((()=>Te),(e=>e.user)),n("design:type",Array)],Oe.prototype,"userAlertConfiguration",void 0),r([e.OneToMany((()=>Ne),(e=>e.user)),n("design:type",Array)],Oe.prototype,"clientAlertNotificationOverride",void 0),r([e.OneToMany((()=>Ae),(e=>e.user)),n("design:type",Array)],Oe.prototype,"userAlertComplain",void 0),r([e.OneToMany((()=>Pe),(e=>e.user),{createForeignKeyConstraints:!1}),n("design:type",Array)],Oe.prototype,"userSecurityRoles",void 0),r([e.Column("varchar",{name:"fullPhoneNumber",nullable:!0,length:20}),n("design:type",String)],Oe.prototype,"fullPhoneNumber",void 0),Oe=r([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"})],Oe);let xe=class{id;assetProfileId;assetProfile;note;userId;user;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],xe.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],xe.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],xe.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"note",length:255}),n("design:type",String)],xe.prototype,"note",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:pe}),n("design:type",String)],xe.prototype,"userId",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"user",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],xe.prototype,"createdAt",void 0),xe=r([e.Index("ix_assetProfileId",["assetProfileId"],{}),e.Entity("assetProfileNote",{schema:"nova"})],xe);let ke=class{id;name;assetProfileTypes};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ke.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ke.prototype,"name",void 0),r([e.OneToMany((()=>Me),(e=>e.assetProfileCategory)),n("design:type",Array)],ke.prototype,"assetProfileTypes",void 0),ke=r([e.Index("ixuAssetProfileCategoryName",["name"],{unique:!0}),e.Entity("assetProfileCategory",{schema:"nova"})],ke);let Me=class{id;name;assetProfileCategoryId;assetProfileCategory;clientId};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Me.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Me.prototype,"name",void 0),r([e.Column("tinyint",{name:"assetProfileCategoryId"}),n("design:type",Number)],Me.prototype,"assetProfileCategoryId",void 0),r([e.OneToOne((()=>ke),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Me.prototype,"assetProfileCategory",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Me.prototype,"clientId",void 0),Me=r([e.Index("ixu_assetProfileCategoryId_name_clientId",["assetProfileCategoryId","name","clientId"],{unique:!0}),e.Entity("assetProfileType",{schema:"nova"})],Me);let Fe=class{id;deviceId;name;clientId;device;assetProfileTypeId;assetProfileType;make;model;serialNumber;year;status;createdAt;modifiedAt;medias;notes;customFields;customStatus};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Fe.prototype,"id",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Fe.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"name",length:50,nullable:!0}),n("design:type",String)],Fe.prototype,"name",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Fe.prototype,"clientId",void 0),r([e.OneToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Fe.prototype,"device",void 0),r([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Fe.prototype,"assetProfileTypeId",void 0),r([e.OneToOne((()=>Me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Fe.prototype,"assetProfileType",void 0),r([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"make",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"model",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Fe.prototype,"serialNumber",void 0),r([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Fe.prototype,"year",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Fe.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Fe.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Fe.prototype,"modifiedAt",void 0),r([e.OneToMany((()=>ce),(e=>e.assetProfile)),n("design:type",Array)],Fe.prototype,"medias",void 0),r([e.OneToMany((()=>xe),(e=>e.assetProfile)),n("design:type",Array)],Fe.prototype,"notes",void 0),r([e.OneToMany((()=>ue),(e=>e.assetProfile)),n("design:type",Array)],Fe.prototype,"customFields",void 0),Fe=r([e.Index("ix_clientId",["clientId"],{}),e.Index("ix_deviceId",["deviceId"],{unique:!0}),e.Entity("assetProfile",{schema:"nova"})],Fe);let Le=class{id;clientId;status;label;description;color};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Le.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Le.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:50}),n("design:type",String)],Le.prototype,"status",void 0),r([e.Column("varchar",{name:"label",length:50}),n("design:type",String)],Le.prototype,"label",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Le.prototype,"description",void 0),r([e.Column("varchar",{name:"color",length:25}),n("design:type",String)],Le.prototype,"color",void 0),Le=r([e.Entity("assetProfileCustomStatus",{schema:"nova"}),e.Index("ix_clientId_status",["clientId","status"],{unique:!0})],Le);class Qe{to(e){return e||null}from(e){return e?new Date(e):null}}let qe=class{id;clientId;fileName;expirationDate;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],qe.prototype,"id",void 0),r([e.Column("int",{name:"clientId",unique:!0}),n("design:type",Number)],qe.prototype,"clientId",void 0),r([e.Column("varchar",{name:"fileName",length:1e3}),n("design:type",String)],qe.prototype,"fileName",void 0),r([e.Column("date",{name:"expirationDate",transformer:new Qe}),n("design:type",Date)],qe.prototype,"expirationDate",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],qe.prototype,"createdAt",void 0),qe=r([e.Index("ixAvalaraExemptCertClientId",["clientId"],{unique:!0}),e.Entity("avalaraExemptCert",{schema:"nova"})],qe);let _e=class{id;subscriptionId;planId;priceIncrease;priceDecrease;status;basePrice;attempts;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],_e.prototype,"id",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],_e.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:256}),n("design:type",String)],_e.prototype,"planId",void 0),r([e.Column("decimal",{name:"priceIncrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],_e.prototype,"priceIncrease",void 0),r([e.Column("decimal",{name:"priceDecrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],_e.prototype,"priceDecrease",void 0),r([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],_e.prototype,"status",void 0),r([e.Column("enum",{enum:["original","calculated"],name:"basePrice",nullable:!0}),n("design:type",String)],_e.prototype,"basePrice",void 0),r([e.Column("tinyint",{name:"attempts",default:()=>"'0'"}),n("design:type",Number)],_e.prototype,"attempts",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],_e.prototype,"createdAt",void 0),_e=r([e.Index("ixAvalaraQueueSubscriptionId",["subscriptionId"]),e.Entity("avalaraQueue",{schema:"nova"})],_e);let We=class{id;clientId;deviceId;bleMeshId;status;createdAt;modifiedAt;device;bleMesh};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],We.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],We.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],We.prototype,"deviceId",void 0),r([e.Column("int",{name:"bleMeshId"}),n("design:type",Number)],We.prototype,"bleMeshId",void 0),r([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],We.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],We.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],We.prototype,"modifiedAt",void 0),r([e.OneToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],We.prototype,"device",void 0),r([e.OneToOne((()=>je),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],We.prototype,"bleMesh",void 0),We=r([e.Index("ixDeviceBleMesh_clientId",["clientId"],{}),e.Index("ixuDeviceBleMesh_deviceId",["deviceId"],{unique:!0}),e.Entity("deviceBleMesh",{schema:"nova"})],We);let je=class{id;clientId;name;address;lat;lon;createdAt;modifiedAt;beacons;devices};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],je.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],je.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:150}),n("design:type",String)],je.prototype,"name",void 0),r([e.Column("varchar",{name:"address",length:500}),n("design:type",String)],je.prototype,"address",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],je.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],je.prototype,"lon",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],je.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],je.prototype,"modifiedAt",void 0),r([e.OneToMany((()=>ze),(e=>e.bleMesh)),n("design:type",Array)],je.prototype,"beacons",void 0),r([e.OneToMany((()=>We),(e=>e.bleMesh)),n("design:type",Array)],je.prototype,"devices",void 0),je=r([e.Index("ixBLEMesh_clientId",["clientId"],{}),e.Entity("bleMesh",{schema:"nova"})],je);let ze=class{id;clientId;name;bleMac;bleMeshId;createdAt;bleMesh};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ze.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ze.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:250,nullable:!0}),n("design:type",String)],ze.prototype,"name",void 0),r([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],ze.prototype,"bleMac",void 0),r([e.Column("int",{name:"bleMeshId",nullable:!0}),n("design:type",Number)],ze.prototype,"bleMeshId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ze.prototype,"createdAt",void 0),r([e.OneToOne((()=>je),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ze.prototype,"bleMesh",void 0),ze=r([e.Index("ixBeaconMesh_clientId",["clientId"],{}),e.Index("ixuBeaconMesh_bleMac",["bleMac"],{unique:!0}),e.Entity("beaconBleMesh",{schema:"nova"})],ze);let Ve=class{id;name;description;billingFrequencyMonths;price;trialPeriod;discount;platform;planGroup;gracePeriod;status;platformPrice;servicePlan;contractLengthMonths};r([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Ve.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ve.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Ve.prototype,"description",void 0),r([e.Column("tinyint",{name:"billingFrequencyMonths"}),n("design:type",Number)],Ve.prototype,"billingFrequencyMonths",void 0),r([e.Column("float",{name:"price"}),n("design:type",Number)],Ve.prototype,"price",void 0),r([e.Column("varchar",{name:"trialPeriod",nullable:!0,length:25}),n("design:type",String)],Ve.prototype,"trialPeriod",void 0),r([e.Column("float",{name:"discount",nullable:!0}),n("design:type",Number)],Ve.prototype,"discount",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ve.prototype,"platform",void 0),r([e.Column("varchar",{name:"planGroup",nullable:!0,length:25}),n("design:type",String)],Ve.prototype,"planGroup",void 0),r([e.Column("varchar",{name:"gracePeriod",nullable:!0,length:25}),n("design:type",String)],Ve.prototype,"gracePeriod",void 0),r([e.Column("char",{name:"status",length:1}),n("design:type",String)],Ve.prototype,"status",void 0),r([e.Column("float",{name:"platformPrice",nullable:!0}),n("design:type",Number)],Ve.prototype,"platformPrice",void 0),r([e.Column("varchar",{name:"servicePlan",nullable:!0,length:10}),n("design:type",String)],Ve.prototype,"servicePlan",void 0),r([e.Column("tinyint",{name:"contractLengthMonths"}),n("design:type",Number)],Ve.prototype,"contractLengthMonths",void 0),Ve=r([e.Index("ixPlanComposite",["id"],{}),e.Entity("plan",{schema:"nova"})],Ve);let Ge=class{id;deviceId;imei;planId;plan;subscriptionId;platform;status;createdAt;updatedAt;subscriptionValue;subscriptionPeriodMonths;subscriptionValueMonthly;clientId;client};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ge.prototype,"id",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Ge.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ge.prototype,"imei",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"planId",void 0),r([e.OneToOne((()=>Ve),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Ge.prototype,"plan",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Ge.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ge.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Ge.prototype,"updatedAt",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ge.prototype,"subscriptionValue",void 0),r([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],Ge.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("decimal",{name:"subscriptionValueMonthly",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Ge.prototype,"subscriptionValueMonthly",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ge.prototype,"clientId",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Ge.prototype,"client",void 0),Ge=r([e.Index("ixuBillingImei",["imei"],{unique:!0}),e.Index("ixBillingClientId",["clientId"],{}),e.Index("ixBillingPlanId",["planId"],{}),e.Index("ixBillingSubscriptionId",["subscriptionId"],{}),e.Index("ixBillingComposite",["imei","subscriptionId","platform","status","planId"],{}),e.Entity("billing",{schema:"nova"})],Ge);let Je=class{id;type;enabled;startAt;endAt;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Je.prototype,"id",void 0),r([e.Column("varchar",{name:"type",length:64}),n("design:type",String)],Je.prototype,"type",void 0),r([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Je.prototype,"enabled",void 0),r([e.Column("datetime",{name:"startAt",nullable:!0}),n("design:type",Date)],Je.prototype,"startAt",void 0),r([e.Column("datetime",{name:"endAt",nullable:!0}),n("design:type",Date)],Je.prototype,"endAt",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Je.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Je.prototype,"updatedAt",void 0),Je=r([e.Index("ixuBillingCampaignType",["type"],{unique:!0}),e.Entity("billingCampaign",{schema:"nova"})],Je);let He=class{id;offerId;subscriptionId;email;imei;status;trialLengthHours;trialStartAt;trialEndAt;convertedAt;canceledAt;reminderSent;modalShown;retryAttemptCount;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],He.prototype,"id",void 0),r([e.Column("int",{name:"offerId"}),n("design:type",Number)],He.prototype,"offerId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],He.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],He.prototype,"email",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:64}),n("design:type",String)],He.prototype,"imei",void 0),r([e.Column("enum",{enum:["in_trial","canceled","converted","overdue"],name:"status",nullable:!0}),n("design:type",String)],He.prototype,"status",void 0),r([e.Column("int",{name:"trialLengthHours",nullable:!0}),n("design:type",Number)],He.prototype,"trialLengthHours",void 0),r([e.Column("datetime",{name:"trialStartAt",nullable:!0}),n("design:type",Date)],He.prototype,"trialStartAt",void 0),r([e.Column("datetime",{name:"trialEndAt",nullable:!0}),n("design:type",Date)],He.prototype,"trialEndAt",void 0),r([e.Column("datetime",{name:"convertedAt",nullable:!0}),n("design:type",Date)],He.prototype,"convertedAt",void 0),r([e.Column("datetime",{name:"canceledAt",nullable:!0}),n("design:type",Date)],He.prototype,"canceledAt",void 0),r([e.Column("tinyint",{name:"reminderSent",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],He.prototype,"reminderSent",void 0),r([e.Column("tinyint",{name:"modalShown",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],He.prototype,"modalShown",void 0),r([e.Column("int",{name:"retryAttemptCount",default:()=>"'0'"}),n("design:type",Number)],He.prototype,"retryAttemptCount",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],He.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],He.prototype,"updatedAt",void 0),He=r([e.Index("ixBillingCampaignFreeTrialImei",["imei"]),e.Index("ixBillingCampaignFreeTrialEmail",["email"]),e.Index("ixBillingCampaignFreeTrialStatusTrialEndAt",["status","trialEndAt"],{}),e.Index("ixBillingCampaignFreeTrialOfferId",["offerId"],{}),e.Index("ixBillingCampaignFreeTrialCreatedAt",["createdAt"],{}),e.Entity("billingCampaignFreeTrial",{schema:"nova"})],He);let Ke=class{clientId;firstName;lastName;email;streetAddress;city;region;country;postalCode;phone;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Ke.prototype,"clientId",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Ke.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Ke.prototype,"lastName",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Ke.prototype,"email",void 0),r([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],Ke.prototype,"streetAddress",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],Ke.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],Ke.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],Ke.prototype,"createdAt",void 0),Ke=r([e.Index("ixBillingCustomerAmazonEmail",["email"],{}),e.Index("ixBillingCustomerAmazonClientId",["clientId"],{}),e.Entity("billingCustomerAmazon",{schema:"nova"})],Ke);let $e=class{id;firstName;lastName;company;email;phone;createdAt;updatedAt;churnStatus};r([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],$e.prototype,"id",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"lastName",void 0),r([e.Column("varchar",{name:"company",nullable:!0,length:100}),n("design:type",String)],$e.prototype,"company",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],$e.prototype,"email",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:150}),n("design:type",String)],$e.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],$e.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],$e.prototype,"updatedAt",void 0),r([e.Column("varchar",{name:"churnStatus",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"churnStatus",void 0),$e=r([e.Index("ixBillingCustomerBraintreeEmail",["email"],{}),e.Entity("billingCustomerBraintree",{schema:"nova"})],$e);let Xe=class{id;name;email;phone;street;city;region;country;postalCode;createdAt;updatedAt;hasMigratedExpiredCard};r([e.PrimaryColumn("varchar",{name:"id",length:50}),n("design:type",String)],Xe.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],Xe.prototype,"name",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Xe.prototype,"email",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],Xe.prototype,"phone",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Xe.prototype,"street",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],Xe.prototype,"postalCode",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"updatedAt",void 0),r([e.Column("tinyint",{name:"hasMigratedExpiredCard",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Xe.prototype,"hasMigratedExpiredCard",void 0),Xe=r([e.Index("ixBillingCustomerStripeEmail",["email"],{}),e.Entity("billingCustomerStripe",{schema:"nova"})],Xe);let Ye=class{id;clientId;deviceId;imei;planId;subscriptionId;platform;status;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ye.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ye.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Ye.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ye.prototype,"imei",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ye.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Ye.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ye.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ye.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ye.prototype,"createdAt",void 0),Ye=r([e.Entity("billingDeviceHistory",{schema:"nova"})],Ye);let Ze=class{planId;targetCustomer;code;status;platform;billingFrequency;contractLength;description;name;price;startDate;endDate;createdAt;updatedAt};r([e.PrimaryColumn({type:"varchar",name:"planId",length:50}),n("design:type",String)],Ze.prototype,"planId",void 0),r([e.Column("varchar",{name:"targetCustomer",length:20}),n("design:type",String)],Ze.prototype,"targetCustomer",void 0),r([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],Ze.prototype,"code",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],Ze.prototype,"status",void 0),r([e.Column("varchar",{name:"platform",length:255}),n("design:type",String)],Ze.prototype,"platform",void 0),r([e.Column("smallint",{name:"billingFrequency"}),n("design:type",Number)],Ze.prototype,"billingFrequency",void 0),r([e.Column("smallint",{name:"contractLength"}),n("design:type",Number)],Ze.prototype,"contractLength",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Ze.prototype,"description",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Ze.prototype,"name",void 0),r([e.Column("varchar",{name:"price",length:50}),n("design:type",String)],Ze.prototype,"price",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0,precision:0}),n("design:type",Date)],Ze.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,precision:0}),n("design:type",Date)],Ze.prototype,"endDate",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Ze.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",precision:0}),n("design:type",Date)],Ze.prototype,"updatedAt",void 0),Ze=r([e.Index("ixBillingPlansPlanId",["planId"],{}),e.Index("ixBillingPlansStatus",["status"],{}),e.Index("ixBillingPlansTargetCustomer",["targetCustomer"],{}),e.Index("ixBillingPlansStartDate_EndDate",["startDate","endDate"],{}),e.Entity("billingPlans",{schema:"nova"})],Ze);let et=class{id;deviceTypeId;planId;deviceTypeModel;deviceType;createdAt;status;billingPlans};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],et.prototype,"id",void 0),r([e.Column("int",{name:"deviceTypeId"}),n("design:type",Number)],et.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],et.prototype,"planId",void 0),r([e.Column("varchar",{name:"deviceTypeModel",length:50}),n("design:type",String)],et.prototype,"deviceTypeModel",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],et.prototype,"deviceType",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],et.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],et.prototype,"status",void 0),r([e.ManyToOne((()=>Ze),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"planId",referencedColumnName:"planId"}),n("design:type",Object)],et.prototype,"billingPlans",void 0),et=r([e.Index("ixBillingDeviceTypePlanDeviceTypeId",["deviceTypeId"],{}),e.Index("ixBillingDeviceTypePlanStatus",["status"],{}),e.Index("ixBillingDeviceTypePlanPlanId",["planId"],{}),e.Index("ixBillingDeviceTypePlanDeviceTypeModel",["deviceTypeModel"],{}),e.Entity("billingDeviceTypePlan",{schema:"nova"})],et);const tt=[W.shopify,W.braintree,W.acumatica,W.klarna,W.amazon,W.braintree_amazon,W.demo,W.stripe,W.stripe_amazon],it=[Y.campaign_started,Y.email_bounced,Y.campaign_recovered,Y.campaign_lost,Y.campaign_won];let rt=class{subscriptionId;customerId;email;platform;eventType;churnBusterId;captureUrl;createdAt;updatedAt};r([e.PrimaryColumn("varchar",{name:"subscriptionId",length:100}),n("design:type",String)],rt.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",length:100}),n("design:type",String)],rt.prototype,"customerId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],rt.prototype,"email",void 0),r([e.Column("enum",{name:"platform",enum:tt}),n("design:type",String)],rt.prototype,"platform",void 0),r([e.Column("enum",{name:"eventType",enum:it}),n("design:type",String)],rt.prototype,"eventType",void 0),r([e.Column("varchar",{name:"churnBusterId",length:255}),n("design:type",String)],rt.prototype,"churnBusterId",void 0),r([e.Column("varchar",{name:"captureUrl",length:1e3}),n("design:type",String)],rt.prototype,"captureUrl",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],rt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0,precision:0}),n("design:type",Date)],rt.prototype,"updatedAt",void 0),rt=r([e.Index("ixBillingDunningCustomerId",["customerId"],{}),e.Index("ixBillingDunningEventType",["subscriptionId","eventType"],{}),e.Entity("billingDunning",{schema:"nova"})],rt);let nt=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],nt.prototype,"id",void 0),r([e.Column("varchar",{name:"owner",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"owner",void 0),r([e.Column("decimal",{name:"amountPaid",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"amountPaid",void 0),r([e.Column("varchar",{name:"bankOfIssuer",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"bankOfIssuer",void 0),r([e.Column("varchar",{name:"billingAddress",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"billingAddress",void 0),r([e.Column("varchar",{name:"billingAddressCity",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"billingAddressCity",void 0),r([e.Column("varchar",{name:"billingAddressCountry",nullable:!0,length:3}),n("design:type",String)],nt.prototype,"billingAddressCountry",void 0),r([e.Column("varchar",{name:"billingAddressLine1",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"billingAddressLine1",void 0),r([e.Column("varchar",{name:"billingAddressLine2",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"billingAddressLine2",void 0),r([e.Column("varchar",{name:"billingAddressState",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"billingAddressState",void 0),r([e.Column("varchar",{name:"billingAddressZip",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"billingAddressZip",void 0),r([e.Column("varchar",{name:"createdByUserId",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"createdByUserId",void 0),r([e.Column("varchar",{name:"currencyCode",nullable:!0,length:3}),n("design:type",String)],nt.prototype,"currencyCode",void 0),r([e.Column("varchar",{name:"customer",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"customer",void 0),r([e.Column("decimal",{name:"grossAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"grossAmount",void 0),r([e.Column("varchar",{name:"lastFourDigits",nullable:!0,length:4}),n("design:type",String)],nt.prototype,"lastFourDigits",void 0),r([e.Column("decimal",{name:"lineItemDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"lineItemDiscountAmount",void 0),r([e.Column("decimal",{name:"netAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"netAmount",void 0),r([e.Column("datetime",{name:"objectCreateDateTime",nullable:!0}),n("design:type",Date)],nt.prototype,"objectCreateDateTime",void 0),r([e.Column("varchar",{name:"objectId",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"objectId",void 0),r([e.Column("datetime",{name:"objectLastModifiedDateTime",nullable:!0}),n("design:type",Date)],nt.prototype,"objectLastModifiedDateTime",void 0),r([e.Column("decimal",{name:"orderDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"orderDiscountAmount",void 0),r([e.Column("varchar",{name:"orderDiscountCode",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"orderDiscountCode",void 0),r([e.Column("smallint",{name:"orderDiscountPercentage",default:0}),n("design:type",Number)],nt.prototype,"orderDiscountPercentage",void 0),r([e.Column("datetime",{name:"ownerAssignedDateTime",nullable:!0}),n("design:type",Date)],nt.prototype,"ownerAssignedDateTime",void 0),r([e.Column("datetime",{name:"paymentDateTime",nullable:!0}),n("design:type",Date)],nt.prototype,"paymentDateTime",void 0),r([e.Column("varchar",{name:"paymentId",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"paymentId",void 0),r([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:10}),n("design:type",String)],nt.prototype,"paymentMethod",void 0),r([e.Column("varchar",{name:"paymentSourceName",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"paymentSourceName",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"paymentType",void 0),r([e.Column("decimal",{name:"processingFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"processingFees",void 0),r([e.Column("decimal",{name:"refunded",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"refunded",void 0),r([e.Column("varchar",{name:"shippingAddress",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"shippingAddress",void 0),r([e.Column("varchar",{name:"shippingAddressCity",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"shippingAddressCity",void 0),r([e.Column("varchar",{name:"shippingAddressCountry",nullable:!0,length:3}),n("design:type",String)],nt.prototype,"shippingAddressCountry",void 0),r([e.Column("varchar",{name:"shippingAddressLine1",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"shippingAddressLine1",void 0),r([e.Column("varchar",{name:"shippingAddressLine2",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"shippingAddressLine2",void 0),r([e.Column("varchar",{name:"shippingAddressState",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"shippingAddressState",void 0),r([e.Column("varchar",{name:"shippingAddressZip",nullable:!0,length:50}),n("design:type",String)],nt.prototype,"shippingAddressZip",void 0),r([e.Column("varchar",{name:"source",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"source",void 0),r([e.Column("varchar",{name:"sourceId",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"sourceId",void 0),r([e.Column("varchar",{name:"sourceUrl",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"sourceUrl",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],nt.prototype,"status",void 0),r([e.Column("datetime",{name:"statusUpdatedOn",nullable:!0}),n("design:type",Date)],nt.prototype,"statusUpdatedOn",void 0),r([e.Column("decimal",{name:"totalDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"totalDiscountAmount",void 0),r([e.Column("decimal",{name:"totalFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"totalFees",void 0),r([e.Column("decimal",{name:"totalTaxes",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nt.prototype,"totalTaxes",void 0),r([e.Column("varchar",{name:"updatedByUserId",nullable:!0,length:20}),n("design:type",String)],nt.prototype,"updatedByUserId",void 0),nt=r([e.Entity("billingHubspotPaymentLog",{schema:"nova"})],nt);let at=class{clientId;firstName;lastName;billingEmail;shippingEmail;streetAddress;city;region;country;postalCode;phone;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],at.prototype,"clientId",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],at.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],at.prototype,"lastName",void 0),r([e.Column("varchar",{name:"billingEmail",nullable:!0,length:255}),n("design:type",String)],at.prototype,"billingEmail",void 0),r([e.Column("varchar",{name:"shippingEmail",nullable:!0,length:255}),n("design:type",String)],at.prototype,"shippingEmail",void 0),r([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],at.prototype,"streetAddress",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],at.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],at.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],at.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],at.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],at.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],at.prototype,"createdAt",void 0),at=r([e.Index("ixBillingKlarnaCustomerShippingEmail",["shippingEmail"],{}),e.Index("ixBillingKlarnaCustomerClientId",["clientId"],{}),e.Entity("billingKlarnaCustomer",{schema:"nova"})],at);let ot=class{imei;clientId;orderId;deviceType;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;paymentType;createdAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ot.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ot.prototype,"clientId",void 0),r([e.Column("varchar",{name:"orderId",length:255}),n("design:type",String)],ot.prototype,"orderId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Qe}),n("design:type",Date)],ot.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Qe}),n("design:type",Date)],ot.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Qe}),n("design:type",Date)],ot.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ot.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ot.prototype,"status",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],ot.prototype,"discounts",void 0),r([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],ot.prototype,"addOns",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ot.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"paymentMethodToken",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],ot.prototype,"paymentType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ot.prototype,"createdAt",void 0),ot=r([e.Index("ixBillingKlarnaOrderOrderId",["orderId"],{}),e.Index("ixBillingKlarnaOrderComposite",["orderId","status"],{}),e.Entity("billingKlarnaOrder",{schema:"nova"})],ot);let st=class{featureId;planId;feature;status};r([e.PrimaryGeneratedColumn({type:"int",name:"featureId"}),n("design:type",Number)],st.prototype,"featureId",void 0),r([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],st.prototype,"planId",void 0),r([e.Column("text",{name:"feature",nullable:!0}),n("design:type",String)],st.prototype,"feature",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],st.prototype,"status",void 0),st=r([e.Entity("billingPlanFeatures",{schema:"nova"})],st);let lt=class{id;timestamp;status;balance;price;currencyIsoCode;planId;subscriptionId};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],lt.prototype,"id",void 0),r([e.Column("varchar",{name:"timestamp",nullable:!0,length:255}),n("design:type",String)],lt.prototype,"timestamp",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],lt.prototype,"status",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],lt.prototype,"balance",void 0),r([e.Column("decimal",{name:"price",nullable:!0,precision:19,scale:4}),n("design:type",Number)],lt.prototype,"price",void 0),r([e.Column("varchar",{name:"currencyIsoCode",nullable:!0,length:3}),n("design:type",String)],lt.prototype,"currencyIsoCode",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],lt.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:25}),n("design:type",String)],lt.prototype,"subscriptionId",void 0),lt=r([e.Index("ixBillingStatusHistoryBraintreeSubscriptionIdTimestamp",["subscriptionId","timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeTimestamp",["timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingStatusHistoryBraintree",{schema:"nova"})],lt);let dt=class{imei;clientId;subscriptionId;deviceType;asin;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;scheduledSuspension;paymentSkipped;existsInBraintree;createdAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],dt.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],dt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],dt.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],dt.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],dt.prototype,"asin",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],dt.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Qe}),n("design:type",Date)],dt.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Qe}),n("design:type",Date)],dt.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Qe}),n("design:type",Date)],dt.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],dt.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],dt.prototype,"status",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],dt.prototype,"discounts",void 0),r([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],dt.prototype,"addOns",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],dt.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],dt.prototype,"paymentMethodToken",void 0),r([e.Column("datetime",{name:"scheduledSuspension",nullable:!0,transformer:new Qe}),n("design:type",Date)],dt.prototype,"scheduledSuspension",void 0),r([e.Column("tinyint",{name:"paymentSkipped",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],dt.prototype,"paymentSkipped",void 0),r([e.Column("tinyint",{name:"existsInBraintree",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],dt.prototype,"existsInBraintree",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],dt.prototype,"createdAt",void 0),dt=r([e.Index("ixBillingSubscriptionAmazonSubscriptionId",["subscriptionId"]),e.Index("ixBillingSubscriptionAmazonComposite",["subscriptionId","status"],{}),e.Entity("billingSubscriptionAmazon",{schema:"nova"})],dt);let ut=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};r([e.Column("varchar",{primary:!0,name:"subscriptionId",length:50}),n("design:type",String)],ut.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"customerId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"planId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ut.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],ut.prototype,"updatedAt",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Qe}),n("design:type",Date)],ut.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Qe}),n("design:type",Date)],ut.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new Qe}),n("design:type",Date)],ut.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ut.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ut.prototype,"status",void 0),r([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],ut.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("varchar",{name:"paymentInstrumentType",nullable:!0,length:20}),n("design:type",String)],ut.prototype,"paymentInstrumentType",void 0),r([e.Column("json",{name:"paymentInstrumentDetails",nullable:!0}),n("design:type",Object)],ut.prototype,"paymentInstrumentDetails",void 0),r([e.Column("tinyint",{name:"isPaused",nullable:!0,width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ut.prototype,"isPaused",void 0),r([e.Column("json",{name:"discountDetails",nullable:!0}),n("design:type",Object)],ut.prototype,"discountDetails",void 0),r([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],ut.prototype,"addons",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ut.prototype,"balance",void 0),r([e.Column("tinyint",{name:"currentBillingCycle",nullable:!0}),n("design:type",Number)],ut.prototype,"currentBillingCycle",void 0),r([e.Column("tinyint",{name:"daysPastDue",nullable:!0}),n("design:type",Number)],ut.prototype,"daysPastDue",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],ut.prototype,"description",void 0),r([e.Column("json",{name:"descriptor",nullable:!0}),n("design:type",Object)],ut.prototype,"descriptor",void 0),r([e.Column("tinyint",{name:"failureCount",nullable:!0}),n("design:type",Number)],ut.prototype,"failureCount",void 0),r([e.Column("date",{name:"firstBillingDate",nullable:!0,transformer:new Qe}),n("design:type",Date)],ut.prototype,"firstBillingDate",void 0),r([e.Column("varchar",{name:"merchantAccountId",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"merchantAccountId",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ut.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("tinyint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],ut.prototype,"numberOfBillingCycles",void 0),r([e.Column("date",{name:"paidThroughDate",nullable:!0,transformer:new Qe}),n("design:type",Date)],ut.prototype,"paidThroughDate",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"paymentMethodToken",void 0),r([e.Column("json",{name:"statusHistory",nullable:!0}),n("design:type",Object)],ut.prototype,"statusHistory",void 0),r([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],ut.prototype,"trialDuration",void 0),r([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:10}),n("design:type",String)],ut.prototype,"trialDurationUnit",void 0),r([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],ut.prototype,"trialPeriod",void 0),ut=r([e.Index("ixBillingSubscriptionBraintreeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionBraintreeSubscriptionId",["subscriptionId"],{}),e.Index("ixBillingSubscriptionBraintreeComposite",["subscriptionId","customerId","status"],{}),e.Entity("billingSubscriptionBraintree",{schema:"nova"})],ut);let ct=class{subscriptionId;customerId;planId;subscriptionStart;subscriptionEnd;subscriptionValue;subscriptionPeriodMonths;quantity;status;paymentType;paymentDetails;discounts;addons;balance;paymentMethod;cancelAt;canceledAt;isPaused;resumesAt;isTrial;trialEnd;createdAt;updatedAt};r([e.PrimaryColumn("varchar",{name:"subscriptionId",length:50}),n("design:type",String)],ct.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",length:50}),n("design:type",String)],ct.prototype,"customerId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"subscriptionEnd",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ct.prototype,"subscriptionValue",void 0),r([e.Column("smallint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],ct.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("smallint",{name:"quantity",nullable:!0}),n("design:type",Number)],ct.prototype,"quantity",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:20}),n("design:type",String)],ct.prototype,"status",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"paymentType",void 0),r([e.Column("json",{name:"paymentDetails",nullable:!0}),n("design:type",Object)],ct.prototype,"paymentDetails",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],ct.prototype,"discounts",void 0),r([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],ct.prototype,"addons",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ct.prototype,"balance",void 0),r([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:100}),n("design:type",String)],ct.prototype,"paymentMethod",void 0),r([e.Column("date",{name:"cancelAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"cancelAt",void 0),r([e.Column("date",{name:"canceledAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"canceledAt",void 0),r([e.Column("tinyint",{name:"isPaused",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ct.prototype,"isPaused",void 0),r([e.Column("date",{name:"resumesAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"resumesAt",void 0),r([e.Column("tinyint",{name:"isTrial",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ct.prototype,"isTrial",void 0),r([e.Column("date",{name:"trialEnd",nullable:!0,transformer:new Qe}),n("design:type",Date)],ct.prototype,"trialEnd",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ct.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0,precision:0}),n("design:type",Date)],ct.prototype,"updatedAt",void 0),ct=r([e.Index("ixBillingSubscriptionStripeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionStripeComposite",["subscriptionId","customerId","status"],{}),e.Entity("billingSubscriptionStripe",{schema:"nova"})],ct);let pt=class{blacklistTypeId;value;notes;createdAt;createdBy;modifiedAt;modifiedBy};r([e.Column("tinyint",{primary:!0,name:"blacklistTypeId"}),n("design:type",Number)],pt.prototype,"blacklistTypeId",void 0),r([e.Column("varchar",{primary:!0,name:"value",length:255}),n("design:type",String)],pt.prototype,"value",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],pt.prototype,"notes",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],pt.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",length:255}),n("design:type",String)],pt.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],pt.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:255}),n("design:type",String)],pt.prototype,"modifiedBy",void 0),pt=r([e.Entity("blacklist",{schema:"nova"})],pt);let mt=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],mt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],mt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],mt.prototype,"description",void 0),mt=r([e.Entity("blacklistType",{schema:"nova"})],mt);let yt=class{id;imeiMain;btmacMain;bleMac;connectionType;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],yt.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],yt.prototype,"imeiMain",void 0),r([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],yt.prototype,"btmacMain",void 0),r([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],yt.prototype,"bleMac",void 0),r([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],yt.prototype,"connectionType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],yt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],yt.prototype,"modifiedAt",void 0),yt=r([e.Index("ixuBLEMeshConfigurationImeiMainBLEMac",["imeiMain","bleMac"],{unique:!0}),e.Entity("bleMeshConfiguration",{schema:"nova"})],yt);let gt=class{id;name;type;buffer;createdAt;modifiedAt;createdBy;modifiedBy;clientId;location;status;radiusDisplayUnit;dataSourceTypeId;geometry;color;isUserCreated;area;centerLat;centerLon;securityGroupEntityTags};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],gt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],gt.prototype,"name",void 0),r([e.Column("char",{name:"type",nullable:!0,length:1}),n("design:type",String)],gt.prototype,"type",void 0),r([e.Column("varchar",{name:"buffer",nullable:!0,length:50}),n("design:type",String)],gt.prototype,"buffer",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],gt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],gt.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],gt.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],gt.prototype,"modifiedBy",void 0),r([e.Column("int",{name:"clientId",default:()=>"'0'"}),n("design:type",Number)],gt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:255}),n("design:type",String)],gt.prototype,"location",void 0),r([e.Column("tinyint",{name:"status",default:()=>"'1'"}),n("design:type",Number)],gt.prototype,"status",void 0),r([e.Column("char",{name:"radiusDisplayUnit",nullable:!0,length:2}),n("design:type",String)],gt.prototype,"radiusDisplayUnit",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],gt.prototype,"dataSourceTypeId",void 0),r([e.Column("text",{name:"geometry",nullable:!0}),n("design:type",String)],gt.prototype,"geometry",void 0),r([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],gt.prototype,"color",void 0),r([e.Column("tinyint",{name:"isUserCreated",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],gt.prototype,"isUserCreated",void 0),r([e.Column("float",{name:"area",nullable:!0}),n("design:type",Number)],gt.prototype,"area",void 0),r([e.Column("decimal",{name:"centerLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],gt.prototype,"centerLat",void 0),r([e.Column("decimal",{name:"centerLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],gt.prototype,"centerLon",void 0),gt=r([e.Index("ixBoundaryClientIdStatus",["clientId","status"],{}),e.Index("ixBoundaryStatus",["status"],{}),e.Entity("boundary",{schema:"nova"})],gt);let vt=class{id;deviceId;boundaryId;inDate;inLat;inLon;inAddress;outDate;outLat;outLon;outAddress;inOutDuration;createdAt;modifiedAt;imei;userId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],vt.prototype,"id",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],vt.prototype,"deviceId",void 0),r([e.Column("int",{name:"boundaryId"}),n("design:type",Number)],vt.prototype,"boundaryId",void 0),r([e.Column("datetime",{name:"inDate",precision:3,nullable:!0}),n("design:type",Date)],vt.prototype,"inDate",void 0),r([e.Column("decimal",{name:"inLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],vt.prototype,"inLat",void 0),r([e.Column("decimal",{name:"inLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],vt.prototype,"inLon",void 0),r([e.Column("varchar",{name:"inAddress",nullable:!0,length:255}),n("design:type",String)],vt.prototype,"inAddress",void 0),r([e.Column("datetime",{name:"outDate",precision:3,nullable:!0}),n("design:type",Date)],vt.prototype,"outDate",void 0),r([e.Column("decimal",{name:"outLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],vt.prototype,"outLat",void 0),r([e.Column("decimal",{name:"outLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],vt.prototype,"outLon",void 0),r([e.Column("varchar",{name:"outAddress",nullable:!0,length:255}),n("design:type",String)],vt.prototype,"outAddress",void 0),r([e.Column("int",{name:"inOutDuration",nullable:!0}),n("design:type",Number)],vt.prototype,"inOutDuration",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],vt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],vt.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],vt.prototype,"imei",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],vt.prototype,"userId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],vt.prototype,"deleted",void 0),vt=r([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"})],vt);let ht=class{id;mcc;mnc;lac;radio;lat;lon;range;createdAt;updatedAt};r([e.Column("int",{primary:!0,name:"id"}),n("design:type",Number)],ht.prototype,"id",void 0),r([e.Column("tinyint",{name:"mcc",nullable:!0}),n("design:type",Number)],ht.prototype,"mcc",void 0),r([e.Column("tinyint",{name:"mnc",nullable:!0}),n("design:type",Number)],ht.prototype,"mnc",void 0),r([e.Column("mediumint",{name:"lac",nullable:!0}),n("design:type",Number)],ht.prototype,"lac",void 0),r([e.Column("varchar",{name:"radio",nullable:!0,length:5}),n("design:type",String)],ht.prototype,"radio",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ht.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ht.prototype,"lon",void 0),r([e.Column("mediumint",{name:"range",nullable:!0}),n("design:type",Number)],ht.prototype,"range",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ht.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],ht.prototype,"updatedAt",void 0),ht=r([e.Entity("cellTower",{schema:"nova"})],ht);let It=class{clientId;appClientId;userId;appClientName;appClientSecret;scopes;createdAt;updatedAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],It.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"appClientId",length:64}),n("design:type",String)],It.prototype,"appClientId",void 0),r([e.Column("binary",{name:"userId",transformer:pe,length:16}),n("design:type",String)],It.prototype,"userId",void 0),r([e.Column("varchar",{name:"appClientName",length:64}),n("design:type",String)],It.prototype,"appClientName",void 0),r([e.Column("varchar",{name:"appClientSecret",length:64}),n("design:type",String)],It.prototype,"appClientSecret",void 0),r([e.Column("json",{name:"scopes"}),n("design:type",Array)],It.prototype,"scopes",void 0),r([e.CreateDateColumn({name:"createdAt",nullable:!0}),n("design:type",Date)],It.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"updatedAt",nullable:!0}),n("design:type",Date)],It.prototype,"updatedAt",void 0),It=r([e.Entity("clientApiToken",{schema:"nova"})],It);let ft=class{id;appClientId;clientId;sharedBy;sharedWith;sharedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ft.prototype,"id",void 0),r([e.Column("varchar",{name:"appClientId",length:64}),n("design:type",String)],ft.prototype,"appClientId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ft.prototype,"clientId",void 0),r([e.Column("varchar",{name:"sharedBy",length:100}),n("design:type",String)],ft.prototype,"sharedBy",void 0),r([e.Column("varchar",{name:"sharedWith",length:100}),n("design:type",String)],ft.prototype,"sharedWith",void 0),r([e.Column("datetime",{name:"sharedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ft.prototype,"sharedAt",void 0),ft=r([e.Index("ix_appClientId_sharedAt",["appClientId","sharedAt"]),e.Index("ix_clientId_sharedAt",["clientId","sharedAt"]),e.Entity("clientApiTokenShareHistory",{schema:"nova"})],ft);let Ct=class{clientId;appFeatureTypeId;appFeatureType;entityId;statusId};r([e.Column({type:"int",name:"clientId",primary:!0}),n("design:type",Number)],Ct.prototype,"clientId",void 0),r([e.Column({type:"int",name:"appFeatureTypeId",primary:!0}),n("design:type",Number)],Ct.prototype,"appFeatureTypeId",void 0),r([e.ManyToOne((()=>y),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ct.prototype,"appFeatureType",void 0),r([e.Column({type:"int",name:"entityId",primary:!0}),n("design:type",Number)],Ct.prototype,"entityId",void 0),r([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],Ct.prototype,"statusId",void 0),Ct=r([e.Entity("clientAppFeature",{schema:"nova"})],Ct);let bt=class{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled};r([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],bt.prototype,"clientId",void 0),r([e.Column("double",{name:"movementTripThreshold",nullable:!0}),n("design:type",Number)],bt.prototype,"movementTripThreshold",void 0),r([e.Column("double",{name:"stopTripThreshold",nullable:!0}),n("design:type",Number)],bt.prototype,"stopTripThreshold",void 0),r([e.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),n("design:type",Number)],bt.prototype,"mapUpdateMode",void 0),r([e.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),n("design:type",Number)],bt.prototype,"maxUsersAllowed",void 0),r([e.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),n("design:type",String)],bt.prototype,"ssoDomain",void 0),r([e.Column("json",{name:"ssoMetadata",nullable:!0}),n("design:type",Object)],bt.prototype,"ssoMetadata",void 0),r([e.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),n("design:type",Object)],bt.prototype,"assetProfileStatusLabels",void 0),r([e.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),n("design:type",String)],bt.prototype,"apiKeyId",void 0),r([e.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],bt.prototype,"assetProfileStatusLabelsEnabled",void 0),bt=r([e.Entity("clientConfiguration",{schema:"nova"}),e.Index("ssoDomain",["ssoDomain"],{unique:!0})],bt);let St=class{id;clientId;imei;movingPingFrequency;stoppedPingFrequency;fixedStatus;generateTrips;stopThresholdMinutes;offlineThresholdMinutes;movementThresholdSpeed;externalBatteryInformation;reportingMode;starterInterruptInstalled};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],St.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],St.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],St.prototype,"imei",void 0),r([e.Column("mediumint",{name:"movingPingFrequency",nullable:!0}),n("design:type",Number)],St.prototype,"movingPingFrequency",void 0),r([e.Column("mediumint",{name:"stoppedPingFrequency",nullable:!0}),n("design:type",Number)],St.prototype,"stoppedPingFrequency",void 0),r([e.Column("varchar",{name:"fixedStatus",nullable:!0,length:3}),n("design:type",String)],St.prototype,"fixedStatus",void 0),r([e.Column("tinyint",{name:"generateTrips",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],St.prototype,"generateTrips",void 0),r([e.Column("smallint",{name:"stopThresholdMinutes",nullable:!0}),n("design:type",Number)],St.prototype,"stopThresholdMinutes",void 0),r([e.Column("smallint",{name:"offlineThresholdMinutes",nullable:!0}),n("design:type",Number)],St.prototype,"offlineThresholdMinutes",void 0),r([e.Column("float",{name:"movementThresholdSpeed",nullable:!0}),n("design:type",Number)],St.prototype,"movementThresholdSpeed",void 0),r([e.Column("tinyint",{name:"externalBatteryInformation",nullable:!0,width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],St.prototype,"externalBatteryInformation",void 0),r([e.Column("varchar",{length:30,nullable:!0,default:""}),n("design:type",String)],St.prototype,"reportingMode",void 0),r([e.Column("tinyint",{name:"starterInterruptInstalled",width:1,default:()=>"'0'",transformer:new c,nullable:!0}),n("design:type",Boolean)],St.prototype,"starterInterruptInstalled",void 0),St=r([e.Index("ixuUserDeviceSettingClientIdImei",["clientId","imei"],{unique:!0}),e.Index("ixClientDeviceSettingImei",["imei"],{}),e.Entity("clientDeviceSetting",{schema:"nova"})],St);let At=class{id;clientId;userActivationId;tokenUrl;fleetUrl;requestParams;isEnabled;systemName;synchroParams};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],At.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],At.prototype,"clientId",void 0),r([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],At.prototype,"userActivationId",void 0),r([e.Column("varchar",{name:"tokenUrl",length:250}),n("design:type",String)],At.prototype,"tokenUrl",void 0),r([e.Column("varchar",{name:"fleetUrl",length:250}),n("design:type",String)],At.prototype,"fleetUrl",void 0),r([e.Column("json",{name:"requestParams"}),n("design:type",Object)],At.prototype,"requestParams",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],At.prototype,"isEnabled",void 0),r([e.Column("varchar",{name:"systemName",length:250,default:"aemp"}),n("design:type",String)],At.prototype,"systemName",void 0),r([e.Column("json",{name:"synchroParams",nullable:!0}),n("design:type",Object)],At.prototype,"synchroParams",void 0),At=r([e.Index("ixClientIngestorConfigurationClientId",["clientId"],{}),e.Entity("clientIngestorConfiguration",{schema:"nova"})],At);let Dt=class{id;clientId;issueTypeId;dismissed;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Dt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Dt.prototype,"clientId",void 0),r([e.Column("int",{name:"issueTypeId"}),n("design:type",Number)],Dt.prototype,"issueTypeId",void 0),r([e.Column("tinyint",{name:"dismissed",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Dt.prototype,"dismissed",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Dt.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"modifiedAt"}),n("design:type",Date)],Dt.prototype,"modifiedAt",void 0),Dt=r([e.Index("ixuClientIssuesConfigurationClientIdIssueTypeId",["clientId","issueTypeId"],{unique:!0}),e.Entity("clientIssuesConfigurations",{schema:"nova"})],Dt);let Rt=class{id;name;key;description;columnCategoryId;ordinalPosition;requiredDateFilters;status;columnCategory};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Rt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Rt.prototype,"name",void 0),r([e.Column("varchar",{name:"key",length:50}),n("design:type",String)],Rt.prototype,"key",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Rt.prototype,"description",void 0),r([e.Column("tinyint",{name:"columnCategoryId"}),n("design:type",Number)],Rt.prototype,"columnCategoryId",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Rt.prototype,"ordinalPosition",void 0),r([e.Column("tinyint",{name:"requiredDateFilters",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Rt.prototype,"requiredDateFilters",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],Rt.prototype,"status",void 0),r([e.ManyToOne((()=>wt),(e=>e.customReportColumns),{createForeignKeyConstraints:!1}),n("design:type",Object)],Rt.prototype,"columnCategory",void 0),Rt=r([e.Index("ixu_name_columnCategoryId",["name","columnCategoryId"],{unique:!0}),e.Entity("customReportColumn",{schema:"nova"})],Rt);let wt=class{id;name;description;dataSourceId;ordinalPosition;status;dataSource;customReportColumns};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],wt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],wt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],wt.prototype,"description",void 0),r([e.Column("tinyint",{name:"dataSourceId"}),n("design:type",Number)],wt.prototype,"dataSourceId",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],wt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],wt.prototype,"status",void 0),r([e.ManyToOne((()=>Tt),(e=>e.customReportColumnCategories),{createForeignKeyConstraints:!1}),n("design:type",Object)],wt.prototype,"dataSource",void 0),r([e.OneToMany((()=>Rt),(e=>e.columnCategory),{createForeignKeyConstraints:!1}),n("design:type",Array)],wt.prototype,"customReportColumns",void 0),wt=r([e.Index("ixu_name",["name"],{unique:!0}),e.Entity("customReportColumnCategory",{schema:"nova"})],wt);let Tt=class{id;name;sourceTableName;description;ordinalPosition;icon;status;customReportColumnCategories};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Tt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Tt.prototype,"name",void 0),r([e.Column("varchar",{name:"sourceTableName",length:50}),n("design:type",String)],Tt.prototype,"sourceTableName",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Tt.prototype,"description",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Tt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"icon",length:50}),n("design:type",String)],Tt.prototype,"icon",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],Tt.prototype,"status",void 0),r([e.OneToMany((()=>wt),(e=>e.dataSource),{createForeignKeyConstraints:!1}),n("design:type",Array)],Tt.prototype,"customReportColumnCategories",void 0),Tt=r([e.Index("ixu_name",["name"],{unique:!0}),e.Entity("customReportDataSource",{schema:"nova"})],Tt);let Nt=class{id;customReportId;customReport;customReportColumnId;customReportColumn};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Nt.prototype,"id",void 0),r([e.Column("int",{name:"customReportId"}),n("design:type",Number)],Nt.prototype,"customReportId",void 0),r([e.ManyToOne((()=>Bt),(e=>e.selectedColumns),{createForeignKeyConstraints:!1}),n("design:type",Object)],Nt.prototype,"customReport",void 0),r([e.Column("smallint",{name:"customReportColumnId"}),n("design:type",Number)],Nt.prototype,"customReportColumnId",void 0),r([e.ManyToOne((()=>Rt),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"customReportColumnId",referencedColumnName:"id"}),n("design:type",Object)],Nt.prototype,"customReportColumn",void 0),Nt=r([e.Index("ixu_reportId_columnId",["customReportId","customReportColumnId"],{unique:!0}),e.Entity("customReportSelectedColumn",{schema:"nova"})],Nt);let Bt=class{id;clientId;name;description;status;dataSourceId;dataSource;createdAt;modifiedAt;lastAccessedAt;createdBy;createdByUser;modifiedBy;modifiedByUser;selectedColumns};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Bt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Bt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Bt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Bt.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Bt.prototype,"status",void 0),r([e.Column("tinyint",{name:"dataSourceId"}),n("design:type",Number)],Bt.prototype,"dataSourceId",void 0),r([e.ManyToOne((()=>Tt),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"dataSourceId",referencedColumnName:"id"}),n("design:type",Object)],Bt.prototype,"dataSource",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Bt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Bt.prototype,"modifiedAt",void 0),r([e.Column("datetime",{name:"lastAccessedAt",nullable:!0}),n("design:type",Date)],Bt.prototype,"lastAccessedAt",void 0),r([e.Column("binary",{name:"createdBy",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Bt.prototype,"createdBy",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"createdBy",referencedColumnName:"id"}),n("design:type",Object)],Bt.prototype,"createdByUser",void 0),r([e.Column("binary",{name:"modifiedBy",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Bt.prototype,"modifiedBy",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"modifiedBy",referencedColumnName:"id"}),n("design:type",Object)],Bt.prototype,"modifiedByUser",void 0),r([e.OneToMany((()=>Nt),(e=>e.customReport),{createForeignKeyConstraints:!1}),n("design:type",Array)],Bt.prototype,"selectedColumns",void 0),Bt=r([e.Index("ixu_clientId",["clientId"],{}),e.Entity("customReport",{schema:"nova"})],Bt);let Ut=class{id;clientId;name;permissions;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ut.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ut.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Ut.prototype,"name",void 0),r([e.Column("json",{name:"permissions",nullable:!0}),n("design:type",Array)],Ut.prototype,"permissions",void 0),r([e.CreateDateColumn({name:"createdAt",nullable:!0}),n("design:type",Date)],Ut.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"updatedAt",nullable:!0}),n("design:type",Date)],Ut.prototype,"updatedAt",void 0),Ut=r([e.Index("ixu_clientId_name",["clientId","name"],{unique:!0}),e.Entity("customSecurityRole",{schema:"nova"})],Ut);let Et=class{id;clientId;createdAt;completedAt;dataType;status;parameters;exportLocation;downloadLink;imei;client};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Et.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Et.prototype,"clientId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Et.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],Et.prototype,"completedAt",void 0),r([e.Column("varchar",{name:"dataType",length:100,nullable:!0}),n("design:type",String)],Et.prototype,"dataType",void 0),r([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],Et.prototype,"status",void 0),r([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],Et.prototype,"parameters",void 0),r([e.Column("varchar",{name:"exportLocation",length:500,nullable:!0}),n("design:type",String)],Et.prototype,"exportLocation",void 0),r([e.Column("varchar",{name:"downloadLink",length:3e3,nullable:!0}),n("design:type",String)],Et.prototype,"downloadLink",void 0),r([e.Column("varchar",{name:"imei",length:16,nullable:!0}),n("design:type",String)],Et.prototype,"imei",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Et.prototype,"client",void 0),Et=r([e.Entity("dataExport",{schema:"nova"})],Et);let Pt=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Pt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Pt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Pt.prototype,"description",void 0),Pt=r([e.Entity("dataSourceType",{schema:"nova"})],Pt);let Ot=class{id;imei;clientId;billingSubscriptionId;planId;billingPlatform;deactivationReason;deactivationReasonId;createdBy;createdAt;scheduledDate;displayOrder};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ot.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ot.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ot.prototype,"clientId",void 0),r([e.Column("varchar",{name:"billingSubscriptionId",length:50,nullable:!0}),n("design:type",String)],Ot.prototype,"billingSubscriptionId",void 0),r([e.Column("varchar",{name:"planId",length:50,nullable:!0}),n("design:type",String)],Ot.prototype,"planId",void 0),r([e.Column("varchar",{name:"billingPlatform",length:100,nullable:!0}),n("design:type",String)],Ot.prototype,"billingPlatform",void 0),r([e.Column("varchar",{name:"deactivationReason",nullable:!0,length:2e3}),n("design:type",String)],Ot.prototype,"deactivationReason",void 0),r([e.Column("tinyint",{name:"deactivationReasonId",nullable:!0}),n("design:type",Number)],Ot.prototype,"deactivationReasonId",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],Ot.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Ot.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"scheduledDate",nullable:!0}),n("design:type",Date)],Ot.prototype,"scheduledDate",void 0),r([e.Column("tinyint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],Ot.prototype,"displayOrder",void 0),Ot=r([e.Index("ixDeactivationClientId",["clientId"],{}),e.Index("ixDeactivationBillingSubscriptionIdDeactivationReasonId",["billingSubscriptionId","deactivationReasonId"],{}),e.Index("ixDeactivationDeactivationReasonId",["deactivationReasonId"],{}),e.Index("ixDeactivationImei",["imei"],{}),e.Entity("deactivation",{schema:"nova"})],Ot);let xt=class{id;text;code;customerVisible};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],xt.prototype,"id",void 0),r([e.Column("varchar",{name:"text",length:255}),n("design:type",String)],xt.prototype,"text",void 0),r([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],xt.prototype,"code",void 0),r([e.Column("tinyint",{name:"customerVisible",width:1,default:()=>"'1'"}),n("design:type",Boolean)],xt.prototype,"customerVisible",void 0),xt=r([e.Entity("deactivationReason",{schema:"nova"})],xt);let kt=class{imei;demoAccountTemplateDeviceId;isBusy;currentSiteId;nextAvailableAt;inMesh;demoAccountTemplateDevice};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],kt.prototype,"imei",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId"}),n("design:type",Number)],kt.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("tinyint",{name:"isBusy",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],kt.prototype,"isBusy",void 0),r([e.Column("int",{name:"currentSiteId",nullable:!0}),n("design:type",Number)],kt.prototype,"currentSiteId",void 0),r([e.Column("datetime",{name:"nextAvailableAt",nullable:!0}),n("design:type",Date)],kt.prototype,"nextAvailableAt",void 0),r([e.Column("tinyint",{name:"inMesh",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],kt.prototype,"inMesh",void 0),kt=r([e.Entity("demoAccountDeviceData",{schema:"nova"})],kt);let Mt=class{id;demoAccountTemplateId;name;address;latitude;longitude;boundaryRadius};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Mt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],Mt.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Mt.prototype,"name",void 0),r([e.Column("varchar",{name:"address",length:50}),n("design:type",String)],Mt.prototype,"address",void 0),r([e.Column("decimal",{name:"latitude",precision:8,scale:6}),n("design:type",Number)],Mt.prototype,"latitude",void 0),r([e.Column("decimal",{name:"longitude",precision:9,scale:6}),n("design:type",Number)],Mt.prototype,"longitude",void 0),r([e.Column("smallint",{name:"boundaryRadius",nullable:!0}),n("design:type",Number)],Mt.prototype,"boundaryRadius",void 0),Mt=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountSiteLocation",{schema:"nova"})],Mt);let Ft=class{id;demoAccountTemplateDeviceId;assetName;assetProfileTypeId;make;model;serialNumber;year;device;assetProfileType};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ft.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId"}),n("design:type",Number)],Ft.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("varchar",{name:"assetName",length:50}),n("design:type",String)],Ft.prototype,"assetName",void 0),r([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Ft.prototype,"assetProfileTypeId",void 0),r([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Ft.prototype,"make",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Ft.prototype,"model",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Ft.prototype,"serialNumber",void 0),r([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Ft.prototype,"year",void 0),Ft=r([e.Entity("demoAccountTemplateAssetProfile",{schema:"nova"})],Ft);let Lt=class{id;demoAccountTemplateId;name;originLocationId;destinationLocationId};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Lt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],Lt.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Lt.prototype,"name",void 0),r([e.Column("smallint",{name:"originLocationId"}),n("design:type",Number)],Lt.prototype,"originLocationId",void 0),r([e.Column("smallint",{name:"destinationLocationId"}),n("design:type",Number)],Lt.prototype,"destinationLocationId",void 0),Lt=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountTemplateBleMesh",{schema:"nova"})],Lt);let Qt=class{id;demoAccountTemplateId;trackerName;trackerDescription;deviceTypeId;demoAccountTemplateBleMeshId;deviceType;demoAccountTemplate;demoAccountTemplateBleMesh;assetProfile};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Qt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],Qt.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"trackerName",length:50}),n("design:type",String)],Qt.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"trackerDescription",length:500}),n("design:type",String)],Qt.prototype,"trackerDescription",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],Qt.prototype,"deviceTypeId",void 0),r([e.Column("smallint",{name:"demoAccountTemplateBleMeshId",nullable:!0}),n("design:type",Number)],Qt.prototype,"demoAccountTemplateBleMeshId",void 0),Qt=r([e.Entity("demoAccountTemplateDevice",{schema:"nova"})],Qt);let qt=class{id;demoAccountTemplateId;startSiteLocationId;endSiteLocationId;distance;duration};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],qt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],qt.prototype,"demoAccountTemplateId",void 0),r([e.Column("smallint",{name:"startSiteLocationId"}),n("design:type",Number)],qt.prototype,"startSiteLocationId",void 0),r([e.Column("smallint",{name:"endSiteLocationId"}),n("design:type",Number)],qt.prototype,"endSiteLocationId",void 0),r([e.Column("int",{name:"distance"}),n("design:type",Number)],qt.prototype,"distance",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],qt.prototype,"duration",void 0),qt=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountTripTemplate",{schema:"nova"})],qt);let _t=class{id;demoAccountTripTemplateId;latitude;longitude;speed;elapsedTime};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],_t.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTripTemplateId"}),n("design:type",Number)],_t.prototype,"demoAccountTripTemplateId",void 0),r([e.Column("decimal",{name:"latitude",precision:8,scale:6}),n("design:type",Number)],_t.prototype,"latitude",void 0),r([e.Column("decimal",{name:"longitude",precision:9,scale:6}),n("design:type",Number)],_t.prototype,"longitude",void 0),r([e.Column("float",{name:"speed"}),n("design:type",Number)],_t.prototype,"speed",void 0),r([e.Column("int",{name:"elapsedTime"}),n("design:type",Number)],_t.prototype,"elapsedTime",void 0),_t=r([e.Index("ix_demoAccountTripTemplateId",["demoAccountTripTemplateId"],{}),e.Entity("demoAccountTripTemplatePosition",{schema:"nova"})],_t);let Wt=class{imei;associatedDeviceImei;deviceAssociationStartDate;deviceAssociationEndDate;lastProcessedAt;lastProcessedSendTime};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Wt.prototype,"imei",void 0),r([e.Column("varchar",{name:"associatedDeviceImei",length:15,nullable:!0}),n("design:type",String)],Wt.prototype,"associatedDeviceImei",void 0),r([e.Column("datetime",{name:"deviceAssociationStartDate",nullable:!0}),n("design:type",Date)],Wt.prototype,"deviceAssociationStartDate",void 0),r([e.Column("datetime",{name:"deviceAssociationEndDate",nullable:!0}),n("design:type",Date)],Wt.prototype,"deviceAssociationEndDate",void 0),r([e.Column("datetime",{name:"lastProcessedAt",nullable:!0}),n("design:type",Date)],Wt.prototype,"lastProcessedAt",void 0),r([e.Column("datetime",{name:"lastProcessedSendTime",nullable:!0}),n("design:type",Date)],Wt.prototype,"lastProcessedSendTime",void 0),Wt=r([e.Entity("demoDeviceData",{schema:"nova"})],Wt);let jt=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;transmissionType};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],jt.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],jt.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],jt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],jt.prototype,"description",void 0),r([e.Column("varchar",{name:"type",nullable:!0,length:25}),n("design:type",String)],jt.prototype,"type",void 0),r([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],jt.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],jt.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],jt.prototype,"behaviorParams",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],jt.prototype,"extraParams",void 0),r([e.Column("varchar",{name:"pendingNotes",nullable:!0,length:1e3}),n("design:type",String)],jt.prototype,"pendingNotes",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],jt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],jt.prototype,"imei",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],jt.prototype,"icon",void 0),r([e.Column("varchar",{name:"confirmationNotes",nullable:!0,length:1e3}),n("design:type",String)],jt.prototype,"confirmationNotes",void 0),r([e.Column("tinyint",{name:"ordinalPosition",default:()=>"'1'"}),n("design:type",Number)],jt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],jt.prototype,"stage",void 0),r([e.Column("json",{name:"additionalSettings",nullable:!0}),n("design:type",Object)],jt.prototype,"additionalSettings",void 0),r([e.Column("tinyint",{name:"blocking",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],jt.prototype,"blocking",void 0),r([e.Column("varchar",{name:"displayType",nullable:!0,length:25}),n("design:type",String)],jt.prototype,"displayType",void 0),r([e.Column("varchar",{name:"minWebVersion",nullable:!0,length:20}),n("design:type",String)],jt.prototype,"minWebVersion",void 0),r([e.Column("varchar",{name:"minAppVersion",nullable:!0,length:20}),n("design:type",String)],jt.prototype,"minAppVersion",void 0),r([e.Column("varchar",{name:"minProtocolVersion",nullable:!0}),n("design:type",String)],jt.prototype,"minProtocolVersion",void 0),r([e.Column("varchar",{name:"maxProtocolVersion",nullable:!0}),n("design:type",String)],jt.prototype,"maxProtocolVersion",void 0),r([e.Column("tinyint",{name:"isACKBehavior",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],jt.prototype,"isACKBehavior",void 0),r([e.Column("varchar",{name:"transmissionType",nullable:!0,length:50}),n("design:type",String)],jt.prototype,"transmissionType",void 0),jt=r([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"})],jt);let zt=class{id;clientId;deviceId;deviceBleMeshId;status;behaviorName;behaviorParams;createdAt;modifiedAt;device;deviceBleMesh};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],zt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],zt.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],zt.prototype,"deviceId",void 0),r([e.Column("int",{name:"deviceBleMeshId"}),n("design:type",Number)],zt.prototype,"deviceBleMeshId",void 0),r([e.Column("varchar",{name:"status",length:100}),n("design:type",String)],zt.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",nullable:!0,length:100}),n("design:type",String)],zt.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],zt.prototype,"behaviorParams",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],zt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],zt.prototype,"modifiedAt",void 0),r([e.OneToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],zt.prototype,"device",void 0),r([e.OneToOne((()=>We),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],zt.prototype,"deviceBleMesh",void 0),zt=r([e.Index("ixDeviceBleMeshUpdateTask_clientId_modifiedAt",["clientId","modifiedAt"],{}),e.Entity("deviceBleMeshUpdateTask",{schema:"nova"})],zt);let Vt=class{clientId;imei;configurationType;currentConfiguration;pendingConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Vt.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Vt.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"configurationType",length:20}),n("design:type",String)],Vt.prototype,"configurationType",void 0),r([e.Column("json",{name:"currentConfiguration",nullable:!0}),n("design:type",Object)],Vt.prototype,"currentConfiguration",void 0),r([e.Column("json",{name:"pendingConfiguration",nullable:!0}),n("design:type",Object)],Vt.prototype,"pendingConfiguration",void 0),r([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],Vt.prototype,"updateConfigPendingCommandId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Vt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Vt.prototype,"modifiedAt",void 0),Vt=r([e.Entity("deviceCameraConfiguration",{schema:"nova"})],Vt);let Gt=class{id;code;name;bitPosition};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Gt.prototype,"id",void 0),r([e.Column("varchar",{name:"code",length:2}),n("design:type",String)],Gt.prototype,"code",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Gt.prototype,"name",void 0),r([e.Column("smallint",{name:"bitPosition",nullable:!0}),n("design:type",Number)],Gt.prototype,"bitPosition",void 0),Gt=r([e.Index("ixCode",["code"],{unique:!0}),e.Entity("deviceCameraMediaEventType",{schema:"nova"})],Gt);let Jt=class{id;commandSequenceNumber;clientId;imei;cameraSource;createdAt;status;receivedFileName;receivedFileDate;requestedBy;requestedByUser};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Jt.prototype,"id",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],Jt.prototype,"commandSequenceNumber",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Jt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Jt.prototype,"imei",void 0),r([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],Jt.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Jt.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Jt.prototype,"status",void 0),r([e.Column("varchar",{name:"receivedFileName",nullable:!0}),n("design:type",String)],Jt.prototype,"receivedFileName",void 0),r([e.Column("datetime",{name:"receivedFileDate",nullable:!0}),n("design:type",Date)],Jt.prototype,"receivedFileDate",void 0),r([e.Column("binary",{name:"requestedBy",length:16,transformer:pe}),n("design:type",String)],Jt.prototype,"requestedBy",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],Jt.prototype,"requestedByUser",void 0),Jt=r([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Entity("deviceCameraRequestedPictureData",{schema:"nova"})],Jt);let Ht=class{id;commandSequenceNumber;clientId;imei;startTime;duration;cameraSource;createdAt;totalFilesCount;receivedFilesCount;receivedFiles;status;resultFileName;requestedBy;requestedByUser};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ht.prototype,"id",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],Ht.prototype,"commandSequenceNumber",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ht.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ht.prototype,"imei",void 0),r([e.Column("datetime",{name:"startTime"}),n("design:type",Date)],Ht.prototype,"startTime",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],Ht.prototype,"duration",void 0),r([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],Ht.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ht.prototype,"createdAt",void 0),r([e.Column("int",{name:"totalFilesCount",nullable:!0,default:0}),n("design:type",Number)],Ht.prototype,"totalFilesCount",void 0),r([e.Column("int",{name:"receivedFilesCount",nullable:!0,default:0}),n("design:type",Number)],Ht.prototype,"receivedFilesCount",void 0),r([e.Column("json",{name:"receivedFiles",nullable:!0}),n("design:type",Array)],Ht.prototype,"receivedFiles",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Ht.prototype,"status",void 0),r([e.Column("varchar",{name:"resultFileName",nullable:!0}),n("design:type",String)],Ht.prototype,"resultFileName",void 0),r([e.Column("binary",{name:"requestedBy",length:16,transformer:pe}),n("design:type",String)],Ht.prototype,"requestedBy",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],Ht.prototype,"requestedByUser",void 0),Ht=r([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Entity("deviceCameraRequestedVideoData",{schema:"nova"})],Ht);let Kt=class{clientId;imei;mediaFileName;s3FilesPath;thumbnailsFileName;lat;lon;address;messageId;eventTypeId;mediaType;cameraSource;mediaLocation;eventType;createdAt;tripId;requestedVideoDataId;requestedVideoData;requestedPictureDataId;requestedPictureData;deleted};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Kt.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Kt.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"mediaFileName",length:255}),n("design:type",String)],Kt.prototype,"mediaFileName",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],Kt.prototype,"s3FilesPath",void 0),r([e.Column("varchar",{name:"thumbnailsFileName",nullable:!0,length:255}),n("design:type",String)],Kt.prototype,"thumbnailsFileName",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Kt.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Kt.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Kt.prototype,"address",void 0),r([e.Column("binary",{name:"messageId",nullable:!0,length:16}),n("design:type",Buffer)],Kt.prototype,"messageId",void 0),r([e.Column("smallint",{name:"eventTypeId",nullable:!0}),n("design:type",Number)],Kt.prototype,"eventTypeId",void 0),r([e.Column("enum",{name:"mediaType",nullable:!0,enum:Object.values(F),comment:"The type of the media: image or video"}),n("design:type",String)],Kt.prototype,"mediaType",void 0),r([e.Column("enum",{name:"cameraSource",nullable:!0,enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],Kt.prototype,"cameraSource",void 0),r([e.Column("enum",{name:"mediaLocation",enum:Object.values(Q),default:"sdCard",comment:"The location of the media: sdCard or server"}),n("design:type",String)],Kt.prototype,"mediaLocation",void 0),r([e.OneToOne((()=>Gt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"eventTypeId",referencedColumnName:"id"}),n("design:type",Object)],Kt.prototype,"eventType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Kt.prototype,"createdAt",void 0),r([e.Column("binary",{name:"tripId",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Kt.prototype,"tripId",void 0),r([e.Column("int",{name:"requestedVideoDataId",nullable:!0}),n("design:type",Number)],Kt.prototype,"requestedVideoDataId",void 0),r([e.OneToOne((()=>Ht),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedVideoDataId",referencedColumnName:"id"}),n("design:type",Object)],Kt.prototype,"requestedVideoData",void 0),r([e.Column("int",{name:"requestedPictureDataId",nullable:!0}),n("design:type",Number)],Kt.prototype,"requestedPictureDataId",void 0),r([e.OneToOne((()=>Jt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedPictureDataId",referencedColumnName:"id"}),n("design:type",Object)],Kt.prototype,"requestedPictureData",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Kt.prototype,"deleted",void 0),Kt=r([e.Index("ixClientIdImeiCreatedAt",["clientId","imei","createdAt"],{}),e.Index("ixDeviceCameraMedia_TripId",["tripId"]),e.Entity("deviceCameraMedia",{schema:"nova"})],Kt);let $t=class{imei;cameraSource;mediaLiveInputId;mediaLiveChannelId;rtmpServerUrl;rtmpStreamKey;outputUrl;status;commandSequenceNumber;lastRequestedAt;lastRequestedBy;lastRequestedByUser;lastViewerSeenAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],$t.prototype,"imei",void 0),r([e.PrimaryColumn("enum",{name:"cameraSource",enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],$t.prototype,"cameraSource",void 0),r([e.Column("varchar",{name:"mediaLiveInputId",length:50,nullable:!0}),n("design:type",String)],$t.prototype,"mediaLiveInputId",void 0),r([e.Column("varchar",{name:"mediaLiveChannelId",length:50,nullable:!0}),n("design:type",String)],$t.prototype,"mediaLiveChannelId",void 0),r([e.Column("varchar",{name:"rtmpServerUrl",length:100,nullable:!0}),n("design:type",String)],$t.prototype,"rtmpServerUrl",void 0),r([e.Column("varchar",{name:"rtmpStreamKey",length:20,nullable:!0}),n("design:type",String)],$t.prototype,"rtmpStreamKey",void 0),r([e.Column("varchar",{name:"outputUrl",length:255,nullable:!0}),n("design:type",String)],$t.prototype,"outputUrl",void 0),r([e.Column("enum",{name:"status",enum:Object.values(_),nullable:!0}),n("design:type",String)],$t.prototype,"status",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],$t.prototype,"commandSequenceNumber",void 0),r([e.Column("datetime",{name:"lastRequestedAt",nullable:!0}),n("design:type",Date)],$t.prototype,"lastRequestedAt",void 0),r([e.Column("binary",{name:"lastRequestedBy",length:16,transformer:pe,nullable:!0}),n("design:type",String)],$t.prototype,"lastRequestedBy",void 0),r([e.OneToOne((()=>Oe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"lastRequestedBy",referencedColumnName:"id"}),n("design:type",Object)],$t.prototype,"lastRequestedByUser",void 0),r([e.Column("datetime",{name:"lastViewerSeenAt",nullable:!0}),n("design:type",Date)],$t.prototype,"lastViewerSeenAt",void 0),$t=r([e.Entity("deviceCameraMediaStreamingData",{schema:"nova"})],$t);let Xt=class{id;imei;cameraSource;startedAt;lastHeartbeatAt;closedAt;userId};r([e.PrimaryColumn("binary",{name:"id",length:16,transformer:pe}),n("design:type",String)],Xt.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Xt.prototype,"imei",void 0),r([e.Column("enum",{name:"cameraSource",enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],Xt.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"startedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Xt.prototype,"startedAt",void 0),r([e.Column("datetime",{name:"lastHeartbeatAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Xt.prototype,"lastHeartbeatAt",void 0),r([e.Column("datetime",{name:"closedAt",nullable:!0}),n("design:type",Date)],Xt.prototype,"closedAt",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Xt.prototype,"userId",void 0),Xt=r([e.Entity("deviceCameraMediaStreamingSession",{schema:"nova"})],Xt);let Yt=class{imei;startTime;endTime;status;retries;totalFrames;syncedFrames;commandSequenceNumber;updatedAt;syncedFrameIds;filesInCard;deleteCmdSequenceNumber};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Yt.prototype,"imei",void 0),r([e.PrimaryColumn("datetime",{name:"startTime"}),n("design:type",Date)],Yt.prototype,"startTime",void 0),r([e.PrimaryColumn("datetime",{name:"endTime"}),n("design:type",Date)],Yt.prototype,"endTime",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Yt.prototype,"status",void 0),r([e.Column("int",{name:"retries",default:0}),n("design:type",Number)],Yt.prototype,"retries",void 0),r([e.Column("int",{name:"totalFrames",default:0}),n("design:type",Number)],Yt.prototype,"totalFrames",void 0),r([e.Column("int",{name:"syncedFrames",default:0}),n("design:type",Number)],Yt.prototype,"syncedFrames",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],Yt.prototype,"commandSequenceNumber",void 0),r([e.Column("datetime",{name:"updatedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Yt.prototype,"updatedAt",void 0),r([e.Column("json",{name:"syncedFrameIds",nullable:!0}),n("design:type",Array)],Yt.prototype,"syncedFrameIds",void 0),r([e.Column("tinyint",{name:"filesInCard",nullable:!0,width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Yt.prototype,"filesInCard",void 0),r([e.Column("varchar",{name:"deleteCmdSequenceNumber",length:10,nullable:!0}),n("design:type",String)],Yt.prototype,"deleteCmdSequenceNumber",void 0),Yt=r([e.Index("ixDeviceCameraMediaSyncStatus_imei_status_updatedAt",["imei","status","updatedAt"],{}),e.Entity("deviceCameraMediaSyncStatus",{schema:"nova"})],Yt);let Zt=class{id;clientId;imei;assignedTo;startDate;endDate};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Zt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Zt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Zt.prototype,"imei",void 0),r([e.Column("varchar",{name:"assignedTo",length:255}),n("design:type",String)],Zt.prototype,"assignedTo",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Zt.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],Zt.prototype,"endDate",void 0),Zt=r([e.Index("ixuDeviceChangesHistoryClientIdImei",["clientId","imei"]),e.Entity("deviceChangesHistory",{schema:"nova"})],Zt);let ei=class{clientId;imei;eventBehaviorType;eventsConfiguration;pendingEventsConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt;extraParams;pendingExtraParams};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ei.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ei.prototype,"imei",void 0),r([e.PrimaryColumn("enum",{name:"eventBehaviorType",enum:Object.values(q)}),n("design:type",String)],ei.prototype,"eventBehaviorType",void 0),r([e.Column("json",{name:"eventsConfiguration",nullable:!0}),n("design:type",Array)],ei.prototype,"eventsConfiguration",void 0),r([e.Column("json",{name:"pendingEventsConfiguration",nullable:!0}),n("design:type",Array)],ei.prototype,"pendingEventsConfiguration",void 0),r([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],ei.prototype,"updateConfigPendingCommandId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ei.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ei.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],ei.prototype,"extraParams",void 0),r([e.Column("json",{name:"pendingExtraParams",nullable:!0}),n("design:type",Object)],ei.prototype,"pendingExtraParams",void 0),ei=r([e.Entity("deviceEventsTriggerConfiguration",{schema:"nova"})],ei);let ti=class{id;clientId;imei;trackerName;status;createAt};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",String)],ti.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],ti.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ti.prototype,"imei",void 0),r([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],ti.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ti.prototype,"status",void 0),r([e.Column("datetime",{name:"createAt",nullable:!0}),n("design:type",Date)],ti.prototype,"createAt",void 0),ti=r([e.Entity("deviceHistory",{schema:"nova"})],ti);let ii=class{id;url;portNumber;protocol;deviceTypeId;status};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ii.prototype,"id",void 0),r([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],ii.prototype,"url",void 0),r([e.Column("smallint",{name:"portNumber",nullable:!0}),n("design:type",Number)],ii.prototype,"portNumber",void 0),r([e.Column("varchar",{name:"protocol",nullable:!0,length:5}),n("design:type",String)],ii.prototype,"protocol",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ii.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],ii.prototype,"status",void 0),ii=r([e.Entity("deviceModelListener",{schema:"nova"})],ii);let ri=class{id;imeiMain;btmacMain;imeiSecondary;btmacSecondary;pairingMode;connectionType;mainDeviceStatus;secondaryDeviceStatus;notes;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ri.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],ri.prototype,"imeiMain",void 0),r([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],ri.prototype,"btmacMain",void 0),r([e.Column("varchar",{name:"imeiSecondary",length:15}),n("design:type",String)],ri.prototype,"imeiSecondary",void 0),r([e.Column("varchar",{name:"btmacSecondary",length:20}),n("design:type",String)],ri.prototype,"btmacSecondary",void 0),r([e.Column("varchar",{name:"pairingMode",nullable:!0,length:20}),n("design:type",String)],ri.prototype,"pairingMode",void 0),r([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],ri.prototype,"connectionType",void 0),r([e.Column("varchar",{name:"mainDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],ri.prototype,"mainDeviceStatus",void 0),r([e.Column("varchar",{name:"secondaryDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],ri.prototype,"secondaryDeviceStatus",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],ri.prototype,"notes",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ri.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ri.prototype,"modifiedAt",void 0),ri=r([e.Index("ixuDevicePairingImeiSecondary",["imeiSecondary"],{unique:!0}),e.Index("ixuDevicePairingImeiMain",["imeiMain"],{unique:!0}),e.Index("ixuDevicePairingImeiMainImeiSecondary",["imeiMain","imeiSecondary"],{unique:!0}),e.Entity("devicePairing",{schema:"nova"})],ri);let ni=class{id;imeiOld;iccidOld;imeiNew;iccidNew;userId;clientId;createAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ni.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiOld",length:15}),n("design:type",String)],ni.prototype,"imeiOld",void 0),r([e.Column("varchar",{name:"iccidOld",length:25}),n("design:type",String)],ni.prototype,"iccidOld",void 0),r([e.Column("varchar",{name:"imeiNew",length:15}),n("design:type",String)],ni.prototype,"imeiNew",void 0),r([e.Column("varchar",{name:"iccidNew",length:25}),n("design:type",String)],ni.prototype,"iccidNew",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],ni.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ni.prototype,"clientId",void 0),r([e.Column("datetime",{name:"createAt"}),n("design:type",Date)],ni.prototype,"createAt",void 0),ni=r([e.Index("ixDeviceReplacementClientId",["clientId"],{}),e.Index("ixDeviceReplacementImeiOld",["imeiOld"],{}),e.Entity("deviceReplacement",{schema:"nova"})],ni);let ai=class{imei;clientId;created;sendTime;data;client;device;clientDeviceSetting};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ai.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ai.prototype,"clientId",void 0),r([e.Column("datetime",{name:"created"}),n("design:type",Date)],ai.prototype,"created",void 0),r([e.Column("datetime",{name:"sendTime"}),n("design:type",Date)],ai.prototype,"sendTime",void 0),r([e.Column("json",{name:"data",nullable:!0}),n("design:type",Object)],ai.prototype,"data",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"clientId",referencedColumnName:"id"}),n("design:type",be)],ai.prototype,"client",void 0),ai=r([e.Index("ixDeviceStatusClientId_SendTime",["clientId","sendTime"],{}),e.Index("ixDeviceStatusSendTime",["sendTime"],{}),e.Index("ixDeviceStatusCreated",["created"],{}),e.Entity("deviceStatus",{schema:"nova"})],ai);let oi=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],oi.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],oi.prototype,"clientId",void 0),r([e.Column("varchar",{name:"title",length:50}),n("design:type",String)],oi.prototype,"title",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],oi.prototype,"description",void 0),r([e.Column("tinyint",{name:"repeats",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],oi.prototype,"repeats",void 0),r([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],oi.prototype,"dueDate",void 0),r([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"dueOdometer",void 0),r([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"dueActiveHours",void 0),r([e.Column("double",{name:"intervalDays",nullable:!0}),n("design:type",Number)],oi.prototype,"intervalDays",void 0),r([e.Column("datetime",{name:"intervalStartDate",nullable:!0}),n("design:type",Date)],oi.prototype,"intervalStartDate",void 0),r([e.Column("double",{name:"intervalOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"intervalOdometer",void 0),r([e.Column("double",{name:"intervalStartingOdometer",nullable:!0}),n("design:type",Number)],oi.prototype,"intervalStartingOdometer",void 0),r([e.Column("double",{name:"intervalActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"intervalActiveHours",void 0),r([e.Column("double",{name:"intervalStartingActiveHours",nullable:!0}),n("design:type",Number)],oi.prototype,"intervalStartingActiveHours",void 0),r([e.Column("text",{name:"notes",nullable:!0}),n("design:type",String)],oi.prototype,"notes",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],oi.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],oi.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"deletedBy",void 0),r([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],oi.prototype,"deletedAt",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],oi.prototype,"status",void 0),r([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],oi.prototype,"assignedTo",void 0),r([e.OneToMany((()=>si),(e=>e.taskSchedule)),n("design:type",Array)],oi.prototype,"deviceTasks",void 0),oi=r([e.Index("ixTaskScheduleClientId",["clientId"],{}),e.Index("ixTaskScheduleStatus",["status"],{}),e.Entity("taskSchedule",{schema:"nova"})],oi);let si=class{taskScheduleId;imei;clientId;taskSchedule};r([e.Column({type:"int",primary:!0,name:"taskScheduleId"}),n("design:type",Number)],si.prototype,"taskScheduleId",void 0),r([e.Column("varchar",{name:"imei",primary:!0,length:15}),n("design:type",String)],si.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],si.prototype,"clientId",void 0),r([e.OneToOne((()=>oi),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],si.prototype,"taskSchedule",void 0),si=r([e.Index("ixDeviceTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixDeviceTask_ClientId",["clientId"],{}),e.Index("ixDeviceTask_Imei",["imei"],{}),e.Entity("deviceTask",{schema:"nova"})],si);let li=class{deviceTypeId;featureKey;value};r([e.Column("smallint",{primary:!0,name:"deviceTypeId"}),n("design:type",Number)],li.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{primary:!0,name:"featureKey",length:50}),n("design:type",String)],li.prototype,"featureKey",void 0),r([e.Column("varchar",{name:"value",nullable:!0,length:255}),n("design:type",String)],li.prototype,"value",void 0),li=r([e.Index("ixDeviceTypeFeatureFeatureKey",["featureKey"],{}),e.Entity("deviceTypeFeature",{schema:"nova"})],li);let di=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;sourcePlatformFirmwareVersion;platformFirmwareVersion};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],di.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],di.prototype,"deviceTypeId",void 0),r([e.ManyToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],di.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"sourceFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"sourceFirmwareVersion",void 0),r([e.Column("varchar",{name:"firmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"firmwareVersion",void 0),r([e.Column("varchar",{name:"firmwareCode",nullable:!0,length:50}),n("design:type",String)],di.prototype,"firmwareCode",void 0),r([e.Column("varchar",{name:"firmwareUrl",nullable:!0,length:1e3}),n("design:type",String)],di.prototype,"firmwareUrl",void 0),r([e.Column("datetime",{name:"releaseDate",nullable:!0}),n("design:type",Date)],di.prototype,"releaseDate",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],di.prototype,"description",void 0),r([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],di.prototype,"enabled",void 0),r([e.Column("varchar",{name:"upgradeType",nullable:!0,length:25}),n("design:type",String)],di.prototype,"upgradeType",void 0),r([e.Column("varchar",{name:"postUpgradeConfig",nullable:!0,length:1e3}),n("design:type",String)],di.prototype,"postUpgradeConfig",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:25}),n("design:type",String)],di.prototype,"stage",void 0),r([e.Column({type:"mediumint",name:"parentId",nullable:!0}),n("design:type",Number)],di.prototype,"parentId",void 0),r([e.Column("smallint",{name:"maxDeployPercentage",nullable:!0}),n("design:type",Number)],di.prototype,"maxDeployPercentage",void 0),r([e.Column({type:"smallint",name:"qmsRate",nullable:!0}),n("design:type",Number)],di.prototype,"qmsRate",void 0),r([e.Column({type:"smallint",name:"pendingTimeout",nullable:!0}),n("design:type",Number)],di.prototype,"pendingTimeout",void 0),r([e.Column("tinyint",{name:"forceSMS",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],di.prototype,"forceSMS",void 0),r([e.Column("varchar",{name:"MCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"MCUFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceMCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"sourceMCUFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceBTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"sourceBTFirmwareVersion",void 0),r([e.Column("varchar",{name:"BTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"BTFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceModemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"sourceModemFirmwareVersion",void 0),r([e.Column("varchar",{name:"modemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"modemFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourcePlatformFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"sourcePlatformFirmwareVersion",void 0),r([e.Column("varchar",{name:"platformFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],di.prototype,"platformFirmwareVersion",void 0),di=r([e.Index("ixDeviceTypeFirmwareDeviceTypeId",["deviceTypeId"],{}),e.Entity("deviceTypeFirmware",{schema:"nova"})],di);let ui=class{id;name;isBusiness};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],ui.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100,nullable:!0}),n("design:type",String)],ui.prototype,"name",void 0),r([e.Column("tinyint",{name:"isBusiness",nullable:!0,width:1,default:0,transformer:new c}),n("design:type",Boolean)],ui.prototype,"isBusiness",void 0),ui=r([e.Entity("emailDomain",{schema:"nova"})],ui);let ci=class{id;tagId;clientId;entityType;entityId;metadata;createdBy;createdAt;modifiedBy;modifiedAt;userId;imei;isSecurityGroup};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ci.prototype,"id",void 0),r([e.Column("int",{name:"tagId"}),n("design:type",Number)],ci.prototype,"tagId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ci.prototype,"clientId",void 0),r([e.Column("enum",{enum:["Device","Boundary","User","UserInvitation","ClientAlertConfiguration","LiveLink"],name:"entityType"}),n("design:type",String)],ci.prototype,"entityType",void 0),r([e.Column("int",{name:"entityId"}),n("design:type",Number)],ci.prototype,"entityId",void 0),r([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",String)],ci.prototype,"metadata",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],ci.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],ci.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],ci.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ci.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],ci.prototype,"userId",void 0),r([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],ci.prototype,"imei",void 0),r([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ci.prototype,"isSecurityGroup",void 0),ci=r([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("ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId",["clientId","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"})],ci);let pi=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],pi.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],pi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],pi.prototype,"description",void 0),pi=r([e.Entity("entityType",{schema:"nova"})],pi);let mi=class{key;name;description;tags};r([e.Column("varchar",{primary:!0,name:"key",length:50}),n("design:type",String)],mi.prototype,"key",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],mi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],mi.prototype,"description",void 0),r([e.Column("varchar",{name:"tags",nullable:!0,length:500}),n("design:type",String)],mi.prototype,"tags",void 0),mi=r([e.Entity("feature",{schema:"nova"})],mi);let yi=class{id;clientId;deviceTypeId;imei};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],yi.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],yi.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],yi.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],yi.prototype,"imei",void 0),yi=r([e.Index("ixFirmwareAutoUpgradeBlacklistClientId",["clientId"],{}),e.Index("ixuFirmwareAutoUpgradeBlacklistClientIdDeviceTypeId",["clientId","deviceTypeId"],{unique:!0}),e.Entity("firmwareAutoUpgradeBlacklist",{schema:"nova"})],yi);let gi=class{id;deviceTypeFirmwareId;deviceTypeFirmware;clientId;imei;status;behaviorName;behaviorParams;createdAt;modifiedAt;preConfig;postConfig;commandsTaskId;postUpgradeCompleted;fwCompletedOn;device};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],gi.prototype,"id",void 0),r([e.Column("mediumint",{name:"deviceTypeFirmwareId"}),n("design:type",Number)],gi.prototype,"deviceTypeFirmwareId",void 0),r([e.ManyToOne((()=>di),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],gi.prototype,"deviceTypeFirmware",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],gi.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],gi.prototype,"imei",void 0),r([e.Column("varchar",{name:"status",length:40}),n("design:type",String)],gi.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",nullable:!0,length:25}),n("design:type",String)],gi.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],gi.prototype,"behaviorParams",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],gi.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],gi.prototype,"modifiedAt",void 0),r([e.Column("text",{name:"preConfig",nullable:!0}),n("design:type",String)],gi.prototype,"preConfig",void 0),r([e.Column("text",{name:"postConfig",nullable:!0}),n("design:type",String)],gi.prototype,"postConfig",void 0),r([e.Column("varchar",{name:"commandsTaskId",nullable:!0,length:50}),n("design:type",String)],gi.prototype,"commandsTaskId",void 0),r([e.Column("tinyint",{name:"postUpgradeCompleted",nullable:!0,width:1,default:0,transformer:new c}),n("design:type",Boolean)],gi.prototype,"postUpgradeCompleted",void 0),r([e.Column("datetime",{name:"fwCompletedOn",nullable:!0}),n("design:type",Date)],gi.prototype,"fwCompletedOn",void 0),gi=r([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"})],gi);let vi=class{id;planId;name;description;consumer;modelFamily;model;planCode;price;totalPrice;billingInterval;annual;prepaid;legacy;test;validFrom;validUntil;createdAt;new;enabled};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],vi.prototype,"id",void 0),r([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],vi.prototype,"planId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],vi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:256}),n("design:type",String)],vi.prototype,"description",void 0),r([e.Column("varchar",{name:"consumer",length:30}),n("design:type",String)],vi.prototype,"consumer",void 0),r([e.Column("varchar",{name:"modelFamily",length:30}),n("design:type",String)],vi.prototype,"modelFamily",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:30}),n("design:type",String)],vi.prototype,"model",void 0),r([e.Column("varchar",{name:"planCode",length:100}),n("design:type",String)],vi.prototype,"planCode",void 0),r([e.Column("decimal",{name:"price",precision:19,scale:4}),n("design:type",Number)],vi.prototype,"price",void 0),r([e.Column("decimal",{name:"totalPrice",precision:19,scale:4}),n("design:type",Number)],vi.prototype,"totalPrice",void 0),r([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],vi.prototype,"billingInterval",void 0),r([e.Column("tinyint",{name:"annual",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"annual",void 0),r([e.Column("tinyint",{name:"prepaid",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"prepaid",void 0),r([e.Column("tinyint",{name:"legacy",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"legacy",void 0),r([e.Column("tinyint",{name:"test",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"test",void 0),r([e.Column("date",{name:"validFrom",nullable:!0,transformer:new Qe}),n("design:type",Date)],vi.prototype,"validFrom",void 0),r([e.Column("date",{name:"validUntil",nullable:!0,transformer:new Qe}),n("design:type",Date)],vi.prototype,"validUntil",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],vi.prototype,"createdAt",void 0),r([e.Column("tinyint",{name:"new",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"new",void 0),r([e.Column("tinyint",{name:"enabled",width:1,transformer:new c}),n("design:type",Boolean)],vi.prototype,"enabled",void 0),vi=r([e.Index("ixuHistoricalBillingPlanPlanIdConsumerModelValidFromValidUntil",["planId","consumer","model","validFrom","validUntil"],{unique:!0}),e.Entity("historicalBillingPlan",{schema:"nova"})],vi);let hi=class{iccid;status;processing;carrierFound;modifiedAt};r([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],hi.prototype,"iccid",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:100}),n("design:type",String)],hi.prototype,"status",void 0),r([e.Column("tinyint",{name:"processing",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],hi.prototype,"processing",void 0),r([e.Column("int",{name:"carrierFound",nullable:!0}),n("design:type",Number)],hi.prototype,"carrierFound",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],hi.prototype,"modifiedAt",void 0),hi=r([e.Index("ixIccidStatusProcessing",["processing"],{}),e.Index("ixIccidStatusModifiedAt",["modifiedAt"],{}),e.Entity("iccidStatus",{schema:"nova"})],hi);let Ii=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;model;realModel;po;outOfInventory;apn;createdAt;modifiedAt;itsEsim;btmac;serviceProvider;deviceType};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ii.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ii.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],Ii.prototype,"iccid",void 0),r([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],Ii.prototype,"carrier",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],Ii.prototype,"phone",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],Ii.prototype,"deviceTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],Ii.prototype,"serviceProviderProductId",void 0),r([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ii.prototype,"isValid",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Ii.prototype,"model",void 0),r([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],Ii.prototype,"realModel",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],Ii.prototype,"po",void 0),r([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Ii.prototype,"outOfInventory",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],Ii.prototype,"apn",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ii.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ii.prototype,"modifiedAt",void 0),r([e.Column("tinyint",{name:"itsEsim",width:1,nullable:!0,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Ii.prototype,"itsEsim",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Ii.prototype,"btmac",void 0),Ii=r([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"})],Ii);let fi=class{id;iccid;imei;carrier;lastUpdatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fi.prototype,"id",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],fi.prototype,"iccid",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],fi.prototype,"imei",void 0),r([e.Column("tinyint",{name:"carrier"}),n("design:type",Number)],fi.prototype,"carrier",void 0),r([e.Column("datetime",{name:"lastUpdatedAt"}),n("design:type",Date)],fi.prototype,"lastUpdatedAt",void 0),fi=r([e.Index("ixImeiIccidHistoryIccid",["iccid"],{}),e.Index("ixImeiIccidHistoryImei",["imei"],{}),e.Entity("imeiIccidHistory",{schema:"nova"})],fi);let Ci=class{imei;iccid;btmac};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Ci.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],Ci.prototype,"iccid",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],Ci.prototype,"btmac",void 0),Ci=r([e.Entity("imeiIccidImport",{schema:"nova"})],Ci);let bi=class{id;industry;mainIndustry;group;sector;displayName};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],bi.prototype,"id",void 0),r([e.Column("varchar",{name:"industry",length:100}),n("design:type",String)],bi.prototype,"industry",void 0),r([e.Column("varchar",{name:"mainIndustry",length:100}),n("design:type",String)],bi.prototype,"mainIndustry",void 0),r([e.Column("varchar",{name:"group",length:100}),n("design:type",String)],bi.prototype,"group",void 0),r([e.Column("varchar",{name:"sector",length:100}),n("design:type",String)],bi.prototype,"sector",void 0),r([e.Column("varchar",{name:"displayName",nullable:!0,length:100}),n("design:type",String)],bi.prototype,"displayName",void 0),bi=r([e.Entity("industry",{schema:"nova"})],bi);var Si=Object.freeze({__proto__:null}),Ai=Object.freeze({__proto__:null}),Di=Object.freeze({__proto__:null}),Ri=Object.freeze({__proto__:null}),wi=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});const Pi=["filters.clientId","filters.ssoDomain"],Oi=["filters.clientId"],xi=["values.movementTripThreshold","values.stopTripThreshold","values.mapUpdateMode","values.maxUsersAllowed","values.ssoDomain","values.ssoMetadata","values.assetProfileStatusLabels","values.assetProfileStatusLabelsEnabled"],ki=["clientId"],Mi=["enterprise","maintenanceModule","billingMethod","customerSegment"],Fi=["filters.clientId"],Li=["values.enterprise","values.maintenanceModule","values.billingMethod","values.customerSegment"],Qi=["clientId","userActivationId","tokenUrl","fleetUrl","requestParams"];var qi=Object.freeze({__proto__:null,oneRequiredCreateCustomerAttributeParamsAttributes:Mi,oneRequiredGetClientConfigurationParamsAttributes:Pi,oneRequiredUpdateClientConfigurationParamsAttributes:xi,oneRequiredUpdateCustomerAttributeParamsAttributes:Li,requireCreateClientIngestorConfigurationParamsAttributes:Qi,requiredCreateCustomerAttributeParamsAttributes:ki,requiredUpdateClientConfigurationParamsAttributes:Oi,requiredUpdateCustomerAttributeParamsAttributes:Fi}),_i=Object.freeze({__proto__:null}),Wi=Object.freeze({__proto__:null}),ji=Object.freeze({__proto__:null}),zi=Object.freeze({__proto__:null}),Vi=Object.freeze({__proto__:null});const Gi=["clientId","deviceTypeId","iccid","name","color","icon","status","forward","description","dataSourceTypeId","assetCategoryId","usageRegion","btmac","assignedTo","assignmentMode","extendedAttributes"],Ji=["imei","iccid","deviceTypeId","serviceProviderProductId","carrier"],Hi=["clientId","imei","assignedTo"];var Ki=Object.freeze({__proto__:null,oneRequiredUpdateDeviceParamsValue:Gi,requiredAddDeviceChangesHistoryParams:Hi,requiredImeiIccidCarrierFields:Ji}),$i=Object.freeze({__proto__:null});const Xi=["clientId","createdBy","tagId","entityType","entityId"],Yi=["entityType","entityId","tagId","clientId","deletedBy"],Zi=["filters.clientId"],er=["clientId","entityType","deletedBy"],tr=["tagIds","entityIds"],ir=["filters.clientId","filters.entityId","filters.entityType","values.enforcedBy","values.tagIds"],rr=["filters.id"];var nr,ar,or=Object.freeze({__proto__:null,oneRequiredBulkDeleteParamsAttributes:tr,requiredBulkDeleteParamsAttributes:er,requiredCreateEntityTagParamsAttributes:Xi,requiredDeleteEntityTagParamsAttributes:Yi,requiredEnforceEntityTagsByEntityParamsAttributes:ir,requiredGetEntityTagByIdParamsAttributes:rr,requiredSearchEntityTagsParamsAttributes:Zi});!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"}(ar||(ar={}));var sr,lr=Object.freeze({__proto__:null,get FirmwareUpgradeTaskStatus(){return ar},get UpgradeType(){return nr}}),dr=Object.freeze({__proto__:null}),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"}(sr||(sr={}));var pr=Object.freeze({__proto__:null,get LogLevel(){return sr}}),mr=Object.freeze({__proto__:null}),yr=Object.freeze({__proto__:null});const gr=["values.roleId","values.devicesAccess","values.boundariesAccess","values.minAccessDate","values.tasksAccess"],vr=["userId","imei"],hr=["userId","boundaryId"],Ir=["filters.clientId","filters.imeisList"],fr=["filters.clientId","filters.boundaryIdList"];var Cr=Object.freeze({__proto__:null,oneRequiredUserRoleParamsAttributes:gr,requiredCreateUserAuthorizedBoundaryParamsAttributes:hr,requiredCreateUserAuthorizedDeviceParamsAttributes:vr,requiredGetUserIdsByClientIdAndAuthorizedBoundariesParamsAttributes:fr,requiredGetUserIdsByClientIdAndAuthorizedDevicesParamsAttributes:Ir});const br=["createdBy","clientId","name"],Sr=["createdBy","clientId","tags"],Ar=["filters.tagId","filters.clientId","values.modifiedBy"],Dr=["clientId","tagId","deletedBy"],Rr=["filters.clientId"],wr=["filters.clientId"],Tr=["filters.userId","filters.userNumberId"];var Nr=Object.freeze({__proto__:null,oneRequiredSearchTagsByUserParamsAttributes:Tr,requiredBulkCreateTagParamsAttributes:Sr,requiredCreateTagParamsAttributes:br,requiredDeleteTagParamsAttributes:Dr,requiredSearchTagsByUserParamsAttributes:wr,requiredSearchTagsParamsAttributes:Rr,requiredUpdateTagParamsAttributes:Ar});var Br=Object.freeze({__proto__:null,requiredCreateTripParamsAttributes:["tripGuid","imei","startDate","distance","startLat","startLon","startAddress","positionStart","tripCompletionStatusId","clientId","duration","tripType","startMessageId"],requiredGetTripsParamsAttributes:["filters.clientId","filters.from","filters.to"],requiredGetUserTripConfigurationParamsAttributes:["filters.imei"],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}),Or=Object.freeze({__proto__:null}),xr=Object.freeze({__proto__:null}),kr=Object.freeze({__proto__:null}),Mr=Object.freeze({__proto__:null}),Fr=Object.freeze({__proto__:null}),Lr=Object.freeze({__proto__:null}),Qr=Object.freeze({__proto__:null}),qr=Object.freeze({__proto__:null,Acumatica:Si,AlertTypes:Di,Alerts:Ai,AppFeatures:Ri,BLEMesh:Ni,BLEMeshConfiguration:Bi,Billing:wi,Blacklist:Ti,Boundaries:Ui,ClientAlertConfiguration:Ei,Clients:qi,Countries:_i,DataExports:Wi,Deactivations:ji,DeviceBehaviors:zi,DevicePairings:Vi,DeviceStatus:$i,Devices:Ki,EntitiesTags:or,Enums:re,Firmwares:lr,Issues:dr,LatestUserAppInfo:ur,LiveLinks:cr,Logger:pr,NotificationRecipients:mr,Positions:yr,QueryBuilder:e.QueryBuilder,Security:Cr,SelectQueryBuilder:e.SelectQueryBuilder,Tags:Nr,Trips:Br,UserActivations:Pr,UserAppFeedback:Or,UserAppIncidents:xr,UserConfigurations:kr,UserDataDeletionRequests:Mr,UserInvitations:Fr,UserRatingRequests:Lr,UserRegistrationAttempts:Qr,Users:Er});let _r=class{id;name;title;description;resolution;icon;createdAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],_r.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],_r.prototype,"name",void 0),r([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],_r.prototype,"title",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],_r.prototype,"description",void 0),r([e.Column("varchar",{name:"resolution",nullable:!0,length:2e3}),n("design:type",String)],_r.prototype,"resolution",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],_r.prototype,"icon",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],_r.prototype,"createdAt",void 0),_r=r([e.Entity("issueTypes",{schema:"nova"})],_r);let Wr=class{id;issueTypeId;issueType;createdAt;modifiedAt;modifiedBy;sendTime;messageId;lat;lon;address;imei;clientId;status;snoozedUntil;resolvedAt;resolvedConfirmationAt;resolvedMessageId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],Wr.prototype,"id",void 0),r([e.Column("tinyint",{name:"issueTypeId"}),n("design:type",Number)],Wr.prototype,"issueTypeId",void 0),r([e.OneToOne((()=>_r),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Wr.prototype,"issueType",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Wr.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"modifiedAt"}),n("design:type",Date)],Wr.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"modifiedBy",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Wr.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"sendTime",precision:3,nullable:!0}),n("design:type",Date)],Wr.prototype,"sendTime",void 0),r([e.Column("binary",{name:"messageId",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Wr.prototype,"messageId",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Wr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Wr.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Wr.prototype,"address",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Wr.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Wr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'active'"}),n("design:type",String)],Wr.prototype,"status",void 0),r([e.Column("datetime",{name:"snoozedUntil",precision:3,nullable:!0}),n("design:type",Date)],Wr.prototype,"snoozedUntil",void 0),r([e.Column("datetime",{name:"resolvedAt",precision:3,nullable:!0}),n("design:type",Date)],Wr.prototype,"resolvedAt",void 0),r([e.Column("datetime",{name:"resolvedConfirmationAt",precision:3,nullable:!0}),n("design:type",Date)],Wr.prototype,"resolvedConfirmationAt",void 0),r([e.Column("binary",{name:"resolvedMessageId",length:16,transformer:pe,nullable:!0}),n("design:type",String)],Wr.prototype,"resolvedMessageId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Wr.prototype,"deleted",void 0),Wr=r([e.Index("ixIssueClientId_Imei_Status_CreatedAt",["clientId","imei","status","createdAt"],{}),e.Index("ixIssueClientId_Status_IssueTypeId_CreatedAt",["clientId","status","issueTypeId","createdAt"],{}),e.Index("ixIssueStatus_SnoozedUntil_ModifiedAt",["status","snoozedUntil","modifiedAt"],{}),e.Entity("issues",{schema:"nova"})],Wr);let jr=class{imei;positionId;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],jr.prototype,"imei",void 0),r([e.Column({type:"bigint",name:"positionId"}),n("design:type",Number)],jr.prototype,"positionId",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],jr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],jr.prototype,"lon",void 0),r([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],jr.prototype,"actualDate",void 0),r([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],jr.prototype,"speed",void 0),r([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],jr.prototype,"odometer",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],jr.prototype,"createdAt",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],jr.prototype,"messageId",void 0),r([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],jr.prototype,"batteryPercentage",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],jr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],jr.prototype,"address",void 0),r([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],jr.prototype,"sendTime",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],jr.prototype,"gpsUtcTime",void 0),r([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],jr.prototype,"externalBatteryPercentage",void 0),r([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],jr.prototype,"externalPowerVoltage",void 0),r([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],jr.prototype,"azimuth",void 0),r([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],jr.prototype,"motionDetected",void 0),jr=r([e.Index("ixuLatestPositionMessageId",["messageId"],{unique:!0}),e.Index("ixLatestPositionActualDate",["actualDate"],{}),e.Index("ixLatestPositionClientId",["clientId"],{}),e.Index("ixLatestPositionId",["positionId"]),e.Entity("latestPosition",{schema:"nova"})],jr);let zr=class{id;userId;deviceOs;appVersion;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],zr.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],zr.prototype,"userId",void 0),r([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],zr.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],zr.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],zr.prototype,"createdAt",void 0),zr=r([e.Index("ixLatestUserAppInfoUserId",["userId"],{unique:!0}),e.Entity("latestUserAppInfo",{schema:"nova"})],zr);let Vr=class{id;liveLinkId;liveLink;fileName;fileExtension;s3FilesPath;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Vr.prototype,"id",void 0),r([e.Column("binary",{name:"liveLinkId",length:16,transformer:pe}),n("design:type",String)],Vr.prototype,"liveLinkId",void 0),r([e.OneToOne((()=>Gr),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"liveLinkId",referencedColumnName:"id"}),n("design:type",Object)],Vr.prototype,"liveLink",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],Vr.prototype,"fileName",void 0),r([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],Vr.prototype,"fileExtension",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],Vr.prototype,"s3FilesPath",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Vr.prototype,"createdAt",void 0),Vr=r([e.Index("ixu_liveLinkId_fileName",["liveLinkId","fileName"],{unique:!0}),e.Entity("liveLinkMedia",{schema:"nova"})],Vr);let Gr=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}};r([e.Column("binary",{primary:!0,name:"id",length:16,transformer:pe}),n("design:type",String)],Gr.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Gr.prototype,"name",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Gr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],Gr.prototype,"status",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],Gr.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],Gr.prototype,"endDate",void 0),r([e.Column("varchar",{name:"deviceAccess"}),n("design:type",String)],Gr.prototype,"deviceAccess",void 0),r([e.Column("json",{name:"devices",nullable:!0}),n("design:type",Object)],Gr.prototype,"devices",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Gr.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Gr.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Gr.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],Gr.prototype,"modifiedBy",void 0),r([e.Column("tinyint",{name:"historyAccess",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Gr.prototype,"historyAccess",void 0),r([e.Column("decimal",{name:"estimatedTheftValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Gr.prototype,"estimatedTheftValue",void 0),r([e.Column("varchar",{name:"licensePlate",nullable:!0,length:50}),n("design:type",String)],Gr.prototype,"licensePlate",void 0),r([e.Column("varchar",{name:"suspectDescription",nullable:!0,length:255}),n("design:type",String)],Gr.prototype,"suspectDescription",void 0),r([e.OneToMany((()=>Vr),(e=>e.liveLink)),n("design:type",Array)],Gr.prototype,"medias",void 0),r([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Gr.prototype,"generateDefaults",null),r([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Gr.prototype,"updateModifiedAt",null),Gr=r([e.Index("ixLiveLinkClientId",["clientId"],{}),e.Entity("liveLink",{schema:"nova"})],Gr);let Jr=class{id;clientId;userId;email;braintreeCustomerId;paymentMethodToken;subscriptionId;imei;syncType;status;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Jr.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Jr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"userId",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"userId",void 0),r([e.Column("varchar",{name:"email",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"email",void 0),r([e.Column("varchar",{name:"braintreeCustomerId",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"braintreeCustomerId",void 0),r([e.Column("varchar",{name:"paymentMethodToken",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"paymentMethodToken",void 0),r([e.Column("varchar",{name:"subscriptionId",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"imei",length:255,nullable:!0}),n("design:type",String)],Jr.prototype,"imei",void 0),r([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)],Jr.prototype,"syncType",void 0),r([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Jr.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Jr.prototype,"createdAt",void 0),Jr=r([e.Entity("m2Sync",{schema:"nova"})],Jr);let Hr=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Hr.prototype,"id",void 0),r([e.Column("varchar",{name:"customerId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"customerId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"email",void 0),r([e.Column("varchar",{name:"customerUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"customerUpdatedAt",void 0),r([e.Column("varchar",{name:"createdIn",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"createdIn",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"lastName",void 0),r([e.Column("varchar",{name:"middleName",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"middleName",void 0),r([e.Column("varchar",{name:"postcode",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"postcode",void 0),r([e.Column("varchar",{name:"prefix",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"prefix",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"region",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"street",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"city",void 0),r([e.Column("varchar",{name:"telephone",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"telephone",void 0),r([e.Column("varchar",{name:"countryId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"countryId",void 0),r([e.Column("varchar",{name:"company",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"company",void 0),r([e.Column("varchar",{name:"btAccountId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"btAccountId",void 0),r([e.Column("varchar",{name:"phoneCode",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"phoneCode",void 0),r([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"phoneCodeCountryId",void 0),r([e.Column("varchar",{name:"pinCode",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"pinCode",void 0),r([e.Column("varchar",{name:"stripeCustomerId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"stripeCustomerId",void 0),r([e.Column("varchar",{name:"activationCreated",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"activationCreated",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"imei",void 0),r([e.Column("varchar",{name:"deviceId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"deviceColor",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceColor",void 0),r([e.Column("varchar",{name:"btSubscriptionId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"btSubscriptionId",void 0),r([e.Column("varchar",{name:"servicePlanId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"servicePlanId",void 0),r([e.Column("varchar",{name:"billingInterval",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"billingInterval",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"status",void 0),r([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"orderId",void 0),r([e.Column("varchar",{name:"deviceUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceUpdatedAt",void 0),r([e.Column("varchar",{name:"deviceCreatedAt",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceCreatedAt",void 0),r([e.Column("varchar",{name:"importedDevice",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"importedDevice",void 0),r([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"trackerUse",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"trackerUse",void 0),r([e.Column("varchar",{name:"deviceStatus",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"deviceStatus",void 0),r([e.Column("varchar",{name:"planCode",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"planCode",void 0),r([e.Column("varchar",{name:"platformCode",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"platformCode",void 0),r([e.Column("varchar",{name:"platformName",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"platformName",void 0),r([e.Column("varchar",{name:"stripeCreatedAt",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"stripeCreatedAt",void 0),r([e.Column("varchar",{name:"stripeUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"stripeUpdatedAt",void 0),r([e.Column("varchar",{name:"dateCaptured",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"dateCaptured",void 0),r([e.Column("text",{name:"cancelationReason",nullable:!0}),n("design:type",String)],Hr.prototype,"cancelationReason",void 0),r([e.Column("varchar",{name:"cancelationCreated",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"cancelationCreated",void 0),r([e.Column("varchar",{name:"cancelationReactivated",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"cancelationReactivated",void 0),r([e.Column("varchar",{name:"clientId",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"clientId",void 0),r([e.Column("text",{name:"itemsForRecovery",nullable:!0}),n("design:type",String)],Hr.prototype,"itemsForRecovery",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:255}),n("design:type",String)],Hr.prototype,"platform",void 0),Hr=r([e.Index("ixMagento2GpsbtSubscriptionId",["btSubscriptionId"],{}),e.Index("ixMagento2GpsImei",["imei"],{}),e.Entity("magento2Gps",{schema:"nova"})],Hr);let Kr=class{magentoPlanCode;magentoBillingInterval;planAnnual;planId};r([e.Column("varchar",{primary:!0,name:"magentoPlanCode",length:100}),n("design:type",String)],Kr.prototype,"magentoPlanCode",void 0),r([e.Column("varchar",{primary:!0,name:"magentoBillingInterval",length:50}),n("design:type",String)],Kr.prototype,"magentoBillingInterval",void 0),r([e.Column("tinyint",{name:"planAnnual",width:1,transformer:new c}),n("design:type",Boolean)],Kr.prototype,"planAnnual",void 0),r([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],Kr.prototype,"planId",void 0),Kr=r([e.Index("ixMagento2PlanPlanId",["planId"],{}),e.Index("ixMagento2PlanComposite",["planId","magentoPlanCode","magentoBillingInterval"],{}),e.Entity("magento2Plan",{schema:"nova"})],Kr);let $r=class{id;mcc;mnc;networkName;operatorName;countryCode;countryName};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],$r.prototype,"id",void 0),r([e.Column("smallint",{name:"mcc"}),n("design:type",Number)],$r.prototype,"mcc",void 0),r([e.Column("smallint",{name:"mnc"}),n("design:type",Number)],$r.prototype,"mnc",void 0),r([e.Column("varchar",{name:"networkName",nullable:!0,length:255}),n("design:type",String)],$r.prototype,"networkName",void 0),r([e.Column("varchar",{name:"operatorName",nullable:!0,length:100}),n("design:type",String)],$r.prototype,"operatorName",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:50}),n("design:type",String)],$r.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"countryName",nullable:!0,length:100}),n("design:type",String)],$r.prototype,"countryName",void 0),$r=r([e.Entity("mobileNetwork",{schema:"nova"})],$r);let Xr=class{imei;iccid;model;labelModel;partNo;serialNo;shipNum;workOrder;cartonNo;location};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Xr.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",length:50}),n("design:type",String)],Xr.prototype,"iccid",void 0),r([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],Xr.prototype,"model",void 0),r([e.Column("varchar",{name:"labelModel",length:50}),n("design:type",String)],Xr.prototype,"labelModel",void 0),r([e.Column("varchar",{name:"partNo",length:50}),n("design:type",String)],Xr.prototype,"partNo",void 0),r([e.Column("varchar",{name:"serialNo",length:50}),n("design:type",String)],Xr.prototype,"serialNo",void 0),r([e.PrimaryColumn("varchar",{name:"shipNum",length:50}),n("design:type",String)],Xr.prototype,"shipNum",void 0),r([e.Column("varchar",{name:"workOrder",length:50}),n("design:type",String)],Xr.prototype,"workOrder",void 0),r([e.Column("varchar",{name:"cartonNo",length:50}),n("design:type",String)],Xr.prototype,"cartonNo",void 0),r([e.Column("varchar",{name:"location",length:6}),n("design:type",String)],Xr.prototype,"location",void 0),Xr=r([e.Entity("orderShipmentInternational",{schema:"nova"})],Xr);let Yr=class{id;imei;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],Yr.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Yr.prototype,"imei",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Yr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Yr.prototype,"lon",void 0),r([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],Yr.prototype,"actualDate",void 0),r([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],Yr.prototype,"speed",void 0),r([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],Yr.prototype,"odometer",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],Yr.prototype,"createdAt",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],Yr.prototype,"messageId",void 0),r([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],Yr.prototype,"batteryPercentage",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Yr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Yr.prototype,"address",void 0),r([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],Yr.prototype,"sendTime",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],Yr.prototype,"gpsUtcTime",void 0),r([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],Yr.prototype,"externalBatteryPercentage",void 0),r([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],Yr.prototype,"externalPowerVoltage",void 0),r([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],Yr.prototype,"azimuth",void 0),r([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],Yr.prototype,"motionDetected",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Yr.prototype,"deleted",void 0),Yr=r([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"})],Yr);let Zr=class{imei;promotionId;clientId;marketPlaceId;asin;promotionType;promotionDiscount;promotionDiscountBillingCycles;promotionFreeServiceMonths;appliedAt};r([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],Zr.prototype,"imei",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],Zr.prototype,"promotionId",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Zr.prototype,"clientId",void 0),r([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)],Zr.prototype,"marketPlaceId",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:25}),n("design:type",String)],Zr.prototype,"asin",void 0),r([e.Column("varchar",{name:"promotionType",length:25,comment:"The type of promotion: freeService or discount."}),n("design:type",String)],Zr.prototype,"promotionType",void 0),r([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)],Zr.prototype,"promotionDiscount",void 0),r([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)],Zr.prototype,"promotionDiscountBillingCycles",void 0),r([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)],Zr.prototype,"promotionFreeServiceMonths",void 0),r([e.Column("datetime",{name:"appliedAt",comment:"The date that the promotion was applied"}),n("design:type",Date)],Zr.prototype,"appliedAt",void 0),Zr=r([e.Entity("promotionHistory",{schema:"nova"})],Zr);let en=class{id;countryCode;countryName;regionName;regionCode;regionType;regionLat;regionLong};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],en.prototype,"id",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:255}),n("design:type",String)],en.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"countryName",nullable:!0,length:255}),n("design:type",String)],en.prototype,"countryName",void 0),r([e.Column("varchar",{name:"regionName",nullable:!0,length:255}),n("design:type",String)],en.prototype,"regionName",void 0),r([e.Column("varchar",{name:"regionCode",nullable:!0,length:255}),n("design:type",String)],en.prototype,"regionCode",void 0),r([e.Column("varchar",{name:"regionType",nullable:!0,length:255}),n("design:type",String)],en.prototype,"regionType",void 0),r([e.Column("decimal",{name:"regionLat",nullable:!0,precision:19,scale:10}),n("design:type",Number)],en.prototype,"regionLat",void 0),r([e.Column("decimal",{name:"regionLong",nullable:!0,precision:19,scale:10}),n("design:type",Number)],en.prototype,"regionLong",void 0),en=r([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"})],en);let tn=class{id;clientId;reportName;reportType;customReportId;status;emailMessage;frequency;timeOfDay;daysOfWeek;monthlyOption;dayOfMonth;recipients;format;createdAt;updatedAt;parameters};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],tn.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],tn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"reportName",length:100}),n("design:type",String)],tn.prototype,"reportName",void 0),r([e.Column("varchar",{name:"reportType",length:100}),n("design:type",String)],tn.prototype,"reportType",void 0),r([e.Column("int",{name:"customReportId",nullable:!0}),n("design:type",Number)],tn.prototype,"customReportId",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'Active'"}),n("design:type",String)],tn.prototype,"status",void 0),r([e.Column("varchar",{name:"emailMessage",length:255,nullable:!0}),n("design:type",String)],tn.prototype,"emailMessage",void 0),r([e.Column("varchar",{name:"frequency",length:10,nullable:!0}),n("design:type",String)],tn.prototype,"frequency",void 0),r([e.Column("time",{name:"timeOfDay",nullable:!0}),n("design:type",String)],tn.prototype,"timeOfDay",void 0),r([e.Column("json",{name:"daysOfWeek",nullable:!0}),n("design:type",Array)],tn.prototype,"daysOfWeek",void 0),r([e.Column("varchar",{name:"monthlyOption",length:20,nullable:!0}),n("design:type",String)],tn.prototype,"monthlyOption",void 0),r([e.Column("int",{name:"dayOfMonth",nullable:!0}),n("design:type",Number)],tn.prototype,"dayOfMonth",void 0),r([e.Column("varchar",{name:"recipients",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"recipients",void 0),r([e.Column("varchar",{name:"format",length:10,nullable:!0}),n("design:type",String)],tn.prototype,"format",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP",nullable:!0}),n("design:type",Date)],tn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],tn.prototype,"updatedAt",void 0),r([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],tn.prototype,"parameters",void 0),tn=r([e.Entity("reportScheduleConfiguration",{schema:"nova"})],tn);let rn=class{id;name;description;loginUrl;apn};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],rn.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],rn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],rn.prototype,"description",void 0),r([e.Column("varchar",{name:"loginUrl",nullable:!0,length:1e3}),n("design:type",String)],rn.prototype,"loginUrl",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],rn.prototype,"apn",void 0),rn=r([e.Entity("serviceProvider",{schema:"nova"})],rn);let nn=class{id;productId;name;serviceProviderProductTypeId;serviceProviderProductNetworkId;mbIncluded;bundleCost};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],nn.prototype,"id",void 0),r([e.Column("varchar",{name:"productId",length:100}),n("design:type",String)],nn.prototype,"productId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],nn.prototype,"name",void 0),r([e.Column("tinyint",{name:"serviceProviderProductTypeId",nullable:!0}),n("design:type",Number)],nn.prototype,"serviceProviderProductTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductNetworkId",nullable:!0}),n("design:type",Number)],nn.prototype,"serviceProviderProductNetworkId",void 0),r([e.Column("smallint",{name:"mbIncluded",nullable:!0}),n("design:type",Number)],nn.prototype,"mbIncluded",void 0),r([e.Column("decimal",{name:"bundleCost",nullable:!0,precision:19,scale:4}),n("design:type",Number)],nn.prototype,"bundleCost",void 0),nn=r([e.Index("ixServiceProviderProductServiceProviderProductNetworkId",["serviceProviderProductNetworkId"],{}),e.Index("ixServiceProviderProductServiceProviderProductTypeId",["serviceProviderProductTypeId"],{}),e.Entity("serviceProviderProduct",{schema:"nova"})],nn);let an=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],an.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],an.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],an.prototype,"description",void 0),an=r([e.Entity("serviceProviderProductNetwork",{schema:"nova"})],an);let on=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],on.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],on.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],on.prototype,"description",void 0),on=r([e.Entity("serviceProviderProductType",{schema:"nova"})],on);let sn=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;realModel;po;outOfInventory;apn;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],sn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],sn.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],sn.prototype,"iccid",void 0),r([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],sn.prototype,"carrier",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],sn.prototype,"phone",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],sn.prototype,"deviceTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],sn.prototype,"serviceProviderProductId",void 0),r([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'"}),n("design:type",Boolean)],sn.prototype,"isValid",void 0),r([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],sn.prototype,"realModel",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],sn.prototype,"po",void 0),r([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'"}),n("design:type",Boolean)],sn.prototype,"outOfInventory",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],sn.prototype,"apn",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],sn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],sn.prototype,"modifiedAt",void 0),sn=r([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"})],sn);let ln=class{priceId;internalAddonId;name;billingInterval};r([e.PrimaryColumn({type:"varchar",name:"priceId",length:100}),n("design:type",String)],ln.prototype,"priceId",void 0),r([e.Column("varchar",{name:"internalAddonId",length:100}),n("design:type",String)],ln.prototype,"internalAddonId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],ln.prototype,"name",void 0),r([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],ln.prototype,"billingInterval",void 0),ln=r([e.Entity("stripeAddonMapping",{schema:"nova"}),e.Index("ixStripeAddonMappingBillingInterval",["billingInterval"])],ln);let dn=class{priceId;internalPlanId;validFrom;validUntil;isActivePrice};r([e.PrimaryColumn({type:"varchar",name:"priceId",length:100}),n("design:type",String)],dn.prototype,"priceId",void 0),r([e.Column("varchar",{name:"internalPlanId",length:100}),n("design:type",String)],dn.prototype,"internalPlanId",void 0),r([e.Column("date",{name:"validFrom",nullable:!0,transformer:new Qe}),n("design:type",Date)],dn.prototype,"validFrom",void 0),r([e.Column("date",{name:"validUntil",nullable:!0,transformer:new Qe}),n("design:type",Date)],dn.prototype,"validUntil",void 0),r([e.Column("tinyint",{name:"isActivePrice",width:1,transformer:new c}),n("design:type",Boolean)],dn.prototype,"isActivePrice",void 0),dn=r([e.Entity("stripePriceMapping",{schema:"nova"}),e.Index("ixStripePriceMappingPriceId",["priceId"],{}),e.Index("ixStripePriceMappingInternalPlanIdValidFromValidUntil",["internalPlanId","validFrom","validUntil"]),e.Index("ixStripePriceMappingIsActivePriceInternalPlanId",["isActivePrice","internalPlanId"])],dn);let un=class{id;clientId;name;description;color;createdBy;createdAt;modifiedBy;modifiedAt;metadata;isSecurityGroup};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],un.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],un.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],un.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255,nullable:!0}),n("design:type",String)],un.prototype,"description",void 0),r([e.Column("varchar",{name:"color",length:32,nullable:!0}),n("design:type",String)],un.prototype,"color",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],un.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],un.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],un.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],un.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",Object)],un.prototype,"metadata",void 0),r([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],un.prototype,"isSecurityGroup",void 0),un=r([e.Index("ixTagClientIdName",["clientId","name"],{unique:!0}),e.Entity("tag",{schema:"nova"})],un);let cn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],cn.prototype,"id",void 0),r([e.Column({type:"int",name:"taskScheduleId"}),n("design:type",Number)],cn.prototype,"taskScheduleId",void 0),r([e.ManyToOne((()=>oi),{createForeignKeyConstraints:!1}),n("design:type",Object)],cn.prototype,"taskSchedule",void 0),r([e.OneToOne((()=>ai),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"imei",referencedColumnName:"imei"}]),n("design:type",Object)],cn.prototype,"deviceStatus",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],cn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],cn.prototype,"clientId",void 0),r([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],cn.prototype,"dueDate",void 0),r([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],cn.prototype,"dueOdometer",void 0),r([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],cn.prototype,"dueActiveHours",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],cn.prototype,"startDate",void 0),r([e.Column("double",{name:"startingOdometer",nullable:!0}),n("design:type",Number)],cn.prototype,"startingOdometer",void 0),r([e.Column("double",{name:"startingActiveHours",nullable:!0}),n("design:type",Number)],cn.prototype,"startingActiveHours",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'pending'"}),n("design:type",String)],cn.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],cn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"pastDueAt",nullable:!0}),n("design:type",Date)],cn.prototype,"pastDueAt",void 0),r([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],cn.prototype,"completedAt",void 0),r([e.Column("text",{name:"completionNotes",nullable:!0}),n("design:type",String)],cn.prototype,"completionNotes",void 0),r([e.Column("double",{name:"completionOdometer",nullable:!0}),n("design:type",Number)],cn.prototype,"completionOdometer",void 0),r([e.Column("double",{name:"completionActiveHours",nullable:!0}),n("design:type",Number)],cn.prototype,"completionActiveHours",void 0),r([e.Column("varchar",{name:"completedBy",length:50,nullable:!0}),n("design:type",String)],cn.prototype,"completedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],cn.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],cn.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"queuedAt",nullable:!0}),n("design:type",Date)],cn.prototype,"queuedAt",void 0),r([e.Column("datetime",{name:"predictedDueDate",nullable:!0}),n("design:type",Date)],cn.prototype,"predictedDueDate",void 0),r([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],cn.prototype,"deletedAt",void 0),r([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],cn.prototype,"deletedBy",void 0),r([e.Column("json",{name:"completionMetadata",nullable:!0}),n("design:type",Object)],cn.prototype,"completionMetadata",void 0),r([e.Column("tinyint",{name:"includeTimeInCompletedAt",width:1,transformer:new c,nullable:!0}),n("design:type",Boolean)],cn.prototype,"includeTimeInCompletedAt",void 0),r([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],cn.prototype,"assignedTo",void 0),r([e.Column("double",{name:"timeSpent",nullable:!0}),n("design:type",Number)],cn.prototype,"timeSpent",void 0),r([e.Column("double",{name:"cost",nullable:!0}),n("design:type",Number)],cn.prototype,"cost",void 0),cn=r([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"})],cn);let pn=class{id;imei;clientId;type;sentAt;expiresAt;source;createdAt};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id",unsigned:!0}),n("design:type",Number)],pn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],pn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],pn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"type",length:256}),n("design:type",String)],pn.prototype,"type",void 0),r([e.Column("datetime",{name:"sentAt",precision:0}),n("design:type",Date)],pn.prototype,"sentAt",void 0),r([e.Column("datetime",{name:"expiresAt",precision:0}),n("design:type",Date)],pn.prototype,"expiresAt",void 0),r([e.Column("varchar",{name:"source",length:256}),n("design:type",String)],pn.prototype,"source",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],pn.prototype,"createdAt",void 0),pn=r([e.Entity("ticketManager",{schema:"nova"}),e.Index("ixTicketManagerImeiTypeSourceExpiresAt",["imei","type","source","expiresAt"],{})],pn);let mn=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};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],mn.prototype,"id",void 0),r([e.Column("binary",{name:"tripGuid",length:16,transformer:pe}),n("design:type",String)],mn.prototype,"tripGuid",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],mn.prototype,"imei",void 0),r([e.Column("datetime",{name:"startDate",precision:3}),n("design:type",Date)],mn.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,precision:3}),n("design:type",Date)],mn.prototype,"endDate",void 0),r([e.Column("float",{name:"distance"}),n("design:type",Number)],mn.prototype,"distance",void 0),r([e.Column("decimal",{name:"startLat",precision:8,scale:6}),n("design:type",Number)],mn.prototype,"startLat",void 0),r([e.Column("decimal",{name:"startLon",precision:9,scale:6}),n("design:type",Number)],mn.prototype,"startLon",void 0),r([e.Column("decimal",{name:"endLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],mn.prototype,"endLat",void 0),r([e.Column("decimal",{name:"endLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],mn.prototype,"endLon",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],mn.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"startAddress",length:255}),n("design:type",String)],mn.prototype,"startAddress",void 0),r([e.Column("varchar",{name:"endAddress",nullable:!0,length:255}),n("design:type",String)],mn.prototype,"endAddress",void 0),r([e.Column("varchar",{name:"positionStart",length:255}),n("design:type",String)],mn.prototype,"positionStart",void 0),r([e.Column("varchar",{name:"positionEnd",nullable:!0,length:255}),n("design:type",String)],mn.prototype,"positionEnd",void 0),r([e.Column("tinyint",{name:"tripCompletionStatusId",default:()=>"'1'"}),n("design:type",Number)],mn.prototype,"tripCompletionStatusId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],mn.prototype,"clientId",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],mn.prototype,"duration",void 0),r([e.Column("tinyint",{name:"tripType"}),n("design:type",Number)],mn.prototype,"tripType",void 0),r([e.Column("binary",{name:"startMessageId",length:16,transformer:pe}),n("design:type",String)],mn.prototype,"startMessageId",void 0),r([e.Column("binary",{name:"endMessageId",length:16,nullable:!0,transformer:pe}),n("design:type",String)],mn.prototype,"endMessageId",void 0),r([e.Column("datetime",{name:"startSendTimeMessage",nullable:!0,precision:3}),n("design:type",Date)],mn.prototype,"startSendTimeMessage",void 0),r([e.Column("datetime",{name:"endSendTimeMessage",nullable:!0,precision:3}),n("design:type",Date)],mn.prototype,"endSendTimeMessage",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],mn.prototype,"deleted",void 0),r([e.Column("double",{name:"startOdometer",nullable:!0}),n("design:type",Number)],mn.prototype,"startOdometer",void 0),r([e.Column("double",{name:"endOdometer",nullable:!0}),n("design:type",Number)],mn.prototype,"endOdometer",void 0),r([e.Column("bigint",{name:"startPositionId",nullable:!0}),n("design:type",Number)],mn.prototype,"startPositionId",void 0),r([e.Column("bigint",{name:"endPositionId",nullable:!0}),n("design:type",Number)],mn.prototype,"endPositionId",void 0),mn=r([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"})],mn);let yn=class{id;name;description;statusId};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],yn.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],yn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],yn.prototype,"description",void 0),r([e.Column("tinyint",{name:"statusId",width:1,default:()=>"'1'"}),n("design:type",Boolean)],yn.prototype,"statusId",void 0),yn=r([e.Entity("tripCompletionStatus",{schema:"nova"})],yn);let gn=class{tripId;positionId};r([e.Column("bigint",{primary:!0,name:"tripId"}),n("design:type",String)],gn.prototype,"tripId",void 0),r([e.Column("bigint",{primary:!0,name:"positionId"}),n("design:type",String)],gn.prototype,"positionId",void 0),gn=r([e.Entity("tripPosition",{schema:"nova"})],gn);let vn=class{imei;clientId;tripGuid;tripStartDate};r([e.Column("varchar",{primary:!0,name:"imei",length:15}),n("design:type",String)],vn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],vn.prototype,"clientId",void 0),r([e.Column("binary",{name:"tripGuid",length:16,nullable:!0,transformer:pe}),n("design:type",String)],vn.prototype,"tripGuid",void 0),r([e.Column("datetime",{name:"tripStartDate",nullable:!0}),n("design:type",Date)],vn.prototype,"tripStartDate",void 0),vn=r([e.Entity("tripStatus",{schema:"nova"})],vn);let hn=class{id;createdAt;status;userId;legacyCreatedAt;clientId};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],hn.prototype,"id",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],hn.prototype,"createdAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],hn.prototype,"status",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],hn.prototype,"userId",void 0),r([e.Column("datetime",{name:"legacyCreatedAt",nullable:!0}),n("design:type",Date)],hn.prototype,"legacyCreatedAt",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],hn.prototype,"clientId",void 0),hn=r([e.Index("ixUserActivationUserId",["userId"],{}),e.Entity("userActivation",{schema:"nova"})],hn);let In=class{id;userActivation;userActivationId;device;deviceId;imei;model;billingInterval;deviceName;createdAt;modifiedAt;status;trackingReason;deviceColor;notificationByEmail;notificationBySms;planAnnual;dataSourceTypeId;subscriptionId;platform;eventType;planCode;servicePlan};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],In.prototype,"id",void 0),r([e.OneToOne((()=>hn),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],In.prototype,"userActivation",void 0),r([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],In.prototype,"userActivationId",void 0),r([e.OneToOne((()=>Ie),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],In.prototype,"device",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],In.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],In.prototype,"imei",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],In.prototype,"model",void 0),r([e.Column("varchar",{name:"billingInterval",nullable:!0,length:25}),n("design:type",String)],In.prototype,"billingInterval",void 0),r([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],In.prototype,"deviceName",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],In.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],In.prototype,"modifiedAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],In.prototype,"status",void 0),r([e.Column("varchar",{name:"trackingReason",nullable:!0,length:500}),n("design:type",String)],In.prototype,"trackingReason",void 0),r([e.Column("varchar",{name:"deviceColor",nullable:!0,length:25}),n("design:type",String)],In.prototype,"deviceColor",void 0),r([e.Column("tinyint",{name:"notificationByEmail",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],In.prototype,"notificationByEmail",void 0),r([e.Column("tinyint",{name:"notificationBySms",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],In.prototype,"notificationBySms",void 0),r([e.Column("tinyint",{name:"planAnnual",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],In.prototype,"planAnnual",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],In.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],In.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],In.prototype,"platform",void 0),r([e.Column("varchar",{name:"eventType",nullable:!0,length:50}),n("design:type",String)],In.prototype,"eventType",void 0),r([e.Column("varchar",{name:"planCode",nullable:!0,length:50}),n("design:type",String)],In.prototype,"planCode",void 0),r([e.Column("varchar",{name:"servicePlan",nullable:!0,length:50}),n("design:type",String)],In.prototype,"servicePlan",void 0),In=r([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"})],In);let fn=class{userId;eventId;eventName;eventValue;eventMetadata;createdAt;platform;ip;userAgent};r([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],fn.prototype,"userId",void 0),r([e.Column("binary",{primary:!0,name:"eventId",length:16}),n("design:type",Buffer)],fn.prototype,"eventId",void 0),r([e.Column("text",{name:"eventName"}),n("design:type",String)],fn.prototype,"eventName",void 0),r([e.Column("text",{name:"eventValue",nullable:!0}),n("design:type",String)],fn.prototype,"eventValue",void 0),r([e.Column("text",{name:"eventMetadata",nullable:!0}),n("design:type",String)],fn.prototype,"eventMetadata",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],fn.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],fn.prototype,"platform",void 0),r([e.Column("text",{name:"ip",nullable:!0}),n("design:type",String)],fn.prototype,"ip",void 0),r([e.Column("text",{name:"userAgent",nullable:!0}),n("design:type",String)],fn.prototype,"userAgent",void 0),fn=r([e.Entity("userActivationEvent",{schema:"nova"})],fn);let Cn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Cn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Cn.prototype,"userId",void 0),r([e.Column("text",{name:"firstName"}),n("design:type",String)],Cn.prototype,"firstName",void 0),r([e.Column("text",{name:"lastName"}),n("design:type",String)],Cn.prototype,"lastName",void 0),r([e.Column("text",{name:"email"}),n("design:type",String)],Cn.prototype,"email",void 0),r([e.Column("text",{name:"phone",nullable:!0}),n("design:type",String)],Cn.prototype,"phone",void 0),r([e.Column("text",{name:"trackingReason",nullable:!0}),n("design:type",String)],Cn.prototype,"trackingReason",void 0),r([e.Column("text",{name:"companyName",nullable:!0}),n("design:type",String)],Cn.prototype,"companyName",void 0),r([e.Column("text",{name:"role",nullable:!0}),n("design:type",String)],Cn.prototype,"role",void 0),r([e.Column("text",{name:"industry",nullable:!0}),n("design:type",String)],Cn.prototype,"industry",void 0),r([e.Column("text",{name:"devicesActivatingCategory",nullable:!0}),n("design:type",String)],Cn.prototype,"devicesActivatingCategory",void 0),r([e.Column("text",{name:"assetsCountRange",nullable:!0}),n("design:type",String)],Cn.prototype,"assetsCountRange",void 0),r([e.Column("decimal",{name:"devicesActivatingCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],Cn.prototype,"devicesActivatingCount",void 0),r([e.Column("text",{name:"plan",nullable:!0}),n("design:type",String)],Cn.prototype,"plan",void 0),r([e.Column("decimal",{name:"usersInvitedCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],Cn.prototype,"usersInvitedCount",void 0),r([e.Column("tinyint",{name:"meetingScheduled",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Cn.prototype,"meetingScheduled",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Cn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Cn.prototype,"modifiedAt",void 0),r([e.Column("text",{name:"planAnnual",nullable:!0}),n("design:type",String)],Cn.prototype,"planAnnual",void 0),r([e.Column("text",{name:"planId",nullable:!0}),n("design:type",String)],Cn.prototype,"planId",void 0),r([e.Column("text",{name:"spyEnvironment",nullable:!0}),n("design:type",String)],Cn.prototype,"spyEnvironment",void 0),r([e.Column("int",{name:"jarvisScore",nullable:!0}),n("design:type",Number)],Cn.prototype,"jarvisScore",void 0),r([e.Column("text",{name:"enrichmentCompanyDescription",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyDescription",void 0),r([e.Column("text",{name:"jarvisEnrichmentCompanyEin",nullable:!0}),n("design:type",String)],Cn.prototype,"jarvisEnrichmentCompanyEin",void 0),r([e.Column("text",{name:"enrichmentCompanyEmployees",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyEmployees",void 0),r([e.Column("text",{name:"enrichmentCompanyIndustry",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyIndustry",void 0),r([e.Column("text",{name:"enrichmentCompanyLocation",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyLocation",void 0),r([e.Column("text",{name:"enrichmentCompanyName",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyName",void 0),r([e.Column("text",{name:"enrichmentCompanyRevenue",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentCompanyRevenue",void 0),r([e.Column("text",{name:"enrichmentPrivateDomain",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentPrivateDomain",void 0),r([e.Column("text",{name:"enrichmentPublicTicker",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentPublicTicker",void 0),r([e.Column("text",{name:"enrichmentRole",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentRole",void 0),r([e.Column("text",{name:"enrichmentTags",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentTags",void 0),r([e.Column("text",{name:"jenrichmentTitle",nullable:!0}),n("design:type",String)],Cn.prototype,"jenrichmentTitle",void 0),r([e.Column("text",{name:"enrichmentVerifiedEmployment",nullable:!0}),n("design:type",String)],Cn.prototype,"enrichmentVerifiedEmployment",void 0),Cn=r([e.Index("ixuUserActivationMetricUserId",["userId"],{unique:!0}),e.Entity("userActivationMetric",{schema:"nova"})],Cn);let bn=class{id;userId;platform;appVersion;feedback;createdAt;amazonReviewDate};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],bn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],bn.prototype,"userId",void 0),r([e.Column("varchar",{name:"platform",length:25}),n("design:type",String)],bn.prototype,"platform",void 0),r([e.Column("varchar",{name:"appVersion",length:20}),n("design:type",String)],bn.prototype,"appVersion",void 0),r([e.Column("varchar",{name:"feedback",nullable:!0,length:2e3}),n("design:type",String)],bn.prototype,"feedback",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],bn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"amazonReviewDate",nullable:!0}),n("design:type",Date)],bn.prototype,"amazonReviewDate",void 0),bn=r([e.Index("ixUserAppFeedbackUserId",["userId"],{}),e.Entity("userAppFeedback",{schema:"nova"})],bn);let Sn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Sn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Sn.prototype,"userId",void 0),r([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],Sn.prototype,"userName",void 0),r([e.Column("varchar",{name:"userEmail",nullable:!0,length:255}),n("design:type",String)],Sn.prototype,"userEmail",void 0),r([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],Sn.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"deviceManufacturer",nullable:!0,length:100}),n("design:type",String)],Sn.prototype,"deviceManufacturer",void 0),r([e.Column("varchar",{name:"deviceModel",nullable:!0,length:100}),n("design:type",String)],Sn.prototype,"deviceModel",void 0),r([e.Column("varchar",{name:"stage",length:25}),n("design:type",String)],Sn.prototype,"stage",void 0),r([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],Sn.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Sn.prototype,"createdAt",void 0),r([e.Column("text",{name:"errorMessage",nullable:!0}),n("design:type",String)],Sn.prototype,"errorMessage",void 0),r([e.Column("datetime",{name:"errorFirstReceivedAt",nullable:!0}),n("design:type",Date)],Sn.prototype,"errorFirstReceivedAt",void 0),r([e.Column("datetime",{name:"errorReceivedAt",nullable:!0}),n("design:type",Date)],Sn.prototype,"errorReceivedAt",void 0),r([e.Column("tinyint",{name:"deviceJailbroken",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Sn.prototype,"deviceJailbroken",void 0),r([e.Column("varchar",{name:"deviceOsVersion",nullable:!0,length:20}),n("design:type",String)],Sn.prototype,"deviceOsVersion",void 0),r([e.Column("int",{name:"deviceFreeMemory",nullable:!0}),n("design:type",Number)],Sn.prototype,"deviceFreeMemory",void 0),r([e.Column("int",{name:"deviceTotalMemory",nullable:!0}),n("design:type",Number)],Sn.prototype,"deviceTotalMemory",void 0),r([e.Column("tinyint",{name:"deviceCharging",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Sn.prototype,"deviceCharging",void 0),r([e.Column("smallint",{name:"deviceBatteryLevel",nullable:!0}),n("design:type",Number)],Sn.prototype,"deviceBatteryLevel",void 0),r([e.Column("varchar",{name:"deviceNetworkAccess",nullable:!0,length:100}),n("design:type",String)],Sn.prototype,"deviceNetworkAccess",void 0),r([e.Column("varchar",{name:"appActiveScreen",nullable:!0,length:50}),n("design:type",String)],Sn.prototype,"appActiveScreen",void 0),r([e.Column("tinyint",{name:"appInForeground",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Sn.prototype,"appInForeground",void 0),r([e.Column("int",{name:"appDurationInForeground",nullable:!0}),n("design:type",Number)],Sn.prototype,"appDurationInForeground",void 0),r([e.Column("varchar",{name:"appBundleId",nullable:!0,length:500}),n("design:type",String)],Sn.prototype,"appBundleId",void 0),r([e.Column("varchar",{name:"incidentUrl",nullable:!0,length:1e3}),n("design:type",String)],Sn.prototype,"incidentUrl",void 0),r([e.Column("varchar",{name:"errorId",nullable:!0,length:100}),n("design:type",String)],Sn.prototype,"errorId",void 0),Sn=r([e.Index("ixUserAppIncidentCreatedAt",["createdAt"],{}),e.Index("ixUserAppIncidentErrorId",["errorId"],{}),e.Index("ixUserAppIncidentUserId",["userId"],{}),e.Index("ixuUserAppIncidentUserIdErrorId",["userId","errorId"],{unique:!0}),e.Entity("userAppIncident",{schema:"nova"})],Sn);let An=class{clientId;userId;boundaryId;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],An.prototype,"clientId",void 0),r([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],An.prototype,"userId",void 0),r([e.PrimaryColumn("int",{name:"boundaryId"}),n("design:type",Number)],An.prototype,"boundaryId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],An.prototype,"createdAt",void 0),An=r([e.Index("ixUserAuthorizedBoundaryUserIdBoundaryId",["userId","boundaryId"],{}),e.Index("ixUserAuthorizedBoundaryBoundaryIdUserId",["boundaryId","userId"],{}),e.Entity("userAuthorizedBoundary",{schema:"nova"})],An);let Dn=class{clientId;userId;boundaryId};r([e.ViewColumn({name:"clientId"}),n("design:type",Number)],Dn.prototype,"clientId",void 0),r([e.ViewColumn({name:"userId",transformer:pe}),n("design:type",String)],Dn.prototype,"userId",void 0),r([e.ViewColumn({name:"boundaryId"}),n("design:type",Number)],Dn.prototype,"boundaryId",void 0),Dn=r([e.ViewEntity({name:"user_authorized_boundary_security_view",schema:"nova",synchronize:!1,expression:"\n (\n SELECT\n b.clientId AS clientId,\n usr.userId AS userId,\n b.id AS boundaryId\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n JOIN boundary b\n ON b.clientId = usr.clientId\n WHERE usr.boundariesAccess = 'full'\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = usr.clientId\n AND ut.userId = usr.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n UNION ALL\n (\n SELECT\n b.clientId AS clientId,\n usr.userId AS userId,\n b.id AS boundaryId\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n JOIN entityTag rt\n ON rt.tagId = ut.tagId\n AND rt.entityType = 'Boundary'\n AND rt.isSecurityGroup = 1\n AND rt.clientId = ut.clientId\n JOIN boundary b\n ON b.clientId = rt.clientId\n AND b.id = rt.entityId\n JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n ON usr.clientId = rt.clientId\n AND usr.userId = ut.userId\n WHERE ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n UNION ALL\n (\n SELECT\n uab.clientId AS clientId,\n uab.userId AS userId,\n uab.boundaryId AS boundaryId\n FROM userAuthorizedBoundary uab\n WHERE NOT EXISTS (\n SELECT 1\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n WHERE usr.clientId = uab.clientId\n AND usr.userId = uab.userId\n AND usr.boundariesAccess = 'full'\n )\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = uab.clientId\n AND ut.userId = uab.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n );\n "})],Dn);let Rn=class{clientId;userId;imei;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Rn.prototype,"clientId",void 0),r([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],Rn.prototype,"userId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Rn.prototype,"imei",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Rn.prototype,"createdAt",void 0),Rn=r([e.Index("ixUserAuthorizedDeviceUserIdImei",["userId","imei"],{}),e.Index("ixUserAuthorizedDeviceImeiUserId",["imei","userId"],{}),e.Entity("userAuthorizedDevice",{schema:"nova"})],Rn);let wn=class{clientId;imei;userId};r([e.ViewColumn({name:"clientId"}),n("design:type",Number)],wn.prototype,"clientId",void 0),r([e.ViewColumn({name:"imei"}),n("design:type",String)],wn.prototype,"imei",void 0),r([e.ViewColumn({name:"userId",transformer:pe}),n("design:type",String)],wn.prototype,"userId",void 0),wn=r([e.ViewEntity({name:"user_authorized_device_security_view",schema:"nova",synchronize:!1,expression:"\n (\n SELECT\n d.clientId AS clientId,\n d.imei AS imei,\n usr.userId AS userId\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n JOIN device d\n ON d.clientId = usr.clientId\n WHERE usr.access = 'full'\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = usr.clientId\n AND ut.userId = usr.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n UNION ALL\n (\n SELECT\n d.clientId AS clientId,\n d.imei AS imei,\n usr.userId AS userId\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n JOIN entityTag rt USE INDEX (ixEntityTagImeiIsSecurityGroupTagId)\n ON rt.tagId = ut.tagId\n AND rt.entityType = 'Device'\n AND rt.isSecurityGroup = 1\n AND rt.clientId = ut.clientId\n JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n ON usr.clientId = rt.clientId\n AND usr.userId = ut.userId\n JOIN device d USE INDEX (ixDeviceClientIdImei)\n ON d.clientId = rt.clientId\n AND d.imei = rt.imei\n WHERE ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n UNION ALL \n (\n SELECT\n uad.clientId AS clientId,\n uad.imei AS imei,\n uad.userId AS userId\n FROM userAuthorizedDevice uad\n WHERE NOT EXISTS (\n SELECT 1\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n WHERE usr.clientId = uad.clientId\n AND usr.userId = uad.userId\n AND usr.access = 'full'\n )\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = uad.clientId\n AND ut.userId = uad.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n "})],wn);let Tn=class{id;imei;clientId;subscriptionId;code;createdBy;displayOrder;scheduledAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Tn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Tn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Tn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Tn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"code",length:256}),n("design:type",String)],Tn.prototype,"code",void 0),r([e.Column("varchar",{name:"createdBy",length:256}),n("design:type",String)],Tn.prototype,"createdBy",void 0),r([e.Column("smallint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],Tn.prototype,"displayOrder",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new Qe}),n("design:type",Date)],Tn.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Tn.prototype,"createdAt",void 0),Tn=r([e.Index("ix_userCancellationDueDeviceImeiScheduledAt",["imei","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceSubscriptionIdScheduledAt",["subscriptionId","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceClientIdScheduledAt",["clientId","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCodeScheduledAt",["code","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCreatedByScheduledAt",["createdBy","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCodeCreatedBy",["code","createdBy"],{}),e.Entity("userCancellationDueDevice",{schema:"nova"})],Tn);let Nn=class{id;imei;clientId;subscriptionId;type;scheduledAt;executedAt;finishedAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Nn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Nn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Nn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Nn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],Nn.prototype,"type",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new Qe}),n("design:type",Date)],Nn.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"executedAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],Nn.prototype,"executedAt",void 0),r([e.Column("datetime",{name:"finishedAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],Nn.prototype,"finishedAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Nn.prototype,"createdAt",void 0),Nn=r([e.Index("ixUserCarrierDeactivateDeviceImeiSubscriptionId",["imei","subscriptionId"],{}),e.Index("ixUserCarrierDeactivateDeviceClientIdCreatedAt",["clientId","createdAt"],{}),e.Index("ixUserCarrierDeactivateDeviceSubscriptionId",["subscriptionId"],{}),e.Index("ixUserCarrierDeactivateDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userCarrierDeactivateDevice",{schema:"nova"})],Nn);let Bn=class{id;imei;clientId;subscriptionId;type;scheduledAt;executedAt;finishedAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Bn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Bn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Bn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Bn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],Bn.prototype,"type",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new Qe}),n("design:type",Date)],Bn.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"executedAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],Bn.prototype,"executedAt",void 0),r([e.Column("datetime",{name:"finishedAt",nullable:!0,transformer:new Qe}),n("design:type",Date)],Bn.prototype,"finishedAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Bn.prototype,"createdAt",void 0),Bn=r([e.Index("ixUserCarrierDeactivateDeviceImeiSubscriptionId",["imei","subscriptionId"],{}),e.Index("ixUserCarrierReactivateDeviceClientIdCreatedAt",["clientId","createdAt"],{}),e.Index("ixUserCarrierReactivateDeviceSubscriptionId",["subscriptionId"],{}),e.Index("ixUserCarrierReactivateDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userCarrierReactivateDevice",{schema:"nova"})],Bn);let Un=class{id;userId;clientId;userSecurityRoleName;email;status;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Un.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Un.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Un.prototype,"clientId",void 0),r([e.Column("varchar",{name:"userSecurityRoleName",length:50}),n("design:type",String)],Un.prototype,"userSecurityRoleName",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],Un.prototype,"email",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],Un.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Un.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Un.prototype,"modifiedAt",void 0),Un=r([e.Index("ixUserDataDeletionRequestUserId",["userId"],{}),e.Entity("userDataDeletionRequest",{schema:"nova"})],Un);let En=class{id;deviceBehaviorId;clientId;userId;imei;behaviorName;behaviorParams;status;createdAt;modifiedAt;extraParams;commandTaskId};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],En.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceBehaviorId"}),n("design:type",Number)],En.prototype,"deviceBehaviorId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],En.prototype,"clientId",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],En.prototype,"userId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],En.prototype,"imei",void 0),r([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],En.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],En.prototype,"behaviorParams",void 0),r([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],En.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],En.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],En.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],En.prototype,"extraParams",void 0),r([e.Column("binary",{name:"commandTaskId",length:16,nullable:!0}),n("design:type",Buffer)],En.prototype,"commandTaskId",void 0),En=r([e.Index("ixUserDeviceBehaviorTaskImei",["imei"],{}),e.Index("ixUserDeviceBehaviorTaskClientId",["clientId"],{}),e.Index("ixUserDeviceBehaviorTaskDeviceBehaviorId",["deviceBehaviorId"],{}),e.Index("ixUserDeviceBehaviorTaskModifiedAt",["modifiedAt"],{}),e.Entity("userDeviceBehaviorTask",{schema:"nova"})],En);let Pn=class{id;imei;clientId;subscriptionId;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Pn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Pn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Pn.prototype,"subscriptionId",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Pn.prototype,"createdAt",void 0),Pn=r([e.Index("idx_imei",["imei"]),e.Index("idx_client_id",["clientId"]),e.Index("idx_subscription_id",["subscriptionId"]),e.Index("idx_created_at",["createdAt"]),e.Index("idx_client_imei",["clientId","imei"]),e.Entity("userFreeOfferDevice",{schema:"nova"})],Pn);const On={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>e.trim())):null},xn={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 kn=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=g.Collaborator),this.statusId||(this.statusId=f.Pending)}updateModifiedAt(){this.modifiedAt=new Date}customSecurityRoleId;customSecurityRole};r([e.Column("binary",{primary:!0,name:"id",length:16,transformer:pe}),n("design:type",String)],kn.prototype,"id",void 0),r([e.Column("int",{name:"numberId",unique:!0}),e.Generated("increment"),n("design:type",Number)],kn.prototype,"numberId",void 0),r([e.Column("int",{name:"inviterClientId"}),n("design:type",Number)],kn.prototype,"inviterClientId",void 0),r([e.Column("binary",{name:"inviterUserId",length:16,transformer:pe}),n("design:type",String)],kn.prototype,"inviterUserId",void 0),r([e.Column("varchar",{name:"inviteeEmail",length:255}),n("design:type",String)],kn.prototype,"inviteeEmail",void 0),r([e.Column("tinyint",{name:"inviteeSecurityRoleId"}),n("design:type",Number)],kn.prototype,"inviteeSecurityRoleId",void 0),r([e.Column("tinyint",{name:"statusId"}),n("design:type",Number)],kn.prototype,"statusId",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],kn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt"}),n("design:type",Date)],kn.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"inviteeUserId",length:16,transformer:pe,nullable:!0}),n("design:type",String)],kn.prototype,"inviteeUserId",void 0),r([e.Column("mediumtext",{name:"trackerImeis",nullable:!0,transformer:On}),n("design:type",Array)],kn.prototype,"trackerImeis",void 0),r([e.Column("text",{name:"trackerAccess",nullable:!0}),n("design:type",String)],kn.prototype,"trackerAccess",void 0),r([e.Column("datetime",{name:"minAccessDate",nullable:!0}),n("design:type",Date)],kn.prototype,"minAccessDate",void 0),r([e.Column("text",{name:"boundaries",nullable:!0,transformer:xn}),n("design:type",Array)],kn.prototype,"boundaries",void 0),r([e.Column("text",{name:"boundaryAccess",nullable:!0}),n("design:type",String)],kn.prototype,"boundaryAccess",void 0),r([e.Column("text",{name:"tasksAccess",nullable:!0}),n("design:type",String)],kn.prototype,"tasksAccess",void 0),r([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],kn.prototype,"generateDefaults",null),r([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],kn.prototype,"updateModifiedAt",null),r([e.Column("int",{name:"customSecurityRoleId",nullable:!0}),n("design:type",Number)],kn.prototype,"customSecurityRoleId",void 0),kn=r([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"})],kn);let Mn=class{id;userId;clientId;deviceManufacturer;deviceOs;deviceOsVersion;appVersion;requestDate;amazonRequestDate;deviceIdentifierKey};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Mn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Mn.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Mn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"deviceManufacturer",length:500}),n("design:type",String)],Mn.prototype,"deviceManufacturer",void 0),r([e.Column("varchar",{name:"deviceOs",length:50}),n("design:type",String)],Mn.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"deviceOsVersion",length:20}),n("design:type",String)],Mn.prototype,"deviceOsVersion",void 0),r([e.Column("varchar",{name:"appVersion",length:10}),n("design:type",String)],Mn.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"requestDate",nullable:!0}),n("design:type",Date)],Mn.prototype,"requestDate",void 0),r([e.Column("datetime",{name:"amazonRequestDate",nullable:!0}),n("design:type",Date)],Mn.prototype,"amazonRequestDate",void 0),r([e.Column("varchar",{name:"deviceIdentifierKey",nullable:!0,length:255}),n("design:type",String)],Mn.prototype,"deviceIdentifierKey",void 0),Mn=r([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"})],Mn);let Fn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Fn.prototype,"id",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Fn.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Fn.prototype,"lastName",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"email",void 0),r([e.Column("varchar",{name:"phoneNumber",nullable:!0,length:20}),n("design:type",String)],Fn.prototype,"phoneNumber",void 0),r([e.Column("varchar",{name:"phoneCode",nullable:!0,length:10}),n("design:type",String)],Fn.prototype,"phoneCode",void 0),r([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:10}),n("design:type",String)],Fn.prototype,"phoneCodeCountryId",void 0),r([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"companyName",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"street",void 0),r([e.Column("varchar",{name:"state",nullable:!0,length:100}),n("design:type",String)],Fn.prototype,"state",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:20}),n("design:type",String)],Fn.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:100}),n("design:type",String)],Fn.prototype,"country",void 0),r([e.Column("int",{name:"pin",nullable:!0}),n("design:type",Number)],Fn.prototype,"pin",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Fn.prototype,"imei",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"deviceName",void 0),r([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"orderId",void 0),r([e.Column("varchar",{name:"trackingReason",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"trackingReason",void 0),r([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"userName",void 0),r([e.Column("varchar",{name:"plan",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"plan",void 0),r([e.Column("varchar",{name:"billingFrequency",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"billingFrequency",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionSource",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"subscriptionSource",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Fn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Fn.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Fn.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Fn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"lastUpdatedAt",nullable:!0}),n("design:type",Date)],Fn.prototype,"lastUpdatedAt",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"city",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Fn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],Fn.prototype,"countryCode",void 0),r([e.Column("binary",{name:"tempUserId",nullable:!0,length:16}),n("design:type",Buffer)],Fn.prototype,"tempUserId",void 0),Fn=r([e.Index("ixUserRegistrationAttemptTempUserId",["tempUserId"],{}),e.Entity("userRegistrationAttempt",{schema:"nova"})],Fn);let Ln=class{connectionId;clientId;userId;host;createdAt;subscription};r([e.PrimaryColumn("varchar",{name:"connectionId",length:36}),n("design:type",String)],Ln.prototype,"connectionId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ln.prototype,"clientId",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:pe}),n("design:type",String)],Ln.prototype,"userId",void 0),r([e.Column("varchar",{name:"host",length:255}),n("design:type",String)],Ln.prototype,"host",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Ln.prototype,"createdAt",void 0),r([e.Column("json",{name:"subscription",nullable:!0}),n("design:type",Object)],Ln.prototype,"subscription",void 0),Ln=r([e.Index("ixWebsocketConnectionUserId",["userId"]),e.Index("ixWebsocketConnectionClientIdUserIdHost",["clientId","userId","host"]),e.Index("ixWebsocketConnectionCreatedAt",["createdAt"]),e.Entity("websocketConnection",{schema:"nova"})],Ln);var Qn=Object.freeze({__proto__:null,get AcumaticaAmazonProduct(){return a},get AcumaticaImeiIccidData(){return o},get AcumaticaOrderShipmentDetails(){return s},get AcumaticaShipment(){return l},get AcumaticaShipmentAmazon(){return d},get AempToken(){return u},get Alert(){return m},get AlertType(){return p},get AppFeatureType(){return y},get AsinPromotion(){return le},get AssetCategory(){return de},get AssetProfile(){return Fe},get AssetProfileCategory(){return ke},get AssetProfileCustomField(){return ue},get AssetProfileCustomStatus(){return Le},get AssetProfileMedia(){return ce},get AssetProfileNote(){return xe},get AssetProfileType(){return Me},get AvalaraExemptCert(){return qe},get AvalaraQueue(){return _e},get BLEMesh(){return je},get BLEMeshConfiguration(){return yt},get BeaconBleMesh(){return ze},get Billing(){return Ge},get BillingCampaign(){return Je},get BillingCampaignFreeTrial(){return He},get BillingCustomerAmazon(){return Ke},get BillingCustomerBraintree(){return $e},get BillingCustomerStripe(){return Xe},get BillingDeviceHistory(){return Ye},get BillingDeviceTypePlan(){return et},get BillingDunning(){return rt},get BillingHubspotPaymentLog(){return nt},get BillingKlarnaCustomer(){return at},get BillingKlarnaOrder(){return ot},get BillingPlanFeatures(){return st},get BillingPlans(){return Ze},get BillingStatusHistoryBraintree(){return lt},get BillingSubscriptionAmazon(){return dt},get BillingSubscriptionBraintree(){return ut},get BillingSubscriptionStripe(){return ct},get Blacklist(){return pt},get BlacklistType(){return mt},get Boundary(){return gt},get BoundaryEvent(){return vt},get CellTower(){return ht},get Client(){return be},get ClientAlertConfiguration(){return Re},get ClientAlertRecipient(){return De},get ClientApiToken(){return It},get ClientApiTokenShareHistory(){return ft},get ClientAppFeature(){return Ct},get ClientConfiguration(){return bt},get ClientDeviceIcon(){return ve},get ClientDeviceSetting(){return St},get ClientIngestorConfiguration(){return At},get ClientIssuesConfiguration(){return Dt},get ClientType(){return me},get Country(){return Se},get CustomReport(){return Bt},get CustomReportColumn(){return Rt},get CustomReportColumnCategory(){return wt},get CustomReportDataSource(){return Tt},get CustomReportSelectedColumn(){return Nt},get CustomSecurityRole(){return Ut},get CustomerAttribute(){return ye},get DataExport(){return Et},get DataSourceType(){return Pt},get Deactivation(){return Ot},get DeactivationReason(){return xt},get DemoAccountDeviceData(){return kt},get DemoAccountSiteLocation(){return Mt},get DemoAccountTemplate(){return ge},get DemoAccountTemplateAssetProfile(){return Ft},get DemoAccountTemplateBleMesh(){return Lt},get DemoAccountTemplateDevice(){return Qt},get DemoAccountTripTemplate(){return qt},get DemoAccountTripTemplatePosition(){return _t},get DemoDeviceData(){return Wt},get Device(){return Ie},get DeviceBehavior(){return jt},get DeviceBleMesh(){return We},get DeviceBleMeshUpdateTask(){return zt},get DeviceCameraConfiguration(){return Vt},get DeviceCameraMedia(){return Kt},get DeviceCameraMediaEventType(){return Gt},get DeviceCameraMediaStreamingData(){return $t},get DeviceCameraMediaStreamingSession(){return Xt},get DeviceCameraMediaSyncStatus(){return Yt},get DeviceCameraRequestedPictureData(){return Jt},get DeviceCameraRequestedVideoData(){return Ht},get DeviceChangesHistory(){return Zt},get DeviceCustomConfiguration(){return fe},get DeviceEventsTriggerConfiguration(){return ei},get DeviceHistory(){return ti},get DeviceModelListener(){return ii},get DevicePairing(){return ri},get DevicePromotion(){return ne},get DeviceReplacement(){return ni},get DeviceStatus(){return ai},get DeviceTask(){return si},get DeviceType(){return he},get DeviceTypeFeature(){return li},get DeviceTypeFirmware(){return di},get DeviceTypePromotion(){return ae},get EmailDomain(){return ui},get EntityTag(){return ci},get EntityType(){return pi},get Feature(){return mi},get FirmwareAutoUpgradeBlacklist(){return yi},get FirmwareUpgradeTask(){return gi},get HistoricalBillingPlan(){return vi},get IccidStatus(){return hi},get ImeiIccidCarrier(){return Ii},get ImeiIccidHistory(){return fi},get ImeiIccidImport(){return Ci},get Industry(){return bi},get Issue(){return Wr},get IssueType(){return _r},get LatestPosition(){return jr},get LatestUserAppInfo(){return zr},get LiveLink(){return Gr},get LiveLinkMedia(){return Vr},get M2Sync(){return Jr},get Magento2Gps(){return Hr},get Magento2Plan(){return Kr},get MarketplacePromotion(){return oe},get MobileNetwork(){return $r},get NotificationRecipient(){return we},get OrderShipmentInternational(){return Xr},get Organization(){return Ce},get Plan(){return Ve},get Position(){return Yr},get Promotion(){return se},get PromotionHistory(){return Zr},get Region(){return en},get ReportScheduleConfiguration(){return tn},get SecurityRole(){return Ue},get ServiceProvider(){return rn},get ServiceProviderProduct(){return nn},get ServiceProviderProductNetwork(){return an},get ServiceProviderProductType(){return on},get Sim(){return sn},get StripeAddonMapping(){return ln},get StripePriceMapping(){return dn},get Tag(){return un},get Task(){return cn},get TaskSchedule(){return oi},get TicketManager(){return pn},get Trip(){return mn},get TripCompletionStatus(){return yn},get TripPosition(){return gn},get TripStatus(){return vn},get User(){return Oe},get UserActivation(){return hn},get UserActivationDevice(){return In},get UserActivationEvent(){return fn},get UserActivationMetric(){return Cn},get UserAlertComplain(){return Ae},get UserAlertConfiguration(){return Te},get UserAlertNotificationsConfig(){return Ne},get UserAppFeedback(){return bn},get UserAppIncident(){return Sn},get UserAuthorizedBoundary(){return An},get UserAuthorizedBoundarySecurityView(){return Dn},get UserAuthorizedBoundarySecurityViewV2(){return Dn},get UserAuthorizedDevice(){return Rn},get UserAuthorizedDeviceSecurityView(){return wn},get UserAuthorizedDeviceSecurityViewV2(){return wn},get UserCancellationDueDevice(){return Tn},get UserCarrierDeactivateDevice(){return Nn},get UserCarrierReactivateDevice(){return Bn},get UserConfiguration(){return Be},get UserDataDeletionRequest(){return Un},get UserDeviceBehaviorTask(){return En},get UserFreeOfferDevice(){return Pn},get UserInvitation(){return kn},get UserRatingRequest(){return Mn},get UserRegistrationAttempt(){return Fn},get UserSecurityRole(){return Pe},get WebsocketConnection(){return Ln}});const qn=["Device","Billing"];let _n=class{afterRemove(e){const t=e.metadata.name,i=`ENTITY OF TYPE ${t} REMOVED`;qn.includes(t)&&console.error(i,{entityId:e.entityId,entity:e.entity,databaseEntity:e.databaseEntity})}};_n=r([e.EventSubscriber()],_n);var Wn=Object.freeze({__proto__:null,get AllEntitiesSubscriber(){return _n}});const jn=["commit","start transaction","select version()"];class zn{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 jn)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 Vn{dataSource;logger;constructor(t,i,r){this.logger=i;const n=[];for(const e in Qn){const t=Qn[e];n.push(t)}const a=[];for(const e in Wn){const t=Wn[e];a.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 zn(this.logger,t.logging),entities:n,subscribers:a,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:n}={}){let a;try{await this.connect(),r?(this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),a=this.dataSource.createQueryRunner(r)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const n=this.dataSource.createQueryBuilder(e,t,a);return await i(n)}catch(e){throw this.logger.error({error:e},n?n+" ":"Error while executing query"),e}finally{a&&await a.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}}class Gn{fatal=(e,t,...i)=>{this.log(sr.FATAL,e,t,...i)};error=(e,t,...i)=>{this.log(sr.FATAL,e,t,...i)};warn=(e,t,...i)=>{this.log(sr.WARN,e,t,...i)};info=(e,t,...i)=>{this.log(sr.INFO,e,t,...i)};debug=(e,t,...i)=>{this.log(sr.DEBUG,e,t,...i)};trace=(e,t,...i)=>{this.log(sr.TRACE,e,t,...i)};log=(e,t,i,...r)=>{switch(e){case sr.FATAL:case sr.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 Jn{novaDataSourceConfig;replicaNovaDataSourceConfig;logger;useBeta;constructor(e,t,i,r=!1){this.novaDataSourceConfig=e,this.replicaNovaDataSourceConfig=i,this.logger=t??new Gn,this.useBeta=r}}class Hn{useBeta;dataSource;logger;constructor(e){this.useBeta=e.useBeta??!1,this.dataSource=e.dataSource,this.logger=e.logger??new Gn}}const Kn=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}},$n=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 Xn=async(e,t,i)=>{const r=e.getRepository(vt),n={deviceId:i,boundaryId:t.boundaryId,userId:Kn(t.userId),inDate:t.eventType===E.Enter?t.sendTime:null,inLat:t.eventType===E.Enter?t.lat:null,inLon:t.eventType===E.Enter?t.lon:null,inAddress:t.eventType===E.Enter?t.address:null,outDate:t.eventType===E.Exit?t.sendTime:null,outLat:t.eventType===E.Exit?t.lat:null,outLon:t.eventType===E.Exit?t.lon:null,outAddress:t.eventType===E.Exit?t.address:null},a=await r.insert(n);return a?.raw.affectedRows>0},Yn=(e,t)=>{const i=e.getTime(),r=t.getTime();return Math.abs(r-i)/1e3},Zn=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=Kn(t.userId);return r?e.safeQuery((async e=>{const n=e.getRepository(Ie),a=await n.findOne({where:{imei:t.imei}});if(!a)return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - device not found"),!1;const o=e.getRepository(vt);if(!await o.findOne({where:{deviceId:a.id,boundaryId:t.boundaryId,userId:r}}))return await Xn(e,t,a.id);const s=await(async(e,t,i)=>{let r=null;const n=e.getRepository(vt).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:Kn(t.userId)});return r=t.eventType===E.Enter?(await n.andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","DESC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await n.andWhere("boundaryEvent.outDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","DESC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,a.id),l=await(async(e,t,i)=>{let r=null;const n=e.getRepository(vt).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:Kn(t.userId)});return r=t.eventType===E.Enter?(await n.andWhere("boundaryEvent.inDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","ASC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await n.andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","ASC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,a.id);i.trace({previousEventDate:s,nextEventDate:l},"BoundariesRepository::processBoundaryEvent - previousEventDate, nextEventDate");const d=await(async(e,t,i,r,n)=>{let a=null;const o=e.getRepository(vt).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:Kn(t.userId)});return t.eventType===E.Enter?(o.andWhere("boundaryEvent.inDate IS NULL").andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}),n&&o.andWhere("boundaryEvent.outDate <= :nextEventDate",{nextEventDate:n}),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||n?o.orderBy("boundaryEvent.inDate","ASC"):o.orderBy("boundaryEvent.inDate","DESC")),a=await o.limit(1).getOne(),a})(e,t,a.id,s,l);if(i.trace({existingOrphanEventId:d?.id},"BoundariesRepository::processBoundaryEvent - existingOrphanEventId"),null!=d){return(await o.update({id:d.id},{inDate:t.eventType===E.Enter?t.sendTime:void 0,inLat:t.eventType===E.Enter?t.lat:void 0,inLon:t.eventType===E.Enter?t.lon:void 0,inAddress:t.eventType===E.Enter?t.address:void 0,outDate:t.eventType===E.Exit?t.sendTime:void 0,outLat:t.eventType===E.Exit?t.lat:void 0,outLon:t.eventType===E.Exit?t.lon:void 0,outAddress:t.eventType===E.Exit?t.address:void 0,modifiedAt:new Date,inOutDuration:t.eventType===E.Enter?Yn(t.sendTime,d.outDate):Yn(d.inDate,t.sendTime)})).affected>0}return await Xn(e,t,a.id)}),"BoundariesRepository::processBoundaryEvent"):(i.warn({params:t},"BoundariesRepository::processBoundaryEvent - userId should be a valid uuid"),!1)};const ea=async(e,t,i,r,n,a)=>{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=a?.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=n?.map((e=>({id:null,clientAlertConfigurationId:t,userId:Kn(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 ia(e,t,i,o);const d=e.getRepository(De);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},ta=async(e,t,i,r)=>{const n=e.getRepository(we);if(await n.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!r?.length)return!0;const a=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:a}))),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 n.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},ia=async(e,t,i,r)=>{const n=await(async(e,t,i)=>{const r=t.find((e=>null==e.userId&&null==e.roleId)),n=e.getRepository(Oe);if(r)return(await n.createQueryBuilder("user").where("clientId = :clientId",{clientId:i}).getMany()).map((e=>$n(e.id)));const a=new Set;t.filter((e=>null!=e.userId)).forEach((e=>{a.add($n(e.userId))}));const o=t.filter((e=>null!=e.roleId)).map((e=>e.roleId));o.length>0&&(await n.createQueryBuilder("user").innerJoin(Pe,"userSecurityRole","userSecurityRole.userId = user.id").where("user.clientId = :clientId",{clientId:i}).andWhere("userSecurityRole.securityRoleId IN (:...roleIds)",{roleIds:o}).getMany()).forEach((e=>a.add($n(e.id))));return Array.from(a)})(e,r,i),a=e.getRepository(Ne).createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t});n.length&&a.andWhere("userId NOT IN (:...userIds)",{userIds:n.map((e=>Kn(e)))}),await a.execute()};const ra=(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},na=(e,t)=>!e||!t||t.some((t=>null==ra(e,t))),aa=(e,t)=>!e?.length||!t||e.some((e=>na(e,t))),oa=(e,t)=>!e||!t||t.every((t=>null==ra(e,t)));const sa=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(Se).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 la="minute",da=/[+-]\d\d(?::?\d\d)?/g,ua=/([+-]|\d\d)/g;i.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(),la):t},r.local=function(){return i(this.toDate(),{locale:this.$L,utc:!1})};const n=r.parse;r.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),n.call(this,e)};const a=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 a.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(da);if(!t)return null;const[i,r,n]=`${t[0]}`.match(ua)||["-",0,0],a=60*+r+ +n;return 0===a?0:"+"===i?a:-a}(e),null===e))return this;const r=Math.abs(e)<=16?60*e:e;let n=this;if(t)return n.$offset=r,n.$u=0===e,n;if(0!==e){const e=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();n=this.local().add(r+e,la),n.$offset=r,n.$x.$localOffset=e}else n=this.utc();return n};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 n=this.local(),a=i(e).local();return d.call(n,a,t,r)}}));const ca=i,pa=()=>ca.utc().toDate(),ma=async(e,t,i)=>t?.deviceTypeId&&t?.deviceIdentifier?e.safeQuery2((async e=>{const i=e.getRepository(he),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 ya=(new Date).getTime()-new Date(2019,0,1).getTime(),ga=36e5,va=[8,9,13,20,31,32],ha=(e,t)=>{let i=0;return i=e>t?0:0===e?1:e/t,i},Ia=(e,t)=>{const{speed:i,deviceTypeId:r}=e,n=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?ya:0:n?1e3*i*1.2:1e3*r*2}switch(r){case 8:case 9:return 864e5;default:return n?108e5:3e5}},fa=(e,t)=>{const i=[];if(!e||!t)return i;const{deviceTypeId:r}=t,n={...e,deviceTypeId:r};{const e=((e,t)=>{const i={name:"cellularNetwork"};try{const r=Ia(e,t),n=(new Date).getTime(),a=n-r,o=new Date(e.created).getTime();i.ok=o>=a,i.msg=`${e.deviceTypeId}`;const s=Math.abs(n-o);i.confidence=ha(s,r)}catch(e){i.msg=JSON.stringify(e)}return i})(n,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,n=Number(e.gpsUTCTime.substring(6,8)),a=Number(e.gpsUTCTime.substring(8,10)),o=Number(e.gpsUTCTime.substring(10,12)),s=Number(e.gpsUTCTime.substring(12));i=new Date(t,r,n,a,o,s)}const n=new Date(e.sendTime),a=Ia(e,t),o=i.getTime(),s=n.getTime(),l=Math.abs(s-o);r.ok=l<a,r.confidence=ha(l,a)}else r.ok=!1,r.confidence=1}catch(e){r.msg=JSON.stringify(e)}return r})(n,t,!!e.ok);i.push(r);const{batteryPercentage:a}=n;if(void 0!==a){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})(n);i.push(e)}}return i},Ca=e=>{const{logger:t,deviceStatus:i,withConnectionStatusInfo:r,withOnlineStatus:n}=e;try{if(i?.device?.deviceType?.readOnly)return;if(r&&(i.data.connectionStatus=fa(i.data,i.device)),n&&(i.data.isOnline=(e=>{let t=126e5;va.some((t=>t==e.deviceTypeId))&&(t=9e7),e?.restFrequency&&1e3*e?.restFrequency>t&&(t=1e3*e.restFrequency+ga);const i=new Date(e.sendTime);return`${(new Date).getTime()-i.getTime()<t}`})(i.data),"false"===i.data.isOnline&&null!=i?.data?.created)){const e=(new Date).getTime(),t=new Date(i.data.created),r=Math.abs(e-t.getTime());i.data.isSyncing=r<3e5}}catch(e){t.error(e,"Error while extending device status properties")}};const ba=["deviceTypeId","featureKey"],Sa=["deviceTypeId","featureKey"];const Aa=async(e,t,i)=>0===t?.length||aa(t,Xi)?(i.warn({paramsArray:t},"EntityTagsRepository::bulkCreateEntityTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(ci),r=t.map((e=>({...e,userId:e.userId?Kn(e.userId):null,createdAt:pa()})));return await i.save(r)??[]}),"EntityTagsRepository::bulkCreateEntityTag error"),Da=async(e,t,i)=>na(t,er)||oa(t,tr)?(i.warn({params:t},"EntityTagsRepository::bulkDeleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{let i=e.getRepository(ci).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 Ra=["key","name"];const wa=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(gi).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:Kn(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",Ie,"device","firmwareUpgradeTask.imei = device.imei"),e?.projectionOptions?.deviceWithDeviceType&&(t=t.leftJoinAndMapOne("device.deviceType",he,"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)},Ta=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(gi).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:Kn(e.filters.taskId)})),t))(t,r);return await r.getCount()}),"FirmwaresRepository::getFirmwareUpgradeTasksCount",r)};const Na=async(e,t,i)=>{if(!t?.id||!t?.imei)return!1;const r=e.getRepository(jr);try{const{id:e,deleted:i,...n}=t,a=r.createQueryBuilder();if((await a.insert().into(jr).values({...n,positionId:e}).orIgnore().execute()).raw.affectedRows>0)return!0;return(await a.update(jr).set({...n,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}},Ba=e=>({imei:e.imei,createdAt:e.createdAt,actualDate:e.actualDate,sendTime:e.sendTime,messageId:$n(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 Ua=["name","description","type","startDate","status"],Ea=["filters.id"],Pa=["values.name","values.description","values.type","values.discount","values.discountBillingCycles","values.freeServiceMonths","values.startDate","values.endDate","values.status","values.bannerText","values.trackerText"],Oa=["filters.id","filters.marketplaceId","filters.asin","filters.imei","filters.deviceTypeId","filters.status"],xa=["marketplaceId","promotionId"],ka=["deviceTypeId","promotionId"],Ma=["promotionId","marketplaceId"],Fa=["promotionId","deviceTypeId"],La=["filters.promotionId","filters.deviceTypeId"],Qa=["filters.promotionId","filters.marketplaceId"],qa=["imei","promotionId","promotionType","appliedAt"],_a=(e,t)=>{const i=e,r=e,n=i.type??r.values.type;if(n===P.Discount){return(i.discount??r.values.discount)<=0}if(n===P.FreeService){return(i.freeServiceMonths??r.values.freeServiceMonths)<=0}return t.warn({params:e},"PromotionRepository::invalidPromotion incorrect promotion type"),!1};const Wa=(e,t,i)=>{const r=[];let n=[];for(const a of e)n.push(i(a)),n.length===t&&(r.push(n),n=[]);return n.length>0&&r.push(n),r};const ja=async(e,t,i)=>{if(oa(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 n=e.getRepository(Oe).createQueryBuilder("user");if(r&&(n=n.setQueryRunner(r)),t.filters.id){const e=Kn(t?.filters?.id);if(!e?.length)return i.warn({params:t},"UsersRepository::getUserById - user id should be a valid UUID"),null;n=n.where("user.id = :id",{id:e})}t.filters.numberId&&(n=n.andWhere("user.numberId = :numberId",{numberId:t.filters.numberId})),t.projectionOptions?.withSecurityRole&&(n=n.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole"));return await n.getOne()}),"UsersRepository::getUserById",r)},za=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(za(i))return!0}}return!1};const Va=(e,t,i,r)=>{if(!e||!t)return e;for(const n of i){const i=t[n.filterName],a=n.targetFieldName;if(void 0!==i&&a&&n.comparisonOperator)if(null!==i)switch(n.comparisonOperator){case"RANGE":const t=i.minValue,o=i.maxValue;null!=t&&(e=e.andWhere(`${r}.${a} >= :${a}MinValue`,{[`${a}MinValue`]:t})),null!=o&&(e=e.andWhere(`${r}.${a} <= :${a}MaxValue`,{[`${a}MaxValue`]:o}));break;case"LIKE":e=e.andWhere(`LOWER(${r}.${a}) LIKE LOWER(:${a})`,{[a]:`%${i}%`});break;case"=":e=e.andWhere(`${r}.${a} = :${a}`,{[a]:i});break;case"IN":e=e.andWhere(`${r}.${a} IN (:...${a})`,{[a]:i});break;default:throw new Error(`Unknown comparison operator: ${n.comparisonOperator}`)}else e=e.andWhere(`${r}.${a} IS NULL`)}return e},Ga=[{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"}],Ja=[{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"}],Ha=[{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"}],Ka=async(e,t,i)=>{if(!za(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(oi).createQueryBuilder("taskSchedule");i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(si,"dt","taskSchedule.id = dt.taskScheduleId").andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Va(r,t.filters,Ga,"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 n=t.sortOptions?.sortField??"id",a=t.sortOptions?.sortOrder??"DESC";r=r.orderBy(`taskSchedule.${n}`,a);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}))),n=i.getRepository(si),a=n.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 a.getMany(),s=n.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 $a=async(e,t,i)=>{const r=e.getRepository(Pe).createQueryBuilder("userSecurityRole");i&&r.setQueryRunner(i);return await r.innerJoin(Oe,"user","user.id = userSecurityRole.userId and user.clientId = userSecurityRole.clientId").where("userId = :userId",{userId:t}).getMany()},Xa=async(e,t,i,r)=>{const n=e.getRepository(Ne).createQueryBuilder();r&&n.setQueryRunner(r);return await n.where("userId = :userId and clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{userId:t,clientAlertConfigurationIds:i.map((e=>e.id))}).getMany()},Ya=async(e,t,i,r)=>{let n=e.getRepository(Re).createQueryBuilder("clientAlertConfiguration").distinct(!0);r&&n.setQueryRunner(r),n=n.innerJoin(Oe,"user","user.clientId = clientAlertConfiguration.clientId and user.id = :userId",{userId:t}).leftJoin(De,"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&&n.orWhere("clientAlertRecipient.roleId IS NOT NULL and clientAlertRecipient.roleId IN (:...roleIds)",{roleIds:i.map((e=>e.securityRoleId))});return await n.getMany()},Za=async(e,t,i)=>{if(!t.length)return[];const r=e.getRepository(De).createQueryBuilder();i&&r.setQueryRunner(i);return await r.where("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t}).getMany()};const eo=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(Oe).createQueryBuilder("user").innerJoin(Pe,"userSecurityRole","userSecurityRole.userId = user.id").innerJoin(Ue,"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 n=new RegExp(`^${t}`),a=r.replace(n,"");i[a]=e[r]})),i})(e,"user_")))}),"UsersRepository::getUsersWithRoles",r)},to=async(e,t,i)=>{let r=await sa(t,{filters:{alpha2Code:e}},i);return r||(r=await sa(t,{filters:{alpha2Code:"US"}},i)),r?.id};var io=Object.freeze({__proto__:null,AcumaticaRepository:class extends Jn{async getAcumaticaImeiIccidData(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaImeiIccidData started with params");const t=new Vn(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(o).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 Vn(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(d).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 Vn(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(o).createQueryBuilder("acumaticaImeiIccidData").innerJoin(Ie,"device","device.imei = acumaticaImeiIccidData.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId}).orderBy("acumaticaImeiIccidData.shipDate","DESC").limit(1);i&&r.setQueryRunner(i);const n=await r.getOne();return n?{imei:n.imei,iccid:n.iccid,shipmentDate:new Date(n.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 Vn(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(s),n=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(),l=e.getRepository(o).createQueryBuilder("acumaticaImeiIccidData").leftJoin(a,"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=[...n[1],...l[1]],u=`(${n[0]}) UNION (${l[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 Vn(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(Xr).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 Jn{async getAempTokens(e){this.logger.trace(e,"AempTokenRepository::getAempTokens started with params");const t=new Vn(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=Kn(t?.filters?.token);if(t?.filters?.token&&!r?.length)return i.warn({params:t},"AempTokenRepository::getClientIdForToken - token should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(u).createQueryBuilder("AempToken");return i&&(n=n.setQueryRunner(i)),t?.filters?.clientId&&(n=n.andWhere("AempToken.clientId = :clientId",{clientId:t?.filters?.clientId})),t?.filters?.token&&(n=n.andWhere("AempToken.token = :token",{token:r})),await n.getMany()}),"AempTokenRepository::getAempTokens",n)})(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 Vn(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=Kn(t?.token);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(u),n=new Date,a={id:t?.id,clientId:t?.clientId,token:r,createdAt:n,updatedAt:n,expiresAt:t?.expiresAt};return await i.save(a)}),"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 Vn(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=Kn(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(u).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}},AppFeaturesRepository:class extends Jn{async createAppFeatureType(e){this.logger.trace("AppFeaturesRepository::createAppFeatureType started with params");const t=new Vn(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 Vn(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(Ct),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 Vn(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(Ct).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}},BillingRepository:class extends Jn{async getBillings(e){this.logger.trace(e,"BillingRepository::getBillings started with params");const t=new Vn(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(Ge).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 Vn(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(Ge),r=new Date,n={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(n)}),"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 Vn(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(Ge),r=new Date;return(await i.createQueryBuilder().update(Ge).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 Vn(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(Ge).createQueryBuilder("billing").innerJoin(ut,"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 n=await r.getRawOne();return n?.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 Vn(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($e).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 Vn(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($e),r=new Date;return(await i.createQueryBuilder().update($e).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 Vn(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($e),r=await i.findOne({where:{id:t.id}}),n=new Date,a={id:t.id,firstName:t.firstName,lastName:t.lastName,company:t.company,email:t.email,phone:t.phone,churnStatus:r?.churnStatus,createdAt:r?.createdAt??n,updatedAt:n},o=await i.upsert(a,{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 Vn(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(lt),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)),n=[];for(const e of t.subscriptionHistories)r.find((t=>t===e.timestamp))||n.push({...e,subscriptionId:t.subscriptionId});return await i.save(n)}),"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 Vn(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(Ye),r=new Date,n={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(n)}),"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 Vn(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(Oe).createQueryBuilder("user").innerJoin($e,"billingCustomerBraintree","LOWER(TRIM(billingCustomerBraintree.email)) = LOWER(TRIM(user.email))").innerJoin(ut,"billingSubscriptionBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoin(Ge,"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 Vn(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(ut).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(Ge,"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 Vn(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(Ge).createQueryBuilder("billing").where("billing.clientId = :clientId",{clientId:t.filters.clientId}).innerJoinAndSelect(ut,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoinAndSelect($e,"billingCustomerBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoinAndSelect(lt,"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId?e.safeQuery((async e=>{const i=e.getRepository(ut),r=new Date,n={...t,createdAt:t.createdAt??r},a=await i.upsert(n,{conflictPaths:["subscriptionId"]});return a?.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 Vn(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(Ge).createQueryBuilder("billing").innerJoin(ut,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoin(Ii,"imeiIccidCarrier","imeiIccidCarrier.imei = billing.imei").innerJoin(Ie,"device","device.imei = billing.imei").innerJoin(be,"client","client.id = device.clientId").leftJoin(ye,"customerAttribute","client.id = customerAttribute.clientId").innerJoin(hi,"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 AND client.clientTypeId != :demoClientTypeId",{testClientTypeId:C.test,demoClientTypeId:C.demo})),(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 Vn(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(Ge);let n="";switch(t.filters.canceledIn){case"carrier":n=" AND iccidStatus.status = 'active' ";break;case"device":n=" AND device.status = 'A' ";break;default:n=" AND (iccidStatus.status = 'active' OR device.status = 'A') "}const a=`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 ${n}\n ${t.filters.excludeB2B?"AND customerAttribute.enterprise != true ":""}\n ${t.filters.excludeTest?`AND client.clientTypeId != ${C.test} AND client.clientTypeId != ${C.demo} `:""}\n ORDER BY billingSubscriptionBraintree.updatedAt ASC\n LIMIT ?`;return(i?await i.query(a,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100]):await r.query(a,[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 Vn(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(Kr).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.amountPaid?e.safeQuery((async e=>{const i=e.getRepository(nt),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 getBraintreePastDueSubscriptions(e){this.logger.trace(e,"BillingRepository::getBraintreePastDueSubscriptions started with params");const t=new Vn(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 Jn{async getBlacklists(e){this.logger.trace(e,"BlacklistRepository::getBlacklists started with params");const t=new Vn(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(pt).createQueryBuilder("blacklist").innerJoin(mt,"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 Vn(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(pt),r=await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}),n=new Date,a={...r,blacklistTypeId:t.blacklistTypeId,value:t.value,notes:t.notes,createdBy:r?r.createdBy:t.createdBy,createdAt:r?r.createdAt:n,modifiedBy:r?t.createdBy:null,modifiedAt:r?n:null},o=await i.upsert(a,{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 Vn(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(pt),r=new Date;return(await i.createQueryBuilder().update(pt).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 Vn(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(pt);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 Jn{async getBoundariesByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesByClientId started with params");const t=new Vn(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(gt),n=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},a=r.createQueryBuilder("boundary").where(n);i&&a.setQueryRunner(i),t.filters.tagIdList?.length&&a.innerJoin(ci,"entityTag","entityTag.entityId = boundary.id \n AND entityTag.entityType = 'Boundary'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList});let o=await a.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(ci);o=await Promise.all(o.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Boundary"}).innerJoin(un,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}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 Vn(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(gt),n=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},a=r.createQueryBuilder("boundary").where(n);return i&&a.setQueryRunner(i),(await a.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 Vn(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(gt).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 Vn(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(gt),r=new Date;let n=parseFloat(t.buffer);Number.isNaN(n)&&(n=0);const a=Math.max(n,50),o=t.radiusDisplayUnit||"m",s=t.color||"#e74c3c",l=t.status>0&&t.status<4?t.status:h.Active,d={id:t.boundaryId,name:t.name,type:t.type,buffer:`${a}`,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 Vn(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 n=t?.values?.buffer;if(n){const e=parseFloat(t.values.buffer);Number.isNaN(e)&&(n=void 0)}return t?.values?.name||t?.values?.type||t?.values?.location||n||t?.values?.radiusDisplayUnit||t?.values?.color||t?.values?.geometry||r||t?.values?.area?e.safeQuery((async e=>{const i=e.getRepository(gt),a=new Date;return(await i.createQueryBuilder().update(gt).set({name:t.values.name,type:t.values.type,modifiedBy:t.values.modifiedBy,location:t.values.location,buffer:n,radiusDisplayUnit:t.values.radiusDisplayUnit,color:t.values.color,geometry:t.values.geometry,status:r,modifiedAt:a}).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.boundaryId?e.safeQuery((async e=>{const i=e.getRepository(gt),r=new Date;return(await i.createQueryBuilder().update(gt).set({status:h.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 Vn(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=Kn(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(vt).createQueryBuilder("boundaryEvent").innerJoin(Ie,"device","device.id = boundaryEvent.deviceId").innerJoin(gt,"boundary","boundary.id = boundaryEvent.boundaryId").where("boundaryEvent.userId = :userId",{userId:r}).andWhere("device.status = :deviceStatus",{deviceStatus:v.Active}).andWhere("boundaryEvent.deleted = 0");i&&n.setQueryRunner(i),t.filters.boundaryId&&n.andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.boundaryName&&n.andWhere("boundary.name LIKE :boundaryName",{boundaryName:`%${t.filters.boundaryName}%`}),t.filters.imeis?.length&&n.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.boundaryInStartDate&&n.andWhere("boundaryEvent.inDate >= :boundaryInStartDate",{boundaryInStartDate:t.filters.boundaryInStartDate}),t.filters.boundaryInEndDate&&n.andWhere("boundaryEvent.inDate <= :boundaryInEndDate",{boundaryInEndDate:t.filters.boundaryInEndDate}),t.filters.boundaryOutStartDate&&n.andWhere("boundaryEvent.outDate >= :boundaryOutStartDate",{boundaryOutStartDate:t.filters.boundaryOutStartDate}),t.filters.boundaryOutEndDate&&n.andWhere("boundaryEvent.outDate <= :boundaryOutEndDate",{boundaryOutEndDate:t.filters.boundaryOutEndDate}),t.filters.minDuration&&n.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&&n.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 a=n.clone().select("COUNT(boundaryEvent.id)","totalCount");if(n.innerJoin(`(${a.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"}n.orderBy(e||"boundaryEvent.inDate",t.sortOptions.sortOrder||"DESC")}return(await n.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",n)})(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Zn(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 Vn(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=Kn(t.userId);return e.safeQuery((async e=>{const i=e.getRepository(vt),n=new Date,a={...t,userId:r,createdAt:t.createdAt??n,modifiedAt:t.modifiedAt??n},o=await i.upsert(a,{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 Jn{async getClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertConfigurations started with params");const t=new Vn(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(Re).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(ci,"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 Vn(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(Re),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 Vn(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(Re).createQueryBuilder().update(Re).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 Vn(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(Re).createQueryBuilder().update(Re).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 Vn(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:[]},n=e.getRepository(De).createQueryBuilder("clientAlertRecipient").innerJoin(Re,"clientAlertConfiguration","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("clientAlertConfiguration.id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});i&&n.setQueryRunner(i);const a=await n.getMany();r.internalRecipients=a;const o=e.getRepository(we),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 Vn(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(Re);return!!await i.findOne({where:{id:t.filters.clientAlertConfigurationId,clientId:t.filters.clientId}})&&(!!await ea(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.globalAccountConfig,t.values.userIdRecipients,t.values.roleIdRecipients)&&await ta(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 Vn(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=Kn(t?.userId);return r?e.safeQuery((async e=>{const i=e.getRepository(De),n=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!n?.length)return!1;const a=n?.find((e=>null==e.userId&&null==e.roleId));if(a)return!0;const o=n?.filter((e=>null!=e.userId)),s=o?.find((e=>e.userId.equals(r)));if(s)return!0;const l=n.filter((e=>null!=e.roleId)).map((e=>e.roleId));if(l.length>0){const t=e.getRepository(Pe),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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientAlertConfigurationId&&t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(De),r=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!r?.length)return[];const n=r?.find((e=>null==e.userId&&null==e.roleId));if(n)return(await e.getRepository(Oe).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A'",{clientId:t.clientId}).getMany()).map((e=>({userId:$n(e.id),email:e.email,phone:e.telephone})));const a=new Set;r.filter((e=>null!=e.userId)).forEach((e=>{a.add(e.userId)}));const o=r.filter((e=>null!=e.roleId));o.length>0&&(await e.getRepository(Pe).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=>{a.add(e)}));const s=[],l=Array.from(a);if(l?.length){const i=await e.getRepository(Oe).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:$n(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 Jn{async getClient(e){this.logger.trace(e,"ClientsRepository::getClient started with params");const t=new Vn(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(be).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 Vn(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(be).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 Vn(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(be),r=new Date,n={id:t.clientId,name:t.name,email:t.email,clientTypeId:t.clientTypeId??C.b2c,createdAt:r,modifiedAt:r,createdBy:t.createdBy,uuid:Kn(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(n)}),"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 Vn(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(be),r=new Date;return(await i.createQueryBuilder().update(be).set({name:t.values.name,uuid:t.values.uuid?Kn(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 Vn(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(bt,t.filters.clientId);const e=await r.manager.delete(be,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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(oa(t,Pi))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(bt).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(bt),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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Oi)||oa(t,xi)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(bt);return(await i.createQueryBuilder().update(bt).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,assetProfileStatusLabelsEnabled:t.values.assetProfileStatusLabelsEnabled}).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,ki)||oa(t,Mi)?(i.warn({params:t},"ClientsRepository::createCustomerAttribute - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ye),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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Fi)||oa(t,Li)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(bt);return(await i.createQueryBuilder().update(ye).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 Vn(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(ye).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 Vn(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(At).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Qi)?(i.warn({params:t},"ClientsRepository::createClientIngestorConfiguration - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(At),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 Jn{async getCountry(e){this.logger.trace(e,"CountriesRepository::getCountry started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await sa(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 Vn(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(Se).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}},DeactivationsRepository:class extends Jn{async getDeactivationReasons(e){this.logger.trace(e,"DeactivationsRepository::getDeactivationReasons started with params");const t=new Vn(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(xt).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 Vn(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 Vn(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,n={...t,createdAt:r};return await i.save(n)}),"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 Jn{async getDeviceBehaviors(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviors started with params");const t=new Vn(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(jt).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 Vn(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(jt).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 Vn(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(En).createQueryBuilder("userDeviceBehaviorTask");if(i&&r.setQueryRunner(i),t.filters.taskId){const e=Kn(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 Vn(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=Kn(t?.taskId);if(!r?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - taskId should be a valid UUID"),null;const n=Kn(t?.userId);if(!n?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - user id should be a valid UUID"),null;const a=Kn(t?.commandTaskId);return t.commandTaskId&&!a?(i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - command task id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(En),o=new Date,s={id:r,deviceBehaviorId:t.deviceBehaviorId,clientId:t.clientId,userId:n,imei:t.imei,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,extraParams:t.extraParams,commandTaskId:a,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 Vn(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=Kn(t?.filters.taskId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(En),n=new Date;let a=i.createQueryBuilder().update(En).set({status:t.values.status,modifiedAt:n});return a=a.where("id = :id",{id:r}),(await a.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 Vn(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(jt),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 Jn{async getDevicePairings(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairings started with params");const t=new Vn(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(ri).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 Vn(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(ri).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 Vn(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(ri).createQueryBuilder("devicePairing").innerJoin(Ie,"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 Vn(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(ri),r=new Date,n={...t,createdAt:r,modifiedAt:r};return await i.save(n)}),"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 Vn(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(ri),r=new Date,n=i.createQueryBuilder().update(ri).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await n.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(ri).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 Hn{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),n=await e.safeQuery2((async(e,i)=>{let r=e.getRepository(ai).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",Ie,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId"),t.projectionOptions?.withOnlineStatus&&(r=r.leftJoinAndMapOne("device.deviceType",he,"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",St,"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 n.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]})),n})(this.dataSource,e,this.logger);return t?.forEach((t=>Ca({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(ai).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(Ie,"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(ai),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})),n=r.map((()=>"(?, ?, ?, ?, ?)")).join(", "),a=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 ${n}\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,a);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 Jn{async bulkCreateDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t.items,ba)?(i.warn({params:t},"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(li),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 Vn(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(li).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 n=await r.getMany();return n?.length?n:[]}),"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t.filters,Sa)?(i.warn({params:t},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(li);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 Hn{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(Ie).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",Ii,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",rn,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",St,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",ve,"customIcon","device.customIconId = customIcon.id")),t.projectionOptions.withAssetProfile&&(r=r.leftJoinAndMapOne("device.assetProfile",Fe,"assetProfile","device.id = assetProfile.deviceId").leftJoinAndMapOne("assetProfile.customStatus",Le,"assetProfileCustomStatus","assetProfile.clientId = assetProfileCustomStatus.clientId and assetProfile.status = assetProfileCustomStatus.status")),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(Ie).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(ci,"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",Ii,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",rn,"serviceProvider","iccidCarrier.carrier = serviceProvider.id")),t.projectionOptions?.withClientDeviceSettings&&(r=r.leftJoinAndMapOne("device.clientDeviceSetting",St,"clientDeviceSetting","device.imei = clientDeviceSetting.imei and device.clientId = clientDeviceSetting.clientId")),t.projectionOptions?.withCustomIcon&&(r=r.leftJoinAndMapOne("device.customIcon",ve,"customIcon","device.customIconId = customIcon.id")),t.projectionOptions?.withAssetProfile&&(r=r.leftJoinAndMapOne("device.assetProfile",Fe,"assetProfile","device.id = assetProfile.deviceId").leftJoinAndMapOne("assetProfile.customStatus",Le,"assetProfileCustomStatus","assetProfile.clientId = assetProfileCustomStatus.clientId and assetProfile.status = assetProfileCustomStatus.status")),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 n=await r.getMany();if(t.projectionOptions?.withDevicePairing){const t=e.getRepository(ri).createQueryBuilder("devicePairing");i&&t.setQueryRunner(i),t.where("devicePairing.imeiMain IN (:...imeiList) OR devicePairing.imeiSecondary IN (:...imeiList)",{imeiList:n.map((e=>e.imei))});const r=await t.getMany();n=n.map((e=>{const t=r.find((t=>t.imeiMain===e.imei||t.imeiSecondary===e.imei));return{...e,devicePairing:t}}))}if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(ci);n=await Promise.all(n.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Device"}).innerJoin(un,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}return n}),"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(Ie).createQueryBuilder("device").where("device.imei IN (:...imeiList)",{imeiList:t.imeiList}).andWhere("device.clientId = :clientId",{clientId:t.clientId}).andWhere("device.status = :status",{status:v.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(Ie).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,n=await ma(e,{deviceTypeId:t.deviceTypeId,deviceIdentifier:r},i);return n?e.safeQuery2((async e=>{const i=e.getRepository(Ie),a=new Date,o={...t,identifier:r,identifierKey:n,modifiedBy:t.createdBy,createdAt:a,modifiedAt:a};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(oa(t.values,Gi))return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;let r;if(t.values.deviceTypeId){const n=t.filters.imei;if(r=await ma(e,{deviceTypeId:t.values.deviceTypeId,deviceIdentifier:n},i),!r)return!1}return e.safeQuery2((async e=>{const i=e.getRepository(Ie),n=new Date;let a=i.createQueryBuilder().update(Ie).set({...t.values,identifierKey:r,modifiedAt:n}).where("imei = :imei",{imei:t.filters.imei});return t.filters.status&&(a=a.andWhere("status = :status",{status:t.filters.status})),(await a.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(Ie);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 ma(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(he).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(Ii,"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(Ii).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",he,"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(he).createQueryBuilder("deviceType").innerJoin(Ii,"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(Ii).createQueryBuilder("imeiIccidCarrier").where("imeiIccidCarrier.imei IN (:...imeiList)",{imeiList:t.filters.imeiList});return i&&r.setQueryRunner(i),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",he,"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(Ii),r=new Date;let n=i.createQueryBuilder().update(Ii).set({...t.values,modifiedAt:r});return t.filters.imei&&(n=n.where("imei = :imei",{imei:t.filters.imei})),t.filters.iccid&&(n=n.andWhere("iccid = :iccid",{iccid:t.filters.iccid})),(await n.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(St).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(St).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(St),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(St).createQueryBuilder().update(St).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(he).createQueryBuilder("dt").leftJoin(Ie,"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(fe).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(fe),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=Kn(t?.userId);return r?.length?e.safeQuery2((async e=>{const i=e.getRepository(ni),n={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(n)}),"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(hi).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(hi).createQueryBuilder("iccidStatus").update(hi).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(rn).createQueryBuilder("serviceProvider");i&&r.setQueryRunner(i);const n=await r.getMany(),a=e.getRepository(Ie).createQueryBuilder("device").innerJoin(hi,"iccidStatus","device.iccid = iccidStatus.iccid").innerJoin(Ii,"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&&a.setQueryRunner(i),(await a.getRawMany()).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,carrier:n?.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(hi).createQueryBuilder("iccidStatus").innerJoin(Ii,"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(hi),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},n=await i.upsert(r,{conflictPaths:["iccid"]});return n?.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(Ie).createQueryBuilder("device").innerJoin(Ii,"iccidCarrier","device.imei = iccidCarrier.imei").innerJoin(Oe,"user","device.clientId = user.clientId").innerJoin(Pe,"userSecurityRole","user.id = userSecurityRole.userId").innerJoin(Ue,"securityRole","userSecurityRole.securityRoleId = securityRole.id").leftJoin(Ge,"billing","device.imei = billing.imei").leftJoin(In,"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(ai,"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(he),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(he).createQueryBuilder("deviceType").update(he).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(Ie).createQueryBuilder("device").where("device.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.tagIdList?.length&&r.innerJoin(ci,"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(nn).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)=>na(t,Ji)?(i.warn({params:t},"DevicesRepository::createImeiIccidCarrier missing required parameters"),null):e.safeQuery2((async e=>e.getRepository(Ii).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(Zt).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId}).select("DISTINCT deviceChangesHistory.assignedTo");i&&r.setQueryRunner(i);const n=await r.getRawMany();return n?n.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(Zt).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)=>na(t,Hi)?(i.warn({params:t},"DevicesRepository::addDeviceChangesHistory missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(Zt),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=pa(),await i.save(e))}const n={clientId:t.clientId,imei:t.imei,assignedTo:t.assignedTo,startDate:pa()};return await i.save(n)}),"DevicesRepository::addDeviceChangesHistory"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::addDeviceChangesHistory result"),t}},EntityTagsRepository:class extends Jn{async createEntityTag(e){this.logger.trace(e,"EntityTagsRepository::createEntityTag started with params");const t=new Vn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>na(t,Xi)?(i.warn({params:t},"EntityTagsRepository::createEntityTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ci),r={...t,userId:t.userId?Kn(t.userId):null,createdAt:pa()};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 Vn(this.novaDataSourceConfig,this.logger),i=await Aa(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 Vn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>na(t,Yi)?(i.warn({params:t},"EntityTagsRepository::deleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ci);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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(na(t,Zi))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(ci),{filters:n,pagingOptions:a}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:n.clientId});i&&o.setQueryRunner(i),n.entityIds?.length&&(o=o.andWhere("entityId IN (:...entityIds)",{entityIds:n.entityIds})),n.tagIds?.length&&(o=o.andWhere("tagId IN (:...tagIds)",{tagIds:n.tagIds})),n.entityTypes?.length&&(o=o.andWhere("entityType IN (:...entityTypes)",{entityTypes:n.entityTypes}));const s=await o.getCount(),l=a?.pageSize??50;o.limit(l);const d=(a?.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 Vn(this.novaDataSourceConfig,this.logger),i=await Da(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 Vn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(na(t,ir)||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 Da(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}))),n=await Aa(e,r,i);return i.trace(n,"EntityTagsRepository::enforceEntityTagsByEntity result"),{entitiesTags:n,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 Vn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>t?e.safeQuery((async e=>{const i=e.getRepository(ci);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 Vn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(na(t,rr))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(ci).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 Jn{async createFeature(e){this.logger.trace(e,"FeatureRepository::createFeature started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Ra)?(i.warn({params:t},"FeatureRepository::createFeature missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(mi),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 Vn(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(mi).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 n=await r.getMany();return n?.length?n:[]}),"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Ra)?(i.warn({params:t},"FeatureRepository::upsertFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(mi),r={key:t.key,name:t.name,description:t.description,tags:t.tags},n=await i.upsert(r,{conflictPaths:["key"]});return n?.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.key?e.safeQuery((async e=>{const i=e.getRepository(mi);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 Jn{async getDeviceFirmwares(e){this.logger.trace("FirmwaresRepository::getDeviceFirmwares started");const t=new Vn(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(di).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 Vn(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(di),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 Vn(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(gi),r=new Date,n={id:Kn(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(n)}),"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await wa(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Ta(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 Vn(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(gi),r=new Date,n=i.createQueryBuilder("firmwareUpgradeTask").update(gi).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:Kn(t.id)});return(await n.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 Vn(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(di);return(await i.createQueryBuilder().update(di).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?await e.safeQuery((async e=>{const i=e.getRepository(yi),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 Vn(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(yi).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}},NotificationRecipientsRepository:class extends Jn{async createNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::createNotificationRecipient started with params");const t=new Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(we),n=new Date,a={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:n,modifiedAt:n,userAlertConfigurationId:t.userAlertConfigurationId};return await i.save(a)}),"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 Vn(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=Kn(t?.filters?.userId);if(null!=t?.filters?.userId&&null==r)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - userId should be a valid uuid"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(we).createQueryBuilder("notificationRecipient");return i&&n.setQueryRunner(i),n=n.where("notificationRecipient.clientId = :clientId",{clientId:t.filters.clientId}),null!=r&&(n=n.andWhere("notificationRecipient.userId = :userId",{userId:r})),t?.projectionOptions?.withUserAlertConfiguration&&(n=n.leftJoinAndSelect("notificationRecipient.userAlertConfiguration","userAlertConfiguration")),await n.getMany()}),"NotificationRecipientsRepository::getNotificationRecipients",n)})(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 Vn(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(we),r=new Date;let n=i.createQueryBuilder().update(we).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 n=n.where("id = :id",{id:t?.filters?.id}),(await n.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 Vn(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(we),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,T.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>!t?.filters?.recipient||t?.filters?.notificationType==T.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(we),n=new Date;let a,o,s,l;switch(t?.filters?.notificationType){case T.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=[T.Phone,t.filters.recipient,t.filters.countryCode],a="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,n,T.Phone,t.filters.recipient,t.filters.countryCode];break;case T.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=[T.Email,t.filters.recipient,t.filters.recipient],a="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,n,T.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(a,s),d.map((e=>$n(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 Vn(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=Kn(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(we).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 Vn(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(we).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 Jn{async createPosition(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new Vn(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(Yr),n=new Date,a={id:t.id,imei:t.imei,lat:t.lat,lon:t.lon,actualDate:t.actualDate,speed:t.speed,odometer:t.odometer,createdAt:t.createdAt??n,messageId:Kn(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(a);return o?(await Na(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const r=e.getRepository(Yr),n=[];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:Kn(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};n.push(i)})),await r.upsert(n,{conflictPaths:["messageId"]});const a=await r.createQueryBuilder("p").where("p.messageId IN (:messageIds)",{messageIds:n.map((e=>e.messageId))}).orderBy("p.id","ASC").getMany();for(const t of a)await Na(e,t,i);return a?.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 Vn(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(Yr),n=await i.createQueryBuilder("position").setQueryRunner(r).where("position.imei = :imei",{imei:t.filters.imei}).andWhere("position.deleted = 0").getMany();return n?.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 Vn(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(Yr).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 n=i.clone().select("COUNT(p.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixPositionClientId_Imei_ActualDate"),n.useIndex("ixPositionClientId_Imei_ActualDate")):(i.useIndex("ixPositionClientId_ActualDate"),n.useIndex("ixPositionClientId_ActualDate")),i.innerJoin(`(${n.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(Ba)}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 Vn(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(jr),n=await i.createQueryBuilder("latestPosition").setQueryRunner(r).where("latestPosition.imei = :imei",{imei:t.filters.imei}).getOne();return n?{...n,positionId:Number(n.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 Vn(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(Yr).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 n=t?.pagingOptions?.pageSize??100,a=t?.pagingOptions?.pageIndex??1;return i=i.groupBy("DATE(p.actualDate)").orderBy("DATE(p.actualDate)","DESC").limit(n).offset(n*(a-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 Jn{async createPromotion(e){this.logger.trace(e,"PromotionRepository::this.createPromotion started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Ua)||_a(t,i)?(i.warn({params:t},"PromotionRepository::createPromotion missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(se),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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Ea)||oa(t,Pa)||_a(t,i)?(i.warn({params:t},"PromotionRepository::updatePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(se),{filters:r,values:n}=t;return(await i.createQueryBuilder().update(se).set({bannerText:n.bannerText,description:n.description,discount:n.discount,discountBillingCycles:n.discountBillingCycles,endDate:n.endDate,freeServiceMonths:n.freeServiceMonths,name:n.name,startDate:n.startDate,status:n.status,trackerText:n.trackerText,type:n.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(oa(t,Oa))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(se).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",oe,"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",le,"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",ne,"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",ae,"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t.items,xa)?(i.warn({params:t},"PromotionRepository::createMarketplacePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(oe);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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t.items,ka)?(i.warn({params:t},"PromotionRepository::createDeviceTypePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(ae);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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t,Ma)?(i.warn({params:t},"PromotionRepository::deleteMarketplacePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(oe).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t,Fa)?(i.warn({params:t},"PromotionRepository::deleteDeviceTypePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(ae).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(oa(t,La))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(ae).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(oa(t,Qa))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(oe).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,qa)?(i.warn({params:t},"PromotionRepository::createPromotionHistory missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Zr),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 Hn{async getAllRoles(){this.logger.trace("SecurityRepository::getAllRoles started");const e=await(async e=>e.safeQuery3(Ue,"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(Pe,"userSecurityRole",(e=>e.select().where("userId = :userId",{userId:Kn(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(Pe,"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(Pe,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:Kn(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(Pe,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:Kn(t.filters.userId)}).andWhere("securityRoleId IN (:...roles)",{roles:[g.Admin,g.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(Pe),r=await i.findOne({where:{userId:Kn(t.userId)}});if(!r){const e={userId:Kn(t.userId),clientId:t.clientId,securityRoleId:t.roleId,devicesAccess:t.devicesAccess,boundariesAccess:t.boundariesAccess,minAccessDate:t.minAccessDate,tasksAccess:t.tasksAccess};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(oa(t,gr))return i.warn({params:t},"SecurityRepository::updateUserRole - missing required parameters"),!1;const r=Kn(t.filters.userId);return(await e.safeQuery3(Pe,"userSecurityRole",(async e=>{const i=e.update().where("userId = :userId",{userId:r}).andWhere("securityRoleId <> :roleId",{roleId:t.values.roleId}),n={};return t.values.roleId&&(n.securityRoleId=t.values.roleId),t.values.devicesAccess&&(n.devicesAccess=t.values.devicesAccess),t.values.boundariesAccess&&(n.boundariesAccess=t.values.boundariesAccess),t.values.minAccessDate&&(n.minAccessDate=t.values.minAccessDate),t.values.tasksAccess&&(n.tasksAccess=t.values.tasksAccess),i.set(n).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(Pe),r=await i.find({where:{userId:Kn(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})=>aa(t,vr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices - missing required parameters"),!1):e.safeQuery2((async e=>{const i=e.getRepository(Rn),n=Wa(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:Kn(e.userId),imei:e.imei})));let a=0;for(const e of n)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,a+=t}return a===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?.clientId&&t?.filters?.userId?e.safeQuery3(wn,"uadsv",(e=>e.select().where("uadsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("BIN_TO_UUID(uadsv.userId) = :userId",{userId:t.filters.userId}).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})=>aa(t,hr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries - missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(An),n=Wa(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:Kn(e.userId),boundaryId:Number(e.boundaryId)})));let a=0;for(const e of n)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,a+=t}return a===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?.clientId&&t?.filters?.userId?e.safeQuery3(Dn,"uabsv",(e=>e.select().where("uabsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("BIN_TO_UUID(uabsv.userId) = :userId",{userId:t.filters.userId}).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(Rn,"userAuthorizedDevice",(e=>e.delete().where("userAuthorizedDevice.userId = :userId",{userId:Kn(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(An,"userAuthorizedBoundary",(e=>e.delete().where("userAuthorizedBoundary.userId = :userId",{userId:Kn(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(oa(t,Ir)||!t.filters.imeisList.length)return i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices - missing required parameters"),[];const r=await e.safeQuery3(wn,"uadsv",(e=>e.select("BIN_TO_UUID(uadsv.userId) as userId").distinct(!0).where("uadsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("uadsv.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)=>na(t,fr)||!t.filters.boundaryIdList.length?(i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries - missing required parameters"),[]):(await e.safeQuery3(Dn,"uabsv",(e=>e.select("BIN_TO_UUID(uabsv.userId) as userId").distinct(!0).where("uabsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("uabsv.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 Jn{async createTag(e){this.logger.trace(e,"TagRepository::this.createTrip started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,br)?(i.warn({params:t},"TagsRepository::createTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(un),r={...t,name:t.name.trim().toLowerCase(),isSecurityGroup:t.metadata?.isSecurityGroup??!1,createdAt:pa()};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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Ar)||!za({...t?.values,modifiedBy:void 0})?(i.warn({params:t},"TagRepository::updateTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(un),{filters:r,values:n}=t;return(await i.createQueryBuilder().update(un).set({modifiedBy:n.modifiedBy,modifiedAt:pa(),color:n.color,description:n.description,name:n.name,metadata:n.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(t,Dr)?(i.warn({params:t},"TagsRepository::deleteTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(un);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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(na(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(un),{filters:n,pagingOptions:a}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:n.clientId});i&&o.setQueryRunner(i),n.names?.length&&(o=o.andWhere("name IN (:...names)",{names:n.names})),n.tagIds?.length&&(o=o.andWhere("id IN (:...tagIds)",{tagIds:n.tagIds})),n.metadata&&(o=o.andWhere("JSON_CONTAINS(metadata, :metadata)",{metadata:JSON.stringify(n.metadata)}));const s=await o.getCount(),l=a?.pageSize??50;o.limit(l);const d=(a?.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>na(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(un),r=t.tags.map((e=>({...e,name:e.name.trim().toLowerCase(),clientId:t.clientId,createdBy:t.createdBy,isSecurityGroup:e.metadata?.isSecurityGroup??!1,createdAt:pa()})));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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(na(t,wr)||oa(t,Tr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t),{filters:n,pagingOptions:a}=t;let o=n.userNumberId;if(!n.userNumberId){const t=await ja(e,{filters:{id:n.userId}},i);o=t?.numberId}return e.safeQuery((async(e,t)=>{let i=e.getRepository(un).createQueryBuilder("tag").where("tag.clientId = :clientId",{clientId:n.clientId});t&&i.setQueryRunner(t),i.innerJoin(ci,"entityTag","entityTag.tagId = tag.id AND entityTag.entityType = 'User' AND entityTag.entityId = :userId",{userId:o}),n.metadata&&(i=i.andWhere("JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify(n.metadata)}));const r=await i.getCount(),s=a?.pageSize??50;i.limit(s);const l=(a?.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 Jn{async createTaskSchedule(e){this.logger.trace(e,"TasksRepository::createTaskSchedule started with params");const t=new Vn(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(oi),r=new Date,n={...t,createdAt:r,status:"active"};return await i.save(n)}),"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 Vn(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(oi).createQueryBuilder("taskSchedule");i&&r.setQueryRunner(i);const n=await r.where("taskSchedule.id = :id",{id:t.filters.id}).getOne();if(t.projectionOptions?.numberOfDevicesToGet>0&&n){const r=e.getRepository(si),a=r.createQueryBuilder("deviceTask");i&&a.setQueryRunner(i);const o=await a.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:n.id}).limit(t.projectionOptions.numberOfDevicesToGet).getMany();n.deviceTasks=o;const s=r.createQueryBuilder("deviceTask");i&&s.setQueryRunner(i);const l=await s.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:n.id}).select("COUNT(taskScheduleId)","deviceCount").groupBy("deviceTask.taskScheduleId").getRawOne();n.totalDevicesCount=l?l.deviceCount:0}return n}),"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 Vn(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(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::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 Vn(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::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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Ka(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!za(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(oi).createQueryBuilder("taskSchedule");return i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(si,"dt","taskSchedule.id = dt.taskScheduleId")),t.filters.imeiList?.length&&(r=r.andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Va(r,t.filters,Ga,"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 Vn(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(si).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId?e.safeQuery((async e=>{const i=e.getRepository(oi),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const n=e.getRepository(si);if(await n.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).execute(),!t?.imeis?.length)return!0;const a=[];for(let e=0;e<t.imeis.length;e+=50)a.push(t.imeis.slice(e,e+50));for(const e of a){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),a=await n.insert(i);if(!a?.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 Vn(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(oi),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const n=e.getRepository(si),a=[];for(let e=0;e<t.imeis.length;e+=50)a.push(t.imeis.slice(e,e+50));for(const e of a){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),a=await n.upsert(i,{conflictPaths:["taskScheduleId","imei"]});if(!a?.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 Vn(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(si),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 Vn(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(cn),r=new Date,n={...t,createdAt:r,status:"pending"};return await i.save(n)}),"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!za(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(cn).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=Va(r,t.filters,Ja,"task"),r=Va(r,t.filters,Ha,"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 n=t.sortingOptions?.length?t.sortingOptions:[{sortField:t.sortOptions?.sortField??"id",sortOrder:t.sortOptions?.sortOrder??"DESC"}];for(const e of n){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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!za(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(cn).createQueryBuilder("task");return i&&(r=r.setQueryRunner(i)),(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),r=Va(r,t.filters,Ja,"task"),r=Va(r,t.filters,Ha,"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 Vn(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(cn),r=new Date;return(await i.createQueryBuilder().update(cn).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(cn),r=new Date;return(await i.createQueryBuilder().update(cn).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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id?e.safeQuery((async e=>{const i=e.getRepository(cn),r=new Date,n=t.includeTimeInCompletedAt??!1,a=t.completedAt??r;return n||a.setHours(0,0,0,0),(await i.createQueryBuilder().update(cn).set({status:"completed",completedBy:t.completedBy,completedAt:a,completionNotes:t.completionNotes,completionOdometer:t.completionOdometer,completionActiveHours:t.completionActiveHours,completionMetadata:t.completionMetadata,includeTimeInCompletedAt:n,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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(cn),r=new Date;return(await i.createQueryBuilder().update(cn).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}},UserActivationsRepository:class extends Jn{async createUserActivation(e){this.logger.trace(e,"UserActivationsRepository::createUserActivation started with params");const t=new Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(hn),n=new Date,a={id:t?.id,userId:r,clientId:t?.clientId,createdAt:n,legacyCreatedAt:n,status:t?.status??"A"};return await i.save(a)}),"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 Vn(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=Kn(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(hn).createQueryBuilder("userActivation");return i&&n.setQueryRunner(i),t.filters.userId&&(n=n.where("userActivation.userId = :userId",{userId:r})),t.filters.clientId&&(n=n.andWhere("userActivation.clientId = :clientId",{clientId:t.filters.clientId})),await n.getMany()}),"UserActivationsRepository::getUserActivations",n)})(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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(hn);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 Vn(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(In).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 Vn(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(In),n="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(n,[t.filters.clientId]):r.query(n,[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 Vn(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(In),r=new Date,n={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(n)}),"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 Vn(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(In).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 n=t.sortOptions?.sortField?`userActivationDevice.${t.sortOptions.sortField}`:"userActivationDevice.id";return r=r.orderBy(n,"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 Vn(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(In),r=new Date;let n=i.createQueryBuilder().update(In).set({...t.values,modifiedAt:r});return t.filters.imei&&(n=n.where("imei = :imei",{imei:t.filters.imei})),t.filters.id&&(n=n.andWhere("id = :id",{id:t.filters.id})),(await n.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 Vn(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=Kn(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Cn).createQueryBuilder("userActivationMetric");return i&&n.setQueryRunner(i),t.filters.userId&&(n=n.where("userActivationMetric.userId = :userId",{userId:r})),await n.getOne()}),"UserActivationsRepository::getUserActivationMetrics",n)})(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=Kn(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(Cn),n=new Date;let a=i.createQueryBuilder().update(Cn).set({...t.values,modifiedAt:n});return r&&(a=a.andWhere("userId = :userId",{userId:r})),(await a.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 Vn(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=Kn(t?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - user id should be a valid UUID"),null;const n=Kn(t?.eventId);return n?.length?e.safeQuery((async e=>{const i=e.getRepository(fn),a=new Date,o={userId:r,eventId:n,eventName:t?.eventName,eventValue:t?.eventValue,eventMetadata:t?.eventMetadata,platform:t?.platform,ip:t?.ip,userAgent:t?.userAgent,createdAt:t?.createdAt??a};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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Cn),n=new Date,a={id:t?.id,userId:r,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phone:t?.phone,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Vn(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(hn).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 Jn{async createUserAppFeedback(e){this.logger.trace(e,"UserAppFeedbackRepository::createUserAppFeedback started with params");const t=new Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(bn),n={id:t.id,userId:r,platform:t.platform,appVersion:t.appVersion,feedback:t.feedback,amazonReviewDate:t.amazonReviewDate,createdAt:new Date};return await i.save(n)}),"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 Jn{async getUserAppIncidents(e){this.logger.trace(e,"UserAppIncidentsRepository::getUserAppIncidents started with params");const t=new Vn(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=Kn(t.filters.userId);if(!r?.length)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - userId is not a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(Sn).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&&n.setQueryRunner(i),await n.getMany()}),"UserAppIncidentsRepository::getUserAppIncidents",n)})(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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Sn),n=new Date,a={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:n},o=await i.upsert(a,{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 Jn{async getUserConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserConfigurations started with params");const t=new Vn(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=Kn(t?.filters?.userId);if(t?.filters?.userId&&!r)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Be).createQueryBuilder("userConfiguration");return i&&n.setQueryRunner(i),t.filters.clientId&&(n=n.innerJoin("userConfiguration.user","user"),n=n.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),r&&(n=n.andWhere("userConfiguration.userId = :userId",{userId:r})),await n.getMany()}),"UserConfigurationsRepository::getUserConfigurations",n)})(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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Be),n=new Date,a={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,assetProfileStatusLabelsEnabled:t?.assetProfileStatusLabelsEnabled,trackerClusteringEnabled:t?.trackerClusteringEnabled,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Vn(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=Kn(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||null!=t?.values?.assetProfileStatusLabelsEnabled||null!=t?.values?.trackerClusteringEnabled?e.safeQuery((async e=>{const i=e.getRepository(Be),n=new Date,a=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:n,addressFormat:t.values.addressFormat,assetProfileStatusLabelsEnabled:t.values.assetProfileStatusLabelsEnabled,trackerClusteringEnabled:t.values.trackerClusteringEnabled}).where("userId = :userId",{userId:r});return(await a.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 Vn(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=Kn(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 Vn(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=Kn(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Te).createQueryBuilder("userAlertConfiguration");return i&&n.setQueryRunner(i),n=n.innerJoinAndSelect("userAlertConfiguration.alertType","alertType",t.filters.includeBeta?void 0:"alertType.stage = 'prod'"),n=n.where("userAlertConfiguration.userId = :userId",{userId:r}),t?.projectionOptions?.withNotificationRecipients&&(n=n.leftJoinAndSelect("userAlertConfiguration.notificationRecipients","notificationRecipient")),n=n.orderBy("userAlertConfiguration.alertTypeId"),await n.getMany()}),"UserConfigurationsRepository::getUserAlertConfigurations",n)})(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.alertConfigurations?.length?e.safeQuery((async e=>{const r=e.getRepository(Te),n=[];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=Kn(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};n.push(r)}return n.length?await r.save(n):[]}),"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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.alertTypeId?e.safeQuery((async e=>{const r=e.getRepository(Te),n=Kn(t?.userId);if(!n?.length)return i.warn(t,"UserConfigurationsRepository::createUserAlertConfiguration - User alert configuration could not be created: user id should be a valid UUID"),null;const a={id:t?.id,userId:n,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(a)}),"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 Vn(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=Kn(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(Te).createQueryBuilder().update(Te).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 Vn(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=Kn(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(Te).createQueryBuilder().update(Te).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 Vn(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=Kn(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(Te).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 Vn(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=Kn(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,n)=>{const a=await $a(e,r,n),o=await Ya(e,r,a,n),s=o?.length?await Xa(e,r,o,n):[],l=o.filter((e=>!s?.find((t=>t.clientAlertConfigurationId===e.id)))),d=await Za(e,l?.map((e=>e.id)),n);return o.map((e=>{const n=s.find((t=>t.clientAlertConfigurationId===e.id));if(n)return i.trace({userNotificationId:n.id},"Existing notification override found"),n;const o=d.find((i=>i.clientAlertConfigurationId===e.id&&$n(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&&a.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",n)})(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.clientAlertConfigurationId?e.safeQuery((async e=>{const r=e.getRepository(Ne),n=Kn(t?.userId);if(!n?.length)return i.warn(t,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - User alert configuration could not be created: user id should be a valid UUID"),null;const a={id:t?.id,userId:n,clientAlertConfigurationId:t?.clientAlertConfigurationId,smsNotification:t?.smsNotification??!1,emailNotification:t?.emailNotification??!1,appNotification:t?.appNotification??!1,pushNotification:t?.pushNotification??!1},o=await r.upsert(a,{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 Vn(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=Kn(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(Ne).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 Jn{async getUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest started with params");const t=new Vn(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=Kn(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 n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Un).createQueryBuilder("userDataDeletionRequest");return i&&n.setQueryRunner(i),t?.filters?.id&&(n=n.andWhere("userDataDeletionRequest.id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(n=n.andWhere("userDataDeletionRequest.userId = :userId",{userId:r})),await n.getOne()}),"UserDataDeletionRequestsRepository::getUserDataDeletionRequest",n)})(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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Un),n=new Date,a={id:t?.id,userId:r,clientId:t.clientId,email:t.email,userSecurityRoleName:t.userSecurityRoleName,status:t.status,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Vn(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=Kn(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(Un),n=new Date;let a=i.createQueryBuilder().update(Un).set({status:t?.values?.status,modifiedAt:n});return t?.filters?.id&&(a=a.where("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(a=a.andWhere("userId = :userId",{userId:r})),(await a.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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(Un).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 Jn{async getUserInvitationById(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitationById started with params");const t=new Vn(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=Kn(t?.filters?.id);if(!r?.length)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - user invitation id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(kn).createQueryBuilder("userInvitation");return t&&i.setQueryRunner(t),i=i.where("userInvitation.id = :id",{id:r}),await i.getOne()}),"UserInvitationsRepository::getUserInvitationById",n)})(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 Vn(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(kn).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(Oe,"user","user.id = userInvitation.inviterUserId").innerJoin(ci,"entityTagUser","entityTagUser.entityId = user.numberId \n AND entityTagUser.entityType = 'User'\n AND entityTagUser.tagId IN (:...userTagIdList)",{userTagIdList:e}),i?.length&&r.innerJoin(ci,"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 Vn(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=Kn(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(kn),n=new Date;let a=i.createQueryBuilder().update(kn).set({statusId:t?.values?.statusId,inviteeUserId:t?.values?.inviteeUserId,inviteeEmail:t?.values?.inviteeEmail,inviteeSecurityRoleId:t?.values?.inviteeSecurityRoleId,trackerImeis:t?.values?.trackerImeis?.split(",")??void 0,trackerAccess:t?.values?.trackerAccess,minAccessDate:t?.values?.minAccessDate,boundaries:t?.values?.boundaries?.split(",")?.map(Number)??void 0,boundaryAccess:t?.values?.boundaryAccess,tasksAccess:t?.values?.tasksAccess,modifiedAt:n});return a=a.where("id = :id",{id:r}),(await a.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 Vn(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(kn),r=new Date,n={...t,boundaries:t?.boundaries?.split(",")?.map(Number)??null,trackerImeis:t?.trackerImeis?.split(",")??null,createdAt:r,modifiedAt:r};return i.save(n)}),"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 Jn{async getUserRatingRequests(e){this.logger.trace(e,"UserRatingRequestsRepository::getUserRatingRequests started with params");const t=new Vn(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=Kn(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(Mn).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",n)})(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 Vn(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=Kn(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Mn),n={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(n)}),"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 Jn{async getUserRegistrationAttempts(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts started with params");const t=new Vn(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=Kn(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 n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Fn).createQueryBuilder("userRegistrationAttempt");return i&&n.setQueryRunner(i),t?.filters?.id&&(n=n.andWhere("userRegistrationAttempt.id = :id",{id:t?.filters?.id})),t?.filters?.tempUserId&&(n=n.andWhere("userRegistrationAttempt.tempUserId = :tempUserId",{tempUserId:r})),await n.getMany()}),"UserRegistrationAttemptsRepository::getUserRegistrationAttempts",n)})(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 Vn(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=Kn(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(Fn),n={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(n)}),"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 Vn(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(Fn).createQueryBuilder().update(Fn).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 Jn{async getUserById(e){this.logger.trace(e,"UsersRepository::getUserById started with params");const t=new Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await ja(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 Vn(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(Oe).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=Kn(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(ci,"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 n=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(ci);n=await Promise.all(n.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.numberId,entityType:"User"}).innerJoin(un,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}return n}),"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 Vn(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(Oe).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 Vn(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(Oe).createQueryBuilder("user").innerJoin(Se,"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 n=await r.getRawMany();return n?.map((e=>$n(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await eo(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 Vn(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=Kn(t?.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Oe),n=new Date,a={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,userAgreementAcceptedAt:t.userAgreementAcceptedAt,createdAt:n,modifiedAt:n,fullPhoneNumber:t.fullPhoneNumber};return await i.save(a)}),"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 Vn(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=Kn(t?.id);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(Oe);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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=Kn(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||t?.values?.userAgreementAcceptedAt||t?.values?.fullPhoneNumber))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;let n=t.values.countryId;!n&&t.values.countryCode&&(n=await to(t.values.countryCode,e,i));let a=t.values.telephoneCountryId;return!a&&t.values.telephoneCountryCode&&(a=await to(t.values.telephoneCountryCode,e,i)),e.safeQuery((async e=>{const i=e.getRepository(Oe),o=new Date;let s=i.createQueryBuilder().update(Oe).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:n,telephoneCountryId:a,dataSourceTypeId:t.values.dataSourceTypeId,emailVerified:t.values.emailVerified,modifiedAt:o,lat:t.values.latitude,lon:t.values.longitude,lastLoginAt:t.values.lastLoginAt,userAgreementAcceptedAt:t.values.userAgreementAcceptedAt,fullPhoneNumber:t.values.fullPhoneNumber});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 Vn(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:$n(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 Vn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{let r=Kn(t?.filters?.userId);await e.connect();const n=e.createQueryRunner();try{if(!r&&t?.filters?.email){const i=e.getRepository(Oe),n=await i.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();n&&(r=n.id)}let i=t.filters.clientId;if(!i&&t.filters.email){const r=e.getRepository(be),n=await r.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();n&&(i=n.id)}await n.startTransaction();let a=!1;if(i){await n.manager.delete(we,{clientId:i}),await n.manager.delete(Pe,{clientId:i}),await n.manager.delete(kn,{inviterClientId:i});const e=await n.manager.createQueryBuilder().select("boundary.id").from(gt,"boundary").where("boundary.clientId = :clientId",{clientId:i}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(vt,"boundaryEvent").where("boundaryEvent.boundaryId IN (:ids)",{ids:e.map((e=>e.id))}).execute(),await n.manager.delete(gt,{clientId:i})),await n.manager.delete(mn,{clientId:i}),await n.manager.delete(bt,{clientId:i}),await n.manager.delete(Ot,{clientId:i}),a=(await n.manager.delete(be,i)).affected>0}let o=!1;if(r){await n.manager.delete(Be,{userId:r}),await n.manager.delete(Te,{userId:r});const e=await n.manager.createQueryBuilder().select("userActivation.id").from(hn,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(In,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await n.manager.delete(hn,{userId:r})),await n.manager.delete(Mn,{userId:r}),await n.manager.delete(bn,{userId:r}),o=(await n.manager.delete(Oe,{id:r})).affected>0}return await n.commitTransaction(),a||o}catch(e){throw await n.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteAccount error"),e}finally{await n.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 Vn(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=Kn(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(be).createQueryBuilder("client").select("client.id","clientId");return i&&n.setQueryRunner(i),t.projectionOptions?.withDevicesCount&&n.addSelect((e=>e.select("COUNT(*)","devicesCount").from("device","d").where("client.id = d.clientId").andWhere("d.status = :deviceStatus",{deviceStatus:v.Active})),"devicesCount"),t.projectionOptions?.withBoundariesCount&&n.addSelect((e=>e.select("COUNT(*)","boundariesCount").from("boundary","b").where("client.id = b.clientId").andWhere("b.status = :boundaryStatus",{boundaryStatus:h.Active})),"boundariesCount"),t.projectionOptions?.withUsersCount&&n.addSelect((e=>e.select("COUNT(*)","usersCount").from("user","u").where("client.id = u.clientId").andWhere("u.status = :userStatus",{userStatus:I.Active})),"usersCount"),n.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 n.getRawOne()}),"UsersRepository::getUserClientRelatedEntitiesCount",n)})(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 Vn(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(Oe).createQueryBuilder("user").innerJoin(Ie,"device","device.clientId = user.clientId and device.status = :status",{status:v.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 n=await r.getRawMany(),a=[],o=[];return n.forEach((e=>{const t=$n(e.userId);o.includes(t)||(o.push(t),a.push({userId:t,firstName:e.firstName,lastName:e.lastName,email:e.email,userName:e.userName,devices:[]}));const i=a.findIndex((e=>e.userId===t));a[i].devices.push({imei:e.imei,name:e.deviceName})})),a}),"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 Vn(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=Kn(t.filters.userId);if(!r)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - invalid user ID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(Oe).createQueryBuilder("user").innerJoin(be,"client","client.id = user.clientId").innerJoin(Ie,"device","device.clientId = user.clientId and device.status = :deviceStatus",{deviceStatus:v.Active}).innerJoin(he,"deviceType","device.deviceTypeId = deviceType.id").leftJoin(o,"acumaticaImeiIccidData","device.imei = acumaticaImeiIccidData.imei").leftJoin(l,"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 a;return i&&n.setQueryRunner(i),(await n.getRawMany()).forEach((e=>{a||(a={userId:t.filters.userId,email:e.email,clientId:e.clientId,useType:e.useType,clientTypeId:e.clientTypeId,devices:[]}),a.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}})})),a}),"UsersRepository::getUserInfoWithAmazonDevicesInfo",n)})(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 Vn(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=Kn(t?.id);if(!r?.length)return i.warn({params:t},"UsersRepository::deleteUserData - user id should be a valid UUID"),!1;await e.connect();const n=e.createQueryRunner();try{await n.startTransaction(),await n.manager.delete(we,{userId:r}),await n.manager.delete(Pe,{userId:r}),await n.manager.delete(kn,{inviteeUserId:t.id}),await n.manager.delete(Be,{userId:r}),await n.manager.delete(Te,{userId:r});const e=await n.manager.createQueryBuilder().select("userActivation.id").from(hn,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(In,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await n.manager.delete(hn,{userId:r})),await n.manager.delete(Mn,{userId:r}),await n.manager.delete(bn,{userId:r});const i=await n.manager.delete(Oe,{id:r});return await n.commitTransaction(),i.affected>0}catch(e){throw await n.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteUserData error"),e}finally{await n.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUserData result"),i}}});const ro={uuidStringToBinaryBuffer:Kn,binaryBufferToUuidString:$n,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 n=i.getTime()+Math.random()*(r.getTime()-i.getTime());return new Date(n)},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:oa,anyAttributeInArrayIsNull:aa,anyAttributeIsNull:na,now:pa,addMonthsToNow:e=>ca.utc().add(e,"month").toDate()};Object.defineProperty(exports,"Repository",{enumerable:!0,get:function(){return e.Repository}}),exports.ConsoleLogger=Gn,exports.Entities=Qn,exports.Enums=re,exports.NovaDataSource=Vn,exports.Repositories=io,exports.Types=qr,exports.Utils=ro;
1
+ "use strict";var e=require("typeorm"),t=require("uuid"),i=require("dayjs");function r(e,t,i,r){var n,a=arguments.length,o=a<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--)(n=e[s])&&(o=(a<3?n(o):a>3?n(t,i,o):n(t,i))||o);return a>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 a=class{id;sku;asin;description;reviewUrl;productUrl};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],a.prototype,"id",void 0),r([e.Column("varchar",{name:"sku",length:50}),n("design:type",String)],a.prototype,"sku",void 0),r([e.Column("varchar",{name:"asin",length:50}),n("design:type",String)],a.prototype,"asin",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],a.prototype,"description",void 0),r([e.Column("varchar",{name:"reviewUrl",nullable:!0,length:1e3}),n("design:type",String)],a.prototype,"reviewUrl",void 0),r([e.Column("varchar",{name:"productUrl",nullable:!0,length:1e3}),n("design:type",String)],a.prototype,"productUrl",void 0),a=r([e.Entity("acumaticaAmazonProduct",{schema:"nova"})],a);let o=class{id;imei;iccid;amazonShipmentId;deviceModel;deviceCarrier;carrierNetwork;carrierProductId;poNbr;createdBy;createdDate;lastModifiedDate;shipDate;asin;countryCode;platform;listingId;location};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],o.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:50}),n("design:type",String)],o.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:50}),n("design:type",String)],o.prototype,"iccid",void 0),r([e.Column("varchar",{name:"amazonShipmentId",nullable:!0,length:50}),n("design:type",String)],o.prototype,"amazonShipmentId",void 0),r([e.Column("varchar",{name:"deviceModel",nullable:!0,length:50}),n("design:type",String)],o.prototype,"deviceModel",void 0),r([e.Column("varchar",{name:"deviceCarrier",nullable:!0,length:50}),n("design:type",String)],o.prototype,"deviceCarrier",void 0),r([e.Column("varchar",{name:"carrierNetwork",nullable:!0,length:50}),n("design:type",String)],o.prototype,"carrierNetwork",void 0),r([e.Column("varchar",{name:"carrierProductId",nullable:!0,length:50}),n("design:type",String)],o.prototype,"carrierProductId",void 0),r([e.Column("varchar",{name:"poNbr",nullable:!0,length:50}),n("design:type",String)],o.prototype,"poNbr",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],o.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"createdDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"createdDate",void 0),r([e.Column("varchar",{name:"lastModifiedDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"lastModifiedDate",void 0),r([e.Column("varchar",{name:"shipDate",nullable:!0,length:50}),n("design:type",String)],o.prototype,"shipDate",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],o.prototype,"asin",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],o.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:100}),n("design:type",String)],o.prototype,"platform",void 0),r([e.Column("varchar",{name:"listingId",nullable:!0,length:100}),n("design:type",String)],o.prototype,"listingId",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:100}),n("design:type",String)],o.prototype,"location",void 0),o=r([e.Index("ixAcumaticaImeiIccidDataIccid",["iccid"],{}),e.Index("ixAcumaticaImeiIccidDataImei",["imei"],{}),e.Index("ixAcumaticaImeiIccidDataAmazonShipmentId",["amazonShipmentId"],{}),e.Entity("acumaticaImeiIccidData",{schema:"nova"})],o);let s=class{id;imei;shipmentNumber;shipmentStatus;shipmentDate;orderType;orderStatus;iccid;sku};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],s.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],s.prototype,"imei",void 0),r([e.Column("varchar",{name:"shipmentNumber",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipmentNumber",void 0),r([e.Column("varchar",{name:"shipmentStatus",nullable:!0,length:50}),n("design:type",String)],s.prototype,"shipmentStatus",void 0),r([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],s.prototype,"shipmentDate",void 0),r([e.Column("varchar",{name:"orderType",nullable:!0,length:10}),n("design:type",String)],s.prototype,"orderType",void 0),r([e.Column("varchar",{name:"orderStatus",nullable:!0,length:50}),n("design:type",String)],s.prototype,"orderStatus",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:255}),n("design:type",String)],s.prototype,"iccid",void 0),r([e.Column("varchar",{name:"sku",nullable:!0,length:50}),n("design:type",String)],s.prototype,"sku",void 0),s=r([e.Entity("acumaticaOrderShipmentDetails",{schema:"nova"}),e.Index("ixAcumaticaOrderShipmentDetails_imei_shipmentDate",["imei","shipmentDate"],{})],s);let l=class{shipmentId;shipmentDate;location};r([e.PrimaryColumn("varchar",{name:"shipmentId",length:50}),n("design:type",String)],l.prototype,"shipmentId",void 0),r([e.Column("datetime",{name:"shipmentDate",nullable:!0,precision:0}),n("design:type",Date)],l.prototype,"shipmentDate",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:6}),n("design:type",String)],l.prototype,"location",void 0),l=r([e.Entity("acumaticaShipment",{schema:"nova"})],l);let d=class{shipmentId;asin};r([e.Column("varchar",{name:"shipmentId",primary:!0,length:50}),n("design:type",String)],d.prototype,"shipmentId",void 0),r([e.Column("varchar",{name:"asin",primary:!0,length:50}),n("design:type",String)],d.prototype,"asin",void 0),d=r([e.Entity("acumaticaShipmentAmazon",{schema:"nova"})],d);let u=class{id;clientId;token;createdAt;updatedAt;expiresAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],u.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],u.prototype,"clientId",void 0),r([e.Column("binary",{name:"token",length:16}),n("design:type",Buffer)],u.prototype,"token",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],u.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],u.prototype,"updatedAt",void 0),r([e.Column("datetime",{name:"expiresAt",nullable:!0}),n("design:type",Date)],u.prototype,"expiresAt",void 0),u=r([e.Index("ixuAempToken_Token",["token"],{unique:!0}),e.Entity("aempToken",{schema:"nova"})],u);class c{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 p=class{id;name;title;description;isSystem;icon;context;identifier;stage;category;key;createdAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],p.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],p.prototype,"name",void 0),r([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],p.prototype,"title",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],p.prototype,"description",void 0),r([e.Column("tinyint",{name:"isSystem",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],p.prototype,"isSystem",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],p.prototype,"icon",void 0),r([e.Column("varchar",{name:"context",nullable:!0,length:25}),n("design:type",String)],p.prototype,"context",void 0),r([e.Column("varchar",{name:"identifier",nullable:!0,length:50}),n("design:type",String)],p.prototype,"identifier",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],p.prototype,"stage",void 0),r([e.Column("varchar",{name:"category",nullable:!0,length:25}),n("design:type",String)],p.prototype,"category",void 0),r([e.Column("varchar",{name:"key",nullable:!0,length:50}),n("design:type",String)],p.prototype,"key",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],p.prototype,"createdAt",void 0),p=r([e.Index("ixAlertTypeStage",["stage"],{}),e.Entity("alertType",{schema:"nova"})],p);let m=class{id;alertTypeId;alertType;value;createdAt;userId;messageId;boundaryId;imei;sendTime;lat;lon;address;clientId;isBuffer;isNotification;gpsUtcTime;relevantAddress;gpsMessageId;cellTowerRelevantAddress;userAlertConfigurationId;clientAlertConfigurationId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],m.prototype,"id",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],m.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],m.prototype,"alertType",void 0),r([e.Column("varchar",{name:"value",nullable:!0,length:5e3}),n("design:type",String)],m.prototype,"value",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],m.prototype,"createdAt",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],m.prototype,"userId",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],m.prototype,"messageId",void 0),r([e.Column("int",{name:"boundaryId",nullable:!0}),n("design:type",Number)],m.prototype,"boundaryId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],m.prototype,"imei",void 0),r([e.Column("datetime",{name:"sendTime",precision:3}),n("design:type",Date)],m.prototype,"sendTime",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],m.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],m.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],m.prototype,"address",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],m.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"isBuffer",nullable:!0,width:1}),n("design:type",Boolean)],m.prototype,"isBuffer",void 0),r([e.Column("tinyint",{name:"isNotification",nullable:!0,width:1}),n("design:type",Boolean)],m.prototype,"isNotification",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],m.prototype,"gpsUtcTime",void 0),r([e.Column("varchar",{name:"relevantAddress",nullable:!0,length:255}),n("design:type",String)],m.prototype,"relevantAddress",void 0),r([e.Column("binary",{name:"gpsMessageId",nullable:!0,length:16}),n("design:type",Buffer)],m.prototype,"gpsMessageId",void 0),r([e.Column("varchar",{name:"cellTowerRelevantAddress",nullable:!0,length:255}),n("design:type",String)],m.prototype,"cellTowerRelevantAddress",void 0),r([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],m.prototype,"userAlertConfigurationId",void 0),r([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],m.prototype,"clientAlertConfigurationId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],m.prototype,"deleted",void 0),m=r([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"})],m);let y=class{id;name;description;statusId};var g,v,h,I,f,C,b,S,A,D,R,w,T,N,B,U,E,P,O,x,k,M,F,L,Q,q,_,W,j,z,V,G,J,H,K,$,X,Y,Z,ee,te,ie,re;r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],y.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],y.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],y.prototype,"description",void 0),r([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],y.prototype,"statusId",void 0),y=r([e.Entity("appFeatureType",{schema:"nova"})],y),function(e){e[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner"}(g||(g={})),function(e){e.Active="A",e.Deleted="D",e.Terminated="T",e.Replaced="R"}(v||(v={})),function(e){e[e.Active=1]="Active",e[e.Inactive=2]="Inactive",e[e.Deleted=3]="Deleted"}(h||(h={})),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"}(f||(f={})),function(e){e[e.b2c=1]="b2c",e[e.b2b=2]="b2b",e[e.test=3]="test",e[e.demo=4]="demo"}(C||(C={})),function(e){e.b2c="b2c",e.b2b="b2b",e.test="test",e.demo="demo"}(b||(b={})),function(e){e.Personal="personal",e.Business="business"}(S||(S={})),function(e){e[e.b2c=3]="b2c",e[e.b2b=50]="b2b"}(A||(A={})),function(e){e.ReportingFrequency="ReportingFrequency",e.Advanced="Advanced",e.Query="Query",e.General="General"}(D||(D={})),function(e){e.Active="active",e.Inactive="inactive"}(R||(R={})),function(e){e.InProgress="InProgress",e.Completed="Completed",e.Canceled="Canceled",e.Failed="Failed"}(w||(w={})),function(e){e[e.Email=1]="Email",e[e.Phone=2]="Phone"}(T||(T={})),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"}(N||(N={})),function(e){e[e.Trip=1]="Trip",e[e.Stop=2]="Stop"}(B||(B={})),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"}(U||(U={})),function(e){e.Enter="boundaryEnter",e.Exit="boundaryExit"}(E||(E={})),function(e){e.FreeService="freeService",e.Discount="discount"}(P||(P={})),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"}(M||(M={})),function(e){e.Image="image",e.Video="video"}(F||(F={})),function(e){e.Front="front",e.Interior="interior"}(L||(L={})),function(e){e.SDCard="sdCard",e.Server="server"}(Q||(Q={})),function(e){e.TakePicture="takePicture",e.TakeVideo="takeVideo",e.UploadPicture="uploadPicture",e.UploadVideo="uploadVideo"}(q||(q={})),function(e){e.Requested="requested",e.Streaming="streaming",e.Closed="closed",e.Failed="failed",e.Closing="closing"}(_||(_={})),function(e){e.shopify="shopify",e.braintree="braintree",e.acumatica="acumatica",e.klarna="klarna",e.amazon="amazon",e.braintree_amazon="braintree_amazon",e.demo="demo",e.stripe="stripe",e.stripe_amazon="stripe_amazon"}(W||(W={})),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",e.CV200="CV200",e.FMM650="FMM650",e.GL32="GL32",e.DEMO="DEMO"}(j||(j={})),function(e){e.new_activation="new_activation",e.reactivation="reactivation",e.subscription_change="subscription_change",e.resumption="resumption",e.device_swap="device_swap",e.subscription_update="subscription_update"}(z||(z={})),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"}(V||(V={})),function(e){e.Active="Active",e.Pending="Pending",e.Canceled="Canceled",e.Expired="Expired",e.PastDue="Past Due",e.Incomplete="Incomplete",e.IncompleteExpired="Incomplete Expired",e.Trialing="Trialing",e.Unpaid="Unpaid",e.Paused="Paused"}(G||(G={})),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",e.klarna_billing_failed="klarna_billing_failed",e.prepaid_recurring_pending="prepaid_recurring_pending",e.expired_subscription="expired_subscription",e.unknown_reason="unknown_reason"}(J||(J={})),function(e){e.customer="customer",e.customer_support="customer_support",e.system="system"}(H||(H={})),function(e){e[e.Pod=1]="Pod",e[e.Verizon=2]="Verizon",e[e.Kore=3]="Kore",e[e.Twilio=4]="Twilio",e[e.Unknown=99]="Unknown",e[e.None=-1]="None"}(K||(K={})),function(e){e.device_cancel="device_cancel",e.device_pause="device_pause",e.churnbuster_lost="churnbuster_lost",e.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",e.device_cancel_admin="device_cancel_admin",e.klarna_billing_failed="klarna_billing_failed",e.expired_subscription="expired_subscription",e.prepaid_recurring_pending="prepaid_recurring_pending",e.device_swap="device_swap",e.system_auto="system_auto"}($||($={})),function(e){e.device_pause_resume="device_pause_resume"}(X||(X={})),function(e){e.campaign_started="campaign_started",e.email_bounced="email_bounced",e.campaign_recovered="campaign_recovered",e.campaign_lost="campaign_lost",e.campaign_won="campaign_won"}(Y||(Y={})),function(e){e.original="original",e.calculated="calculated"}(Z||(Z={})),function(e){e.Draft="draft",e.Open="open",e.Paid="paid",e.Uncollectible="uncollectible",e.Void="void"}(ee||(ee={})),function(e){e.in_trial="in_trial",e.canceled="canceled",e.converted="converted",e.overdue="overdue"}(te||(te={})),function(e){e.prepaid_started="prepaid_started",e.prepaid_ending_soon="prepaid_ending_soon",e.prepaid_converted="prepaid_converted",e.canceled="canceled",e.overdue="overdue"}(ie||(ie={})),function(e){e.free_trial="free_trial",e.free_offer="free_offer",e.prepaid="prepaid"}(re||(re={}));var ne=Object.freeze({__proto__:null,get AvalaraBasePrice(){return Z},get BillingCampaignFreeTrialStatus(){return te},get BillingCampaignPrepaidStatus(){return ie},get BillingCampaignType(){return re},get BlacklistType(){return N},get BoundaryEventType(){return E},get BoundaryStatus(){return h},get CameraSource(){return L},get CarrierDeactivationType(){return $},get CarrierReactivationType(){return X},get Carriers(){return K},get ChurnbusterEventType(){return Y},get DataExportStatus(){return k},get DataExportType(){return x},get DeactivationCode(){return J},get DeactivationCreatedBy(){return H},get DeviceActivationSource(){return V},get DeviceBLEMeshStatus(){return O},get DeviceBehaviorStatus(){return R},get DeviceBehaviorTaskStatus(){return w},get DeviceBehaviorType(){return D},get DeviceCameraEventBehaviorType(){return q},get DeviceCameraMediaLocation(){return Q},get DeviceEventType(){return z},get DeviceModels(){return j},get DevicePlatform(){return W},get DeviceStatus(){return v},get HapnClientType(){return C},get HapnClientTypeNames(){return b},get HapnSecurityRole(){return g},get HapnUseType(){return S},get InvoiceStatus(){return ee},get M2SyncType(){return M},get MaxUsersAllowed(){return A},get MediaType(){return F},get NotificationRecipientType(){return T},get PromotionType(){return P},get StreamingStatus(){return _},get SubscriptionStatus(){return G},get TripCompletionStatus(){return U},get TripType(){return B},get UserInvitationStatus(){return f},get UserStatus(){return I}});let ae=class{imei;promotionId;promotion};r([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],ae.prototype,"imei",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],ae.prototype,"promotionId",void 0),r([e.ManyToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ae.prototype,"promotion",void 0),ae=r([e.Entity("devicePromotion",{schema:"nova"})],ae);let oe=class{deviceTypeId;promotionId;promotion};r([e.Column("smallint",{name:"deviceTypeId",primary:!0}),n("design:type",Number)],oe.prototype,"deviceTypeId",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],oe.prototype,"promotionId",void 0),r([e.ManyToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],oe.prototype,"promotion",void 0),oe=r([e.Entity("deviceTypePromotion",{schema:"nova"})],oe);let se=class{marketplaceId;promotionId;promotion};r([e.Column("varchar",{name:"marketplaceId",length:15,primary:!0}),n("design:type",String)],se.prototype,"marketplaceId",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],se.prototype,"promotionId",void 0),r([e.ManyToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],se.prototype,"promotion",void 0),se=r([e.Entity("marketplacePromotion",{schema:"nova"})],se);let le=class{id;name;description;type;discount;discountBillingCycles;freeServiceMonths;startDate;endDate;status;bannerText;trackerText;marketplacePromotions;asinPromotions;devicePromotions;deviceTypePromotions};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],le.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],le.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],le.prototype,"description",void 0),r([e.Column("enum",{name:"type",enum:Object.values(P),comment:"The type of promotion: freeService or discount."}),n("design:type",String)],le.prototype,"type",void 0),r([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)],le.prototype,"discount",void 0),r([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)],le.prototype,"discountBillingCycles",void 0),r([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)],le.prototype,"freeServiceMonths",void 0),r([e.Column("datetime",{name:"startDate",comment:"The date that the promotion will start"}),n("design:type",Date)],le.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,comment:"The date that the promotion will end"}),n("design:type",Date)],le.prototype,"endDate",void 0),r([e.Column("varchar",{name:"status",length:25,comment:"The status of the promotion: active, inactive"}),n("design:type",String)],le.prototype,"status",void 0),r([e.Column("varchar",{name:"bannerText",nullable:!0,length:255}),n("design:type",String)],le.prototype,"bannerText",void 0),r([e.Column("varchar",{name:"trackerText",nullable:!0,length:255}),n("design:type",String)],le.prototype,"trackerText",void 0),r([e.OneToMany((()=>se),(e=>e.promotion)),n("design:type",Array)],le.prototype,"marketplacePromotions",void 0),r([e.OneToMany((()=>de),(e=>e.promotion)),n("design:type",Array)],le.prototype,"asinPromotions",void 0),r([e.OneToMany((()=>ae),(e=>e.promotion)),n("design:type",Array)],le.prototype,"devicePromotions",void 0),r([e.OneToMany((()=>oe),(e=>e.promotion)),n("design:type",Array)],le.prototype,"deviceTypePromotions",void 0),le=r([e.Entity("promotion",{schema:"nova"})],le);let de=class{asin;promotionId;promotion};r([e.Column("varchar",{name:"asin",length:15,primary:!0}),n("design:type",String)],de.prototype,"asin",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],de.prototype,"promotionId",void 0),r([e.ManyToOne((()=>le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],de.prototype,"promotion",void 0),de=r([e.Entity("asinPromotion",{schema:"nova"})],de);let ue=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ue.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ue.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],ue.prototype,"description",void 0),ue=r([e.Index("ixuAssetCategoryName",["name"],{unique:!0}),e.Entity("assetCategory",{schema:"nova"})],ue);let ce=class{id;assetProfileId;assetProfile;name;value;type;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ce.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],ce.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],ce.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ce.prototype,"name",void 0),r([e.Column("varchar",{name:"value",length:50}),n("design:type",String)],ce.prototype,"value",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],ce.prototype,"type",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ce.prototype,"createdAt",void 0),ce=r([e.Index("ix_assetProfileId",["assetProfileId"],{}),e.Entity("assetProfileCustomField",{schema:"nova"})],ce);let pe=class{id;assetProfileId;assetProfile;mediaType;fileName;fileExtension;s3FilesPath;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pe.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],pe.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],pe.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"mediaType",length:15,comment:"The type of the media: image or document"}),n("design:type",String)],pe.prototype,"mediaType",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],pe.prototype,"fileName",void 0),r([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],pe.prototype,"fileExtension",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],pe.prototype,"s3FilesPath",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],pe.prototype,"createdAt",void 0),pe=r([e.Index("ixu_ix_assetProfileId_fileName",["assetProfileId","fileName"],{unique:!0}),e.Entity("assetProfileMedia",{schema:"nova"})],pe);const me={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(Buffer.isBuffer(e)){if(16!==e.length)throw new TypeError("Invalid Buffer length for UUID");return t.stringify(e)}if(e&&"object"==typeof e&&"Buffer"===e.type&&Array.isArray(e.data)){if(16!==e.data.length)throw new TypeError("Invalid Buffer length for UUID");const i=Buffer.from(e.data);return t.stringify(i)}throw new TypeError("Invalid value type for UUID: "+typeof e)}};let ye=class{id;name;description;status};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],ye.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ye.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],ye.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],ye.prototype,"status",void 0),ye=r([e.Index("ixClientTypeName",["name"],{}),e.Entity("clientType",{schema:"nova"})],ye);let ge=class{clientId;client;enterprise;maintenanceModule;billingMethod;customerSegment};r([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],ge.prototype,"clientId",void 0),r([e.OneToOne((()=>Se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ge.prototype,"client",void 0),r([e.Column("tinyint",{name:"enterprise",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ge.prototype,"enterprise",void 0),r([e.Column("tinyint",{name:"maintenanceModule",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ge.prototype,"maintenanceModule",void 0),r([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)],ge.prototype,"billingMethod",void 0),r([e.Column("enum",{enum:["whale","bass","guppy","guppy-self-serve"],name:"customerSegment",nullable:!0}),n("design:type",String)],ge.prototype,"customerSegment",void 0),ge=r([e.Entity("customerAttribute",{schema:"nova"})],ge);let ve=class{id;name;randomMovementEnabled;maxMovingDevices;devices};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ve.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],ve.prototype,"name",void 0),r([e.Column("tinyint",{name:"randomMovementEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],ve.prototype,"randomMovementEnabled",void 0),r([e.Column("smallint",{name:"maxMovingDevices",default:()=>"2"}),n("design:type",Number)],ve.prototype,"maxMovingDevices",void 0),ve=r([e.Entity("demoAccountTemplate",{schema:"nova"})],ve);let he=class{id;clientId;fileName;s3FilesPath;altText;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],he.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],he.prototype,"clientId",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],he.prototype,"fileName",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],he.prototype,"s3FilesPath",void 0),r([e.Column("varchar",{name:"altText",nullable:!0,length:100}),n("design:type",String)],he.prototype,"altText",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],he.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],he.prototype,"modifiedAt",void 0),he=r([e.Index("ixClientDeviceIcon_clientId_fileName",["clientId","fileName"],{unique:!0}),e.Entity("clientDeviceIcon",{schema:"nova"})],he);let Ie=class{id;brand;model;modelFamily;description;tags;url;name;pictureUrl;userManualUrl;notes;supported;activatable;selfActivatable;port;protocolMatch;stage;identifierType;landingPage;troubleshooting;protocol;readOnly;customerFacingModel;customerFacingName;devices};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ie.prototype,"id",void 0),r([e.Column("varchar",{name:"brand",length:50}),n("design:type",String)],Ie.prototype,"brand",void 0),r([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],Ie.prototype,"model",void 0),r([e.Column("varchar",{name:"modelFamily",length:50}),n("design:type",String)],Ie.prototype,"modelFamily",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],Ie.prototype,"description",void 0),r([e.Column("varchar",{name:"tags",nullable:!0,length:255}),n("design:type",String)],Ie.prototype,"tags",void 0),r([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],Ie.prototype,"url",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"name",void 0),r([e.Column("varchar",{name:"pictureUrl",nullable:!0,length:1e3}),n("design:type",String)],Ie.prototype,"pictureUrl",void 0),r([e.Column("varchar",{name:"userManualUrl",nullable:!0,length:1e3}),n("design:type",String)],Ie.prototype,"userManualUrl",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:2e3}),n("design:type",String)],Ie.prototype,"notes",void 0),r([e.Column("tinyint",{name:"supported",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ie.prototype,"supported",void 0),r([e.Column("tinyint",{name:"activatable",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ie.prototype,"activatable",void 0),r([e.Column("tinyint",{name:"selfActivatable",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ie.prototype,"selfActivatable",void 0),r([e.Column("smallint",{name:"port",nullable:!0}),n("design:type",Number)],Ie.prototype,"port",void 0),r([e.Column("varchar",{name:"protocolMatch",nullable:!0,length:5}),n("design:type",String)],Ie.prototype,"protocolMatch",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],Ie.prototype,"stage",void 0),r([e.Column("varchar",{name:"identifierType",length:20}),n("design:type",String)],Ie.prototype,"identifierType",void 0),r([e.Column("varchar",{name:"landingPage",nullable:!0,length:1e3}),n("design:type",String)],Ie.prototype,"landingPage",void 0),r([e.Column("varchar",{name:"troubleshooting",nullable:!0,length:1e3}),n("design:type",String)],Ie.prototype,"troubleshooting",void 0),r([e.Column("varchar",{name:"protocol",nullable:!0,length:50}),n("design:type",String)],Ie.prototype,"protocol",void 0),r([e.Column("tinyint",{name:"readOnly",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],Ie.prototype,"readOnly",void 0),r([e.Column("varchar",{name:"customerFacingModel",length:50,nullable:!0}),n("design:type",String)],Ie.prototype,"customerFacingModel",void 0),r([e.Column("varchar",{name:"customerFacingName",length:50,nullable:!0}),n("design:type",String)],Ie.prototype,"customerFacingName",void 0),r([e.OneToMany((()=>fe),(e=>e.deviceType)),n("design:type",Array)],Ie.prototype,"devices",void 0),Ie=r([e.Entity("deviceType",{schema:"nova"})],Ie);let fe=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;demoAccountTemplateDeviceId;iccidCarrier;clientDeviceSetting;securityGroupEntityTags;devicePairing;assetProfile;extendedAttributes};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fe.prototype,"id",void 0),r([e.Column("varchar",{name:"identifier",length:100}),n("design:type",String)],fe.prototype,"identifier",void 0),r([e.Column("varchar",{name:"identifierKey",length:255}),n("design:type",String)],fe.prototype,"identifierKey",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],fe.prototype,"deviceTypeId",void 0),r([e.ManyToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],fe.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],fe.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],fe.prototype,"clientId",void 0),r([e.OneToOne((()=>Se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],fe.prototype,"client",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],fe.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],fe.prototype,"name",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],fe.prototype,"status",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],fe.prototype,"iccid",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],fe.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],fe.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],fe.prototype,"modifiedBy",void 0),r([e.Column("tinyint",{name:"forward",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],fe.prototype,"forward",void 0),r([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],fe.prototype,"color",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],fe.prototype,"icon",void 0),r([e.Column("int",{name:"customIconId",nullable:!0}),n("design:type",Number)],fe.prototype,"customIconId",void 0),r([e.OneToOne((()=>he),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],fe.prototype,"customIcon",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],fe.prototype,"description",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],fe.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"assetCategoryId",nullable:!0}),n("design:type",Number)],fe.prototype,"assetCategoryId",void 0),r([e.Column("varchar",{name:"usageRegion",nullable:!0,length:25}),n("design:type",String)],fe.prototype,"usageRegion",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],fe.prototype,"btmac",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:36}),n("design:type",String)],fe.prototype,"serialNumber",void 0),r([e.Column("varchar",{name:"assignedTo",nullable:!0,length:255}),n("design:type",String)],fe.prototype,"assignedTo",void 0),r([e.Column("varchar",{name:"assignmentMode",nullable:!0,length:50}),n("design:type",String)],fe.prototype,"assignmentMode",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId",nullable:!0}),n("design:type",Number)],fe.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("json",{name:"extendedAttributes",nullable:!0}),n("design:type",Object)],fe.prototype,"extendedAttributes",void 0),fe=r([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.Index("ixDeviceSearch",["clientId","status","imei","createdAt","deviceTypeId"],{}),e.Entity("device",{schema:"nova"})],fe);let Ce=class{id;clientId;client;deviceTypeId;imei;configFileUrl;skipActivationDefaults;createdAt;po};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],Ce.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ce.prototype,"clientId",void 0),r([e.ManyToOne((()=>Se),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ce.prototype,"client",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],Ce.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ce.prototype,"imei",void 0),r([e.Column("varchar",{name:"configFileUrl",nullable:!0,length:1e3}),n("design:type",String)],Ce.prototype,"configFileUrl",void 0),r([e.Column("tinyint",{name:"skipActivationDefaults",width:1,default:0,transformer:new c}),n("design:type",Boolean)],Ce.prototype,"skipActivationDefaults",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ce.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],Ce.prototype,"po",void 0),Ce=r([e.Index("ixDeviceCustomConfigurationsClientId",["clientId"],{}),e.Entity("deviceCustomConfiguration",{schema:"nova"})],Ce);let be=class{id;name;description;websiteUrl;address;mainContact};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],be.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],be.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:500}),n("design:type",String)],be.prototype,"description",void 0),r([e.Column("varchar",{name:"websiteUrl",nullable:!0,length:1e3}),n("design:type",String)],be.prototype,"websiteUrl",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],be.prototype,"address",void 0),r([e.Column("binary",{name:"mainContact",length:16}),n("design:type",Buffer)],be.prototype,"mainContact",void 0),be=r([e.Entity("organization",{schema:"nova"})],be);let Se=class{id;name;createdAt;modifiedAt;uuid;email;modifiedBy;createdBy;dataSourceTypeId;clientTypeId;clientType;salesforceId;accumaticaId;expirationDate;useType;btCustomerId;activationCampaign;organizationId;organization;users;devices;deviceCustomConfigurations;customerAttribute;demoAccountExpirationDate;demoAccountTemplateId;demoAccountTemplate;lastIterableSyncDate;activeOrRecentlyChurned};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Se.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],Se.prototype,"name",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Se.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Se.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"uuid",nullable:!0,length:16}),n("design:type",Buffer)],Se.prototype,"uuid",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Se.prototype,"email",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"modifiedBy",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"createdBy",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Se.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"clientTypeId",default:()=>"'1'"}),n("design:type",Number)],Se.prototype,"clientTypeId",void 0),r([e.ManyToOne((()=>ye),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Se.prototype,"clientType",void 0),r([e.Column("varchar",{name:"salesforceId",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"salesforceId",void 0),r([e.Column("varchar",{name:"accumaticaId",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"accumaticaId",void 0),r([e.Column("datetime",{name:"expirationDate",nullable:!0}),n("design:type",Date)],Se.prototype,"expirationDate",void 0),r([e.Column("varchar",{name:"useType",nullable:!0,length:25}),n("design:type",String)],Se.prototype,"useType",void 0),r([e.Column("varchar",{name:"btCustomerId",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"btCustomerId",void 0),r([e.Column("varchar",{name:"activationCampaign",nullable:!0,length:50}),n("design:type",String)],Se.prototype,"activationCampaign",void 0),r([e.Column("int",{name:"organizationId",nullable:!0}),n("design:type",Number)],Se.prototype,"organizationId",void 0),r([e.OneToOne((()=>be),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Se.prototype,"organization",void 0),r([e.OneToMany((()=>xe),(e=>e.client)),n("design:type",Array)],Se.prototype,"users",void 0),r([e.OneToMany((()=>fe),(e=>e.client)),n("design:type",Array)],Se.prototype,"devices",void 0),r([e.OneToMany((()=>Ce),(e=>e.client)),n("design:type",Array)],Se.prototype,"deviceCustomConfigurations",void 0),r([e.OneToOne((()=>ge),(e=>e.client)),n("design:type",Object)],Se.prototype,"customerAttribute",void 0),r([e.Column("datetime",{name:"demoAccountExpirationDate",nullable:!0}),n("design:type",Date)],Se.prototype,"demoAccountExpirationDate",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId",nullable:!0}),n("design:type",Number)],Se.prototype,"demoAccountTemplateId",void 0),r([e.OneToOne((()=>ve),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Se.prototype,"demoAccountTemplate",void 0),r([e.Column("datetime",{name:"lastIterableSyncDate",nullable:!0}),n("design:type",Date)],Se.prototype,"lastIterableSyncDate",void 0),r([e.Column("tinyint",{name:"activeOrRecentlyChurned",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Se.prototype,"activeOrRecentlyChurned",void 0),Se=r([e.Index("ixClientClientTypeId",["clientTypeId"],{}),e.Index("ixClientCreatedAt",["createdAt"],{}),e.Index("ixClientEmail",["email"],{}),e.Index("ixClientEmailLower",{synchronize:!1}),e.Index("ixClientComposite",["id","email","accumaticaId","clientTypeId"],{}),e.Entity("client",{schema:"nova"})],Se);let Ae=class{id;name;currencies;capital;region;subregion;languages;lat;lon;borders;area;internationalDirectDialing;alpha2Code;alpha3Code};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ae.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:50}),n("design:type",String)],Ae.prototype,"name",void 0),r([e.Column("varchar",{name:"currencies",nullable:!0,length:255}),n("design:type",String)],Ae.prototype,"currencies",void 0),r([e.Column("varchar",{name:"capital",nullable:!0,length:50}),n("design:type",String)],Ae.prototype,"capital",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Ae.prototype,"region",void 0),r([e.Column("varchar",{name:"subregion",nullable:!0,length:50}),n("design:type",String)],Ae.prototype,"subregion",void 0),r([e.Column("varchar",{name:"languages",nullable:!0,length:255}),n("design:type",String)],Ae.prototype,"languages",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Ae.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Ae.prototype,"lon",void 0),r([e.Column("varchar",{name:"borders",nullable:!0,length:255}),n("design:type",String)],Ae.prototype,"borders",void 0),r([e.Column("int",{name:"area",nullable:!0}),n("design:type",Number)],Ae.prototype,"area",void 0),r([e.Column("varchar",{name:"internationalDirectDialing",nullable:!0,length:10}),n("design:type",String)],Ae.prototype,"internationalDirectDialing",void 0),r([e.Column("varchar",{name:"alpha2Code",nullable:!0,length:2}),n("design:type",String)],Ae.prototype,"alpha2Code",void 0),r([e.Column("varchar",{name:"alpha3Code",nullable:!0,length:3}),n("design:type",String)],Ae.prototype,"alpha3Code",void 0),Ae=r([e.Index("ixCountryAlpha2Code",["alpha2Code"],{}),e.Index("ixCountryName",["name"],{}),e.Entity("country",{schema:"nova"})],Ae);let De=class{id;userId;user;alertTypeId;alertType;clientId;client;email;reason;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],De.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],De.prototype,"userId",void 0),r([e.ManyToOne((()=>xe),(e=>e.userAlertComplain),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],De.prototype,"user",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],De.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],De.prototype,"alertType",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],De.prototype,"clientId",void 0),r([e.ManyToOne((()=>Se),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],De.prototype,"client",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],De.prototype,"email",void 0),r([e.Column("varchar",{name:"reason",length:25}),n("design:type",String)],De.prototype,"reason",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],De.prototype,"createdAt",void 0),De=r([e.Index("ixuUserAlertComplainUserIdAlertTypeId",["userId","alertTypeId"],{unique:!0}),e.Entity("userAlertComplain",{schema:"nova"})],De);let Re=class{id;clientAlertConfigurationId;clientAlertConfiguration;userId;roleId;isEnabled;smsNotification;emailNotification;appNotification;pushNotification};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Re.prototype,"id",void 0),r([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],Re.prototype,"clientAlertConfigurationId",void 0),r([e.ManyToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],Re.prototype,"clientAlertConfiguration",void 0),r([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],Re.prototype,"userId",void 0),r([e.Column("tinyint",{name:"roleId",nullable:!0}),n("design:type",Number)],Re.prototype,"roleId",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Re.prototype,"isEnabled",void 0),r([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Re.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Re.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Re.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Re.prototype,"pushNotification",void 0),Re=r([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Entity("clientAlertRecipient",{schema:"nova"})],Re);let we=class{id;clientId;alertTypeId;name;description;status;alertValue;alertMetadata;filter;readOnly;createdAt;createdBy;modifiedBy;internalRecipients;externalRecipients};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],we.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],we.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],we.prototype,"alertTypeId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],we.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],we.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],we.prototype,"status",void 0),r([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],we.prototype,"alertValue",void 0),r([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],we.prototype,"alertMetadata",void 0),r([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],we.prototype,"filter",void 0),r([e.Column("tinyint",{name:"readOnly",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],we.prototype,"readOnly",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],we.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],we.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],we.prototype,"modifiedBy",void 0),r([e.OneToMany((()=>Re),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],we.prototype,"internalRecipients",void 0),r([e.OneToMany((()=>Te),(e=>e.clientAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"clientAlertConfigurationId"}),n("design:type",Array)],we.prototype,"externalRecipients",void 0),we=r([e.Index("ixClientAlertConfigurationClientIdAlertTypeId",["clientId","alertTypeId"],{unique:!1}),e.Index("ixClientAlertConfigurationClientIdCreatedAt",["clientId","createdAt"],{unique:!1}),e.Entity("clientAlertConfiguration",{schema:"nova"})],we);let Te=class{id;clientId;notificationType;recipient;isEnabled;isUserProfile;createdAt;modifiedAt;dataSourceTypeId;unsubscribed;unsubscribedInfo;userId;userAlertConfigurationId;userAlertConfiguration;clientAlertConfigurationId;clientAlertConfiguration};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Te.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Te.prototype,"clientId",void 0),r([e.Column("tinyint",{name:"notificationType"}),n("design:type",Number)],Te.prototype,"notificationType",void 0),r([e.Column("varchar",{name:"recipient",length:100}),n("design:type",String)],Te.prototype,"recipient",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c}),n("design:type",Boolean)],Te.prototype,"isEnabled",void 0),r([e.Column("tinyint",{name:"isUserProfile",width:1,transformer:new c}),n("design:type",Boolean)],Te.prototype,"isUserProfile",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Te.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Te.prototype,"modifiedAt",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Te.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"unsubscribed",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Te.prototype,"unsubscribed",void 0),r([e.Column("varchar",{name:"unsubscribedInfo",nullable:!0,length:256}),n("design:type",String)],Te.prototype,"unsubscribedInfo",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],Te.prototype,"userId",void 0),r([e.Column("int",{name:"userAlertConfigurationId",nullable:!0}),n("design:type",Number)],Te.prototype,"userAlertConfigurationId",void 0),r([e.ManyToOne((()=>Ne),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"userAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],Te.prototype,"userAlertConfiguration",void 0),r([e.Column("int",{name:"clientAlertConfigurationId",nullable:!0}),n("design:type",Number)],Te.prototype,"clientAlertConfigurationId",void 0),r([e.ManyToOne((()=>we),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"clientAlertConfigurationId",referencedColumnName:"id"}]),n("design:type",Object)],Te.prototype,"clientAlertConfiguration",void 0),Te=r([e.Index("ixuNotificationRecipientClientIdRecipientUserId",["clientId","recipient","userId"],{unique:!0}),e.Index("ixNotificationRecipientClientId",["clientId"],{}),e.Index("ixNotificationRecipientUserId",["userId"],{}),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"})],Te);let Ne=class{id;userId;user;smsNotification;emailNotification;alertTypeId;alertType;alertValue;appNotification;dataSourceTypeId;pushNotification;alertMetadata;filter;enabled;createdBy;name;notificationRecipients};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ne.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ne.prototype,"userId",void 0),r([e.ManyToOne((()=>xe),(e=>e.userAlertConfiguration),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Ne.prototype,"user",void 0),r([e.Column("tinyint",{name:"smsNotification",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ne.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],Ne.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"alertTypeId"}),n("design:type",Number)],Ne.prototype,"alertTypeId",void 0),r([e.OneToOne((()=>p),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Ne.prototype,"alertType",void 0),r([e.Column("varchar",{name:"alertValue",nullable:!0,length:10}),n("design:type",String)],Ne.prototype,"alertValue",void 0),r([e.Column("tinyint",{name:"appNotification",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ne.prototype,"dataSourceTypeId",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"pushNotification",void 0),r([e.Column("varchar",{name:"alertMetadata",nullable:!0,length:255}),n("design:type",String)],Ne.prototype,"alertMetadata",void 0),r([e.Column("json",{name:"filter",nullable:!0}),n("design:type",Object)],Ne.prototype,"filter",void 0),r([e.Column("tinyint",{name:"enabled",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ne.prototype,"enabled",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Ne.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],Ne.prototype,"name",void 0),r([e.OneToMany((()=>Te),(e=>e.userAlertConfiguration)),e.JoinColumn({name:"id",referencedColumnName:"userAlertConfigurationId"}),n("design:type",Array)],Ne.prototype,"notificationRecipients",void 0),Ne=r([e.Index("ixUserAlertConfigurationUserIdAlertTypeId",["userId","alertTypeId"],{unique:!1}),e.Entity("userAlertConfiguration",{schema:"nova"})],Ne);let Be=class{id;clientAlertConfigurationId;userId;user;smsNotification;emailNotification;appNotification;pushNotification};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Be.prototype,"id",void 0),r([e.Column("int",{name:"clientAlertConfigurationId"}),n("design:type",Number)],Be.prototype,"clientAlertConfigurationId",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Be.prototype,"userId",void 0),r([e.ManyToOne((()=>xe),(e=>e.clientAlertNotificationOverride),{createForeignKeyConstraints:!1,nullable:!1}),n("design:type",Object)],Be.prototype,"user",void 0),r([e.Column("tinyint",{name:"smsNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Be.prototype,"smsNotification",void 0),r([e.Column("tinyint",{name:"emailNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Be.prototype,"emailNotification",void 0),r([e.Column("tinyint",{name:"appNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Be.prototype,"appNotification",void 0),r([e.Column("tinyint",{name:"pushNotification",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Be.prototype,"pushNotification",void 0),Be=r([e.Index("ixClientAlertConfigurationId",["clientAlertConfigurationId"],{unique:!1}),e.Index("ixUserId",["userId"],{unique:!1}),e.Index("ixUserIdClientAlertConfigurationId",["userId","clientAlertConfigurationId"],{unique:!0}),e.Entity("userAlertNotificationsConfig",{schema:"nova"})],Be);let Ue=class{id;userId;user;isMetric;timezone;createdAt;modifiedAt;defaultMapLayer;speedUnits;distanceUnits;alertsNotificationsOn;dataSourceTypeId;homepage;temperatureUnits;addressFormat;assetProfileStatusLabelsEnabled;trackerClusteringEnabled};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ue.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Ue.prototype,"userId",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ue.prototype,"user",void 0),r([e.Column("tinyint",{name:"isMetric",width:1,transformer:new c}),n("design:type",Boolean)],Ue.prototype,"isMetric",void 0),r([e.Column("varchar",{name:"timezone",nullable:!0,length:255,default:()=>"'EST'"}),n("design:type",String)],Ue.prototype,"timezone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ue.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ue.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"defaultMapLayer",nullable:!0,length:25}),n("design:type",String)],Ue.prototype,"defaultMapLayer",void 0),r([e.Column("varchar",{name:"speedUnits",nullable:!0,length:10}),n("design:type",String)],Ue.prototype,"speedUnits",void 0),r([e.Column("varchar",{name:"distanceUnits",nullable:!0,length:10}),n("design:type",String)],Ue.prototype,"distanceUnits",void 0),r([e.Column("tinyint",{name:"alertsNotificationsOn",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],Ue.prototype,"alertsNotificationsOn",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],Ue.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"homepage",nullable:!0,length:50}),n("design:type",String)],Ue.prototype,"homepage",void 0),r([e.Column("varchar",{name:"temperatureUnits",nullable:!0,length:10}),n("design:type",String)],Ue.prototype,"temperatureUnits",void 0),r([e.Column("varchar",{name:"addressFormat",nullable:!0,length:100}),n("design:type",String)],Ue.prototype,"addressFormat",void 0),r([e.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Ue.prototype,"assetProfileStatusLabelsEnabled",void 0),r([e.Column("tinyint",{name:"trackerClusteringEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Ue.prototype,"trackerClusteringEnabled",void 0),Ue=r([e.Index("ixUserConfigurationUserId",["userId"],{}),e.Entity("userConfiguration",{schema:"nova"})],Ue);let Ee=class{id;key;name;description;ordinalPosition;userSecurityRoles};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Ee.prototype,"id",void 0),r([e.Column("varchar",{name:"key",length:25}),n("design:type",String)],Ee.prototype,"key",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ee.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],Ee.prototype,"description",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Ee.prototype,"ordinalPosition",void 0),r([e.OneToMany((()=>Oe),(e=>e.securityRole),{createForeignKeyConstraints:!1}),n("design:type",Array)],Ee.prototype,"userSecurityRoles",void 0),Ee=r([e.Entity("securityRole",{schema:"nova"})],Ee);const Pe=["full","limited"];let Oe=class{clientId;userId;user;securityRole;securityRoleId;devicesAccess;boundariesAccess;minAccessDate;tasksAccess;devicesAccessNew;customSecurityRoleId;customSecurityRole};r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Oe.prototype,"clientId",void 0),r([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],Oe.prototype,"userId",void 0),r([e.ManyToOne((()=>xe),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Oe.prototype,"user",void 0),r([e.ManyToOne((()=>Ee),(e=>e.userSecurityRoles),{createForeignKeyConstraints:!1}),n("design:type",Object)],Oe.prototype,"securityRole",void 0),r([e.Column("tinyint",{primary:!0,name:"securityRoleId"}),n("design:type",Number)],Oe.prototype,"securityRoleId",void 0),r([e.Column("enum",{name:"access",enum:Pe,default:"full"}),n("design:type",String)],Oe.prototype,"devicesAccess",void 0),r([e.Column("enum",{name:"boundariesAccess",enum:Pe,default:"full"}),n("design:type",String)],Oe.prototype,"boundariesAccess",void 0),r([e.Column("datetime",{name:"minAccessDate",nullable:!0,precision:0}),n("design:type",Date)],Oe.prototype,"minAccessDate",void 0),r([e.Column("enum",{name:"tasksAccess",enum:["full","can_complete","read_only","no_access"],default:"full"}),n("design:type",String)],Oe.prototype,"tasksAccess",void 0),r([e.Column("enum",{name:"devicesAccess",enum:Pe,default:"full"}),n("design:type",String)],Oe.prototype,"devicesAccessNew",void 0),r([e.Column("int",{name:"customSecurityRoleId",nullable:!0}),n("design:type",Number)],Oe.prototype,"customSecurityRoleId",void 0),Oe=r([e.Index("ixUserSecurityRoleClientId",["clientId"],{}),e.Index("ixUserSecurityRoleSecurityRoleId",["securityRoleId"],{}),e.Index("ixUserSecurityRoleUserId",["userId"],{}),e.Index("ixUserSecurityRoleClientIdAccessUserId",["clientId","devicesAccess","userId"],{}),e.Entity("userSecurityRole",{schema:"nova"})],Oe);let xe=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;userAgreementAcceptedAt;userConfiguration;userAlertConfiguration;clientAlertNotificationOverride;userAlertComplain;userSecurityRoles;securityGroupEntityTags;fullPhoneNumber};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],xe.prototype,"id",void 0),r([e.Column("int",{name:"numberId",nullable:!0,unique:!0}),e.Generated("increment"),n("design:type",Number)],xe.prototype,"numberId",void 0),r([e.Column("varchar",{name:"firstName",length:100}),n("design:type",String)],xe.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",length:100}),n("design:type",String)],xe.prototype,"lastName",void 0),r([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],xe.prototype,"companyName",void 0),r([e.Column("varchar",{name:"telephone",nullable:!0,length:20}),n("design:type",String)],xe.prototype,"telephone",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],xe.prototype,"street",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],xe.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],xe.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],xe.prototype,"region",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],xe.prototype,"email",void 0),r([e.Column("varchar",{name:"userName",length:255}),n("design:type",String)],xe.prototype,"userName",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],xe.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],xe.prototype,"modifiedAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],xe.prototype,"status",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],xe.prototype,"clientId",void 0),r([e.ManyToOne((()=>Se),(e=>e.users),{createForeignKeyConstraints:!1}),n("design:type",Object)],xe.prototype,"client",void 0),r([e.Column("varchar",{name:"pincode",nullable:!0,length:20}),n("design:type",String)],xe.prototype,"pincode",void 0),r([e.Column("tinyint",{name:"isAdmin",width:1,transformer:new c}),n("design:type",Boolean)],xe.prototype,"isAdmin",void 0),r([e.Column("smallint",{name:"countryId",nullable:!0}),n("design:type",Number)],xe.prototype,"countryId",void 0),r([e.OneToOne((()=>Ae),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"country",void 0),r([e.Column("smallint",{name:"telephoneCountryId",nullable:!0}),n("design:type",Number)],xe.prototype,"telephoneCountryId",void 0),r([e.OneToOne((()=>Ae),(e=>e.id),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],xe.prototype,"telephoneCountry",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],xe.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"preferredUserName",nullable:!0,length:255}),n("design:type",String)],xe.prototype,"preferredUserName",void 0),r([e.Column("datetime",{name:"lastLoginAt",nullable:!0}),n("design:type",Date)],xe.prototype,"lastLoginAt",void 0),r([e.Column("tinyint",{name:"emailVerified",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],xe.prototype,"emailVerified",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],xe.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],xe.prototype,"lon",void 0),r([e.Column("datetime",{name:"userAgreementAcceptedAt",nullable:!0}),n("design:type",Date)],xe.prototype,"userAgreementAcceptedAt",void 0),r([e.OneToOne((()=>Ue),(e=>e.user)),n("design:type",Object)],xe.prototype,"userConfiguration",void 0),r([e.OneToMany((()=>Ne),(e=>e.user)),n("design:type",Array)],xe.prototype,"userAlertConfiguration",void 0),r([e.OneToMany((()=>Be),(e=>e.user)),n("design:type",Array)],xe.prototype,"clientAlertNotificationOverride",void 0),r([e.OneToMany((()=>De),(e=>e.user)),n("design:type",Array)],xe.prototype,"userAlertComplain",void 0),r([e.OneToMany((()=>Oe),(e=>e.user),{createForeignKeyConstraints:!1}),n("design:type",Array)],xe.prototype,"userSecurityRoles",void 0),r([e.Column("varchar",{name:"fullPhoneNumber",nullable:!0,length:20}),n("design:type",String)],xe.prototype,"fullPhoneNumber",void 0),xe=r([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"})],xe);let ke=class{id;assetProfileId;assetProfile;note;userId;user;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ke.prototype,"id",void 0),r([e.Column("int",{name:"assetProfileId"}),n("design:type",Number)],ke.prototype,"assetProfileId",void 0),r([e.OneToOne((()=>Le),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"assetProfileId",referencedColumnName:"id"}),n("design:type",Object)],ke.prototype,"assetProfile",void 0),r([e.Column("varchar",{name:"note",length:255}),n("design:type",String)],ke.prototype,"note",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:me}),n("design:type",String)],ke.prototype,"userId",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ke.prototype,"user",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ke.prototype,"createdAt",void 0),ke=r([e.Index("ix_assetProfileId",["assetProfileId"],{}),e.Entity("assetProfileNote",{schema:"nova"})],ke);let Me=class{id;name;assetProfileTypes};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Me.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Me.prototype,"name",void 0),r([e.OneToMany((()=>Fe),(e=>e.assetProfileCategory)),n("design:type",Array)],Me.prototype,"assetProfileTypes",void 0),Me=r([e.Index("ixuAssetProfileCategoryName",["name"],{unique:!0}),e.Entity("assetProfileCategory",{schema:"nova"})],Me);let Fe=class{id;name;assetProfileCategoryId;assetProfileCategory;clientId};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Fe.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Fe.prototype,"name",void 0),r([e.Column("tinyint",{name:"assetProfileCategoryId"}),n("design:type",Number)],Fe.prototype,"assetProfileCategoryId",void 0),r([e.OneToOne((()=>Me),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Fe.prototype,"assetProfileCategory",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Fe.prototype,"clientId",void 0),Fe=r([e.Index("ixu_assetProfileCategoryId_name_clientId",["assetProfileCategoryId","name","clientId"],{unique:!0}),e.Entity("assetProfileType",{schema:"nova"})],Fe);let Le=class{id;deviceId;name;clientId;device;assetProfileTypeId;assetProfileType;make;model;serialNumber;year;status;createdAt;modifiedAt;medias;notes;customFields;customStatus};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Le.prototype,"id",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Le.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"name",length:50,nullable:!0}),n("design:type",String)],Le.prototype,"name",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Le.prototype,"clientId",void 0),r([e.OneToOne((()=>fe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Le.prototype,"device",void 0),r([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Le.prototype,"assetProfileTypeId",void 0),r([e.OneToOne((()=>Fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Le.prototype,"assetProfileType",void 0),r([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"make",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"model",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Le.prototype,"serialNumber",void 0),r([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Le.prototype,"year",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Le.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Le.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Le.prototype,"modifiedAt",void 0),r([e.OneToMany((()=>pe),(e=>e.assetProfile)),n("design:type",Array)],Le.prototype,"medias",void 0),r([e.OneToMany((()=>ke),(e=>e.assetProfile)),n("design:type",Array)],Le.prototype,"notes",void 0),r([e.OneToMany((()=>ce),(e=>e.assetProfile)),n("design:type",Array)],Le.prototype,"customFields",void 0),Le=r([e.Index("ix_clientId",["clientId"],{}),e.Index("ix_deviceId",["deviceId"],{unique:!0}),e.Entity("assetProfile",{schema:"nova"})],Le);let Qe=class{id;clientId;status;label;description;color};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Qe.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Qe.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:50}),n("design:type",String)],Qe.prototype,"status",void 0),r([e.Column("varchar",{name:"label",length:50}),n("design:type",String)],Qe.prototype,"label",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Qe.prototype,"description",void 0),r([e.Column("varchar",{name:"color",length:25}),n("design:type",String)],Qe.prototype,"color",void 0),Qe=r([e.Entity("assetProfileCustomStatus",{schema:"nova"}),e.Index("ix_clientId_status",["clientId","status"],{unique:!0})],Qe);class qe{to(e){return e||null}from(e){return e?new Date(e):null}}let _e=class{id;clientId;fileName;expirationDate;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],_e.prototype,"id",void 0),r([e.Column("int",{name:"clientId",unique:!0}),n("design:type",Number)],_e.prototype,"clientId",void 0),r([e.Column("varchar",{name:"fileName",length:1e3}),n("design:type",String)],_e.prototype,"fileName",void 0),r([e.Column("date",{name:"expirationDate",transformer:new qe}),n("design:type",Date)],_e.prototype,"expirationDate",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],_e.prototype,"createdAt",void 0),_e=r([e.Index("ixAvalaraExemptCertClientId",["clientId"],{unique:!0}),e.Entity("avalaraExemptCert",{schema:"nova"})],_e);let We=class{id;subscriptionId;planId;priceIncrease;priceDecrease;status;basePrice;attempts;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],We.prototype,"id",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],We.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:256}),n("design:type",String)],We.prototype,"planId",void 0),r([e.Column("decimal",{name:"priceIncrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"priceIncrease",void 0),r([e.Column("decimal",{name:"priceDecrease",nullable:!0,precision:19,scale:4}),n("design:type",Number)],We.prototype,"priceDecrease",void 0),r([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],We.prototype,"status",void 0),r([e.Column("enum",{enum:["original","calculated"],name:"basePrice",nullable:!0}),n("design:type",String)],We.prototype,"basePrice",void 0),r([e.Column("tinyint",{name:"attempts",default:()=>"'0'"}),n("design:type",Number)],We.prototype,"attempts",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],We.prototype,"createdAt",void 0),We=r([e.Index("ixAvalaraQueueSubscriptionId",["subscriptionId"]),e.Entity("avalaraQueue",{schema:"nova"})],We);let je=class{id;clientId;deviceId;bleMeshId;status;createdAt;modifiedAt;device;bleMesh};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],je.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],je.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],je.prototype,"deviceId",void 0),r([e.Column("int",{name:"bleMeshId"}),n("design:type",Number)],je.prototype,"bleMeshId",void 0),r([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],je.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],je.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],je.prototype,"modifiedAt",void 0),r([e.OneToOne((()=>fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],je.prototype,"device",void 0),r([e.OneToOne((()=>ze),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],je.prototype,"bleMesh",void 0),je=r([e.Index("ixDeviceBleMesh_clientId",["clientId"],{}),e.Index("ixuDeviceBleMesh_deviceId",["deviceId"],{unique:!0}),e.Entity("deviceBleMesh",{schema:"nova"})],je);let ze=class{id;clientId;name;address;lat;lon;createdAt;modifiedAt;beacons;devices};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ze.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ze.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:150}),n("design:type",String)],ze.prototype,"name",void 0),r([e.Column("varchar",{name:"address",length:500}),n("design:type",String)],ze.prototype,"address",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ze.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ze.prototype,"lon",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ze.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ze.prototype,"modifiedAt",void 0),r([e.OneToMany((()=>Ve),(e=>e.bleMesh)),n("design:type",Array)],ze.prototype,"beacons",void 0),r([e.OneToMany((()=>je),(e=>e.bleMesh)),n("design:type",Array)],ze.prototype,"devices",void 0),ze=r([e.Index("ixBLEMesh_clientId",["clientId"],{}),e.Entity("bleMesh",{schema:"nova"})],ze);let Ve=class{id;clientId;name;bleMac;bleMeshId;createdAt;bleMesh};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ve.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ve.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:250,nullable:!0}),n("design:type",String)],Ve.prototype,"name",void 0),r([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],Ve.prototype,"bleMac",void 0),r([e.Column("int",{name:"bleMeshId",nullable:!0}),n("design:type",Number)],Ve.prototype,"bleMeshId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ve.prototype,"createdAt",void 0),r([e.OneToOne((()=>ze),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Ve.prototype,"bleMesh",void 0),Ve=r([e.Index("ixBeaconMesh_clientId",["clientId"],{}),e.Index("ixuBeaconMesh_bleMac",["bleMac"],{unique:!0}),e.Entity("beaconBleMesh",{schema:"nova"})],Ve);let Ge=class{id;name;description;billingFrequencyMonths;price;trialPeriod;discount;platform;planGroup;gracePeriod;status;platformPrice;servicePlan;contractLengthMonths};r([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Ge.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ge.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],Ge.prototype,"description",void 0),r([e.Column("tinyint",{name:"billingFrequencyMonths"}),n("design:type",Number)],Ge.prototype,"billingFrequencyMonths",void 0),r([e.Column("float",{name:"price"}),n("design:type",Number)],Ge.prototype,"price",void 0),r([e.Column("varchar",{name:"trialPeriod",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"trialPeriod",void 0),r([e.Column("float",{name:"discount",nullable:!0}),n("design:type",Number)],Ge.prototype,"discount",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"platform",void 0),r([e.Column("varchar",{name:"planGroup",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"planGroup",void 0),r([e.Column("varchar",{name:"gracePeriod",nullable:!0,length:25}),n("design:type",String)],Ge.prototype,"gracePeriod",void 0),r([e.Column("char",{name:"status",length:1}),n("design:type",String)],Ge.prototype,"status",void 0),r([e.Column("float",{name:"platformPrice",nullable:!0}),n("design:type",Number)],Ge.prototype,"platformPrice",void 0),r([e.Column("varchar",{name:"servicePlan",nullable:!0,length:10}),n("design:type",String)],Ge.prototype,"servicePlan",void 0),r([e.Column("tinyint",{name:"contractLengthMonths"}),n("design:type",Number)],Ge.prototype,"contractLengthMonths",void 0),Ge=r([e.Index("ixPlanComposite",["id"],{}),e.Entity("plan",{schema:"nova"})],Ge);let Je=class{id;deviceId;imei;planId;plan;subscriptionId;platform;status;createdAt;updatedAt;subscriptionValue;subscriptionPeriodMonths;subscriptionValueMonthly;clientId;client};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Je.prototype,"id",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Je.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Je.prototype,"imei",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"planId",void 0),r([e.OneToOne((()=>Ge),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Je.prototype,"plan",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Je.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Je.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],Je.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Je.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Je.prototype,"updatedAt",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"subscriptionValue",void 0),r([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],Je.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("decimal",{name:"subscriptionValueMonthly",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Je.prototype,"subscriptionValueMonthly",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Je.prototype,"clientId",void 0),r([e.OneToOne((()=>Se),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],Je.prototype,"client",void 0),Je=r([e.Index("ixuBillingImei",["imei"],{unique:!0}),e.Index("ixBillingClientId",["clientId"],{}),e.Index("ixBillingPlanId",["planId"],{}),e.Index("ixBillingSubscriptionId",["subscriptionId"],{}),e.Index("ixBillingComposite",["imei","subscriptionId","platform","status","planId"],{}),e.Entity("billing",{schema:"nova"})],Je);let He=class{id;type;enabled;startAt;endAt;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],He.prototype,"id",void 0),r([e.Column("varchar",{name:"type",length:64}),n("design:type",String)],He.prototype,"type",void 0),r([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],He.prototype,"enabled",void 0),r([e.Column("datetime",{name:"startAt",nullable:!0}),n("design:type",Date)],He.prototype,"startAt",void 0),r([e.Column("datetime",{name:"endAt",nullable:!0}),n("design:type",Date)],He.prototype,"endAt",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],He.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],He.prototype,"updatedAt",void 0),He=r([e.Index("ixuBillingCampaignType",["type"],{unique:!0}),e.Entity("billingCampaign",{schema:"nova"})],He);let Ke=class{id;offerId;subscriptionId;email;imei;status;trialLengthHours;trialStartAt;trialEndAt;convertedAt;canceledAt;reminderSent;modalShown;retryAttemptCount;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ke.prototype,"id",void 0),r([e.Column("int",{name:"offerId"}),n("design:type",Number)],Ke.prototype,"offerId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],Ke.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Ke.prototype,"email",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:64}),n("design:type",String)],Ke.prototype,"imei",void 0),r([e.Column("enum",{enum:["in_trial","canceled","converted","overdue"],name:"status",nullable:!0}),n("design:type",String)],Ke.prototype,"status",void 0),r([e.Column("int",{name:"trialLengthHours",nullable:!0}),n("design:type",Number)],Ke.prototype,"trialLengthHours",void 0),r([e.Column("datetime",{name:"trialStartAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"trialStartAt",void 0),r([e.Column("datetime",{name:"trialEndAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"trialEndAt",void 0),r([e.Column("datetime",{name:"convertedAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"convertedAt",void 0),r([e.Column("datetime",{name:"canceledAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"canceledAt",void 0),r([e.Column("tinyint",{name:"reminderSent",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Ke.prototype,"reminderSent",void 0),r([e.Column("tinyint",{name:"modalShown",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Ke.prototype,"modalShown",void 0),r([e.Column("int",{name:"retryAttemptCount",default:()=>"'0'"}),n("design:type",Number)],Ke.prototype,"retryAttemptCount",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Ke.prototype,"updatedAt",void 0),Ke=r([e.Index("ixBillingCampaignFreeTrialImei",["imei"]),e.Index("ixBillingCampaignFreeTrialEmail",["email"]),e.Index("ixBillingCampaignFreeTrialStatusTrialEndAt",["status","trialEndAt"],{}),e.Index("ixBillingCampaignFreeTrialOfferId",["offerId"],{}),e.Index("ixBillingCampaignFreeTrialCreatedAt",["createdAt"],{}),e.Entity("billingCampaignFreeTrial",{schema:"nova"})],Ke);let $e=class{clientId;firstName;lastName;email;streetAddress;city;region;country;postalCode;phone;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],$e.prototype,"clientId",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],$e.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],$e.prototype,"lastName",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],$e.prototype,"email",void 0),r([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],$e.prototype,"streetAddress",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],$e.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],$e.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],$e.prototype,"createdAt",void 0),$e=r([e.Index("ixBillingCustomerAmazonEmail",["email"],{}),e.Index("ixBillingCustomerAmazonClientId",["clientId"],{}),e.Entity("billingCustomerAmazon",{schema:"nova"})],$e);let Xe=class{id;firstName;lastName;company;email;phone;createdAt;updatedAt;churnStatus};r([e.Column("varchar",{primary:!0,name:"id",length:50}),n("design:type",String)],Xe.prototype,"id",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"lastName",void 0),r([e.Column("varchar",{name:"company",nullable:!0,length:100}),n("design:type",String)],Xe.prototype,"company",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Xe.prototype,"email",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:150}),n("design:type",String)],Xe.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Xe.prototype,"updatedAt",void 0),r([e.Column("varchar",{name:"churnStatus",nullable:!0,length:50}),n("design:type",String)],Xe.prototype,"churnStatus",void 0),Xe=r([e.Index("ixBillingCustomerBraintreeEmail",["email"],{}),e.Entity("billingCustomerBraintree",{schema:"nova"})],Xe);let Ye=class{id;name;email;phone;street;city;region;country;postalCode;createdAt;updatedAt;hasMigratedExpiredCard};r([e.PrimaryColumn("varchar",{name:"id",length:50}),n("design:type",String)],Ye.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:100}),n("design:type",String)],Ye.prototype,"name",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Ye.prototype,"email",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],Ye.prototype,"phone",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Ye.prototype,"street",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],Ye.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],Ye.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],Ye.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:30}),n("design:type",String)],Ye.prototype,"postalCode",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ye.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],Ye.prototype,"updatedAt",void 0),r([e.Column("tinyint",{name:"hasMigratedExpiredCard",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Ye.prototype,"hasMigratedExpiredCard",void 0),Ye=r([e.Index("ixBillingCustomerStripeEmail",["email"],{}),e.Entity("billingCustomerStripe",{schema:"nova"})],Ye);let Ze=class{id;clientId;deviceId;imei;planId;subscriptionId;platform;status;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ze.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ze.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId",nullable:!0}),n("design:type",Number)],Ze.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ze.prototype,"imei",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ze.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Ze.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ze.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ze.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ze.prototype,"createdAt",void 0),Ze=r([e.Entity("billingDeviceHistory",{schema:"nova"})],Ze);let et=class{planId;targetCustomer;code;status;platform;billingFrequency;contractLength;description;name;price;startDate;endDate;createdAt;updatedAt};r([e.PrimaryColumn({type:"varchar",name:"planId",length:50}),n("design:type",String)],et.prototype,"planId",void 0),r([e.Column("varchar",{name:"targetCustomer",length:20}),n("design:type",String)],et.prototype,"targetCustomer",void 0),r([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],et.prototype,"code",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],et.prototype,"status",void 0),r([e.Column("varchar",{name:"platform",length:255}),n("design:type",String)],et.prototype,"platform",void 0),r([e.Column("smallint",{name:"billingFrequency"}),n("design:type",Number)],et.prototype,"billingFrequency",void 0),r([e.Column("smallint",{name:"contractLength"}),n("design:type",Number)],et.prototype,"contractLength",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],et.prototype,"description",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],et.prototype,"name",void 0),r([e.Column("varchar",{name:"price",length:50}),n("design:type",String)],et.prototype,"price",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0,precision:0}),n("design:type",Date)],et.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,precision:0}),n("design:type",Date)],et.prototype,"endDate",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],et.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",precision:0}),n("design:type",Date)],et.prototype,"updatedAt",void 0),et=r([e.Index("ixBillingPlansPlanId",["planId"],{}),e.Index("ixBillingPlansStatus",["status"],{}),e.Index("ixBillingPlansTargetCustomer",["targetCustomer"],{}),e.Index("ixBillingPlansStartDate_EndDate",["startDate","endDate"],{}),e.Entity("billingPlans",{schema:"nova"})],et);let tt=class{id;deviceTypeId;planId;deviceTypeModel;deviceType;createdAt;status;billingPlans};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],tt.prototype,"id",void 0),r([e.Column("int",{name:"deviceTypeId"}),n("design:type",Number)],tt.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],tt.prototype,"planId",void 0),r([e.Column("varchar",{name:"deviceTypeModel",length:50}),n("design:type",String)],tt.prototype,"deviceTypeModel",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],tt.prototype,"deviceType",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],tt.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],tt.prototype,"status",void 0),r([e.ManyToOne((()=>et),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"planId",referencedColumnName:"planId"}),n("design:type",Object)],tt.prototype,"billingPlans",void 0),tt=r([e.Index("ixBillingDeviceTypePlanDeviceTypeId",["deviceTypeId"],{}),e.Index("ixBillingDeviceTypePlanStatus",["status"],{}),e.Index("ixBillingDeviceTypePlanPlanId",["planId"],{}),e.Index("ixBillingDeviceTypePlanDeviceTypeModel",["deviceTypeModel"],{}),e.Entity("billingDeviceTypePlan",{schema:"nova"})],tt);const it=[W.shopify,W.braintree,W.acumatica,W.klarna,W.amazon,W.braintree_amazon,W.demo,W.stripe,W.stripe_amazon],rt=[Y.campaign_started,Y.email_bounced,Y.campaign_recovered,Y.campaign_lost,Y.campaign_won];let nt=class{subscriptionId;customerId;email;platform;eventType;churnBusterId;captureUrl;createdAt;updatedAt};r([e.PrimaryColumn("varchar",{name:"subscriptionId",length:100}),n("design:type",String)],nt.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",length:100}),n("design:type",String)],nt.prototype,"customerId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],nt.prototype,"email",void 0),r([e.Column("enum",{name:"platform",enum:it}),n("design:type",String)],nt.prototype,"platform",void 0),r([e.Column("enum",{name:"eventType",enum:rt}),n("design:type",String)],nt.prototype,"eventType",void 0),r([e.Column("varchar",{name:"churnBusterId",length:255}),n("design:type",String)],nt.prototype,"churnBusterId",void 0),r([e.Column("varchar",{name:"captureUrl",length:1e3}),n("design:type",String)],nt.prototype,"captureUrl",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],nt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0,precision:0}),n("design:type",Date)],nt.prototype,"updatedAt",void 0),nt=r([e.Index("ixBillingDunningCustomerId",["customerId"],{}),e.Index("ixBillingDunningEventType",["subscriptionId","eventType"],{}),e.Entity("billingDunning",{schema:"nova"})],nt);let at=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],at.prototype,"id",void 0),r([e.Column("varchar",{name:"owner",nullable:!0,length:50}),n("design:type",String)],at.prototype,"owner",void 0),r([e.Column("decimal",{name:"amountPaid",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"amountPaid",void 0),r([e.Column("varchar",{name:"bankOfIssuer",nullable:!0,length:50}),n("design:type",String)],at.prototype,"bankOfIssuer",void 0),r([e.Column("varchar",{name:"billingAddress",nullable:!0,length:255}),n("design:type",String)],at.prototype,"billingAddress",void 0),r([e.Column("varchar",{name:"billingAddressCity",nullable:!0,length:50}),n("design:type",String)],at.prototype,"billingAddressCity",void 0),r([e.Column("varchar",{name:"billingAddressCountry",nullable:!0,length:3}),n("design:type",String)],at.prototype,"billingAddressCountry",void 0),r([e.Column("varchar",{name:"billingAddressLine1",nullable:!0,length:255}),n("design:type",String)],at.prototype,"billingAddressLine1",void 0),r([e.Column("varchar",{name:"billingAddressLine2",nullable:!0,length:255}),n("design:type",String)],at.prototype,"billingAddressLine2",void 0),r([e.Column("varchar",{name:"billingAddressState",nullable:!0,length:50}),n("design:type",String)],at.prototype,"billingAddressState",void 0),r([e.Column("varchar",{name:"billingAddressZip",nullable:!0,length:50}),n("design:type",String)],at.prototype,"billingAddressZip",void 0),r([e.Column("varchar",{name:"createdByUserId",nullable:!0,length:50}),n("design:type",String)],at.prototype,"createdByUserId",void 0),r([e.Column("varchar",{name:"currencyCode",nullable:!0,length:3}),n("design:type",String)],at.prototype,"currencyCode",void 0),r([e.Column("varchar",{name:"customer",nullable:!0,length:50}),n("design:type",String)],at.prototype,"customer",void 0),r([e.Column("decimal",{name:"grossAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"grossAmount",void 0),r([e.Column("varchar",{name:"lastFourDigits",nullable:!0,length:4}),n("design:type",String)],at.prototype,"lastFourDigits",void 0),r([e.Column("decimal",{name:"lineItemDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"lineItemDiscountAmount",void 0),r([e.Column("decimal",{name:"netAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"netAmount",void 0),r([e.Column("datetime",{name:"objectCreateDateTime",nullable:!0}),n("design:type",Date)],at.prototype,"objectCreateDateTime",void 0),r([e.Column("varchar",{name:"objectId",nullable:!0,length:20}),n("design:type",String)],at.prototype,"objectId",void 0),r([e.Column("datetime",{name:"objectLastModifiedDateTime",nullable:!0}),n("design:type",Date)],at.prototype,"objectLastModifiedDateTime",void 0),r([e.Column("decimal",{name:"orderDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"orderDiscountAmount",void 0),r([e.Column("varchar",{name:"orderDiscountCode",nullable:!0,length:50}),n("design:type",String)],at.prototype,"orderDiscountCode",void 0),r([e.Column("smallint",{name:"orderDiscountPercentage",default:0}),n("design:type",Number)],at.prototype,"orderDiscountPercentage",void 0),r([e.Column("datetime",{name:"ownerAssignedDateTime",nullable:!0}),n("design:type",Date)],at.prototype,"ownerAssignedDateTime",void 0),r([e.Column("datetime",{name:"paymentDateTime",nullable:!0}),n("design:type",Date)],at.prototype,"paymentDateTime",void 0),r([e.Column("varchar",{name:"paymentId",nullable:!0,length:20}),n("design:type",String)],at.prototype,"paymentId",void 0),r([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:10}),n("design:type",String)],at.prototype,"paymentMethod",void 0),r([e.Column("varchar",{name:"paymentSourceName",nullable:!0,length:255}),n("design:type",String)],at.prototype,"paymentSourceName",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],at.prototype,"paymentType",void 0),r([e.Column("decimal",{name:"processingFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"processingFees",void 0),r([e.Column("decimal",{name:"refunded",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"refunded",void 0),r([e.Column("varchar",{name:"shippingAddress",nullable:!0,length:255}),n("design:type",String)],at.prototype,"shippingAddress",void 0),r([e.Column("varchar",{name:"shippingAddressCity",nullable:!0,length:50}),n("design:type",String)],at.prototype,"shippingAddressCity",void 0),r([e.Column("varchar",{name:"shippingAddressCountry",nullable:!0,length:3}),n("design:type",String)],at.prototype,"shippingAddressCountry",void 0),r([e.Column("varchar",{name:"shippingAddressLine1",nullable:!0,length:255}),n("design:type",String)],at.prototype,"shippingAddressLine1",void 0),r([e.Column("varchar",{name:"shippingAddressLine2",nullable:!0,length:255}),n("design:type",String)],at.prototype,"shippingAddressLine2",void 0),r([e.Column("varchar",{name:"shippingAddressState",nullable:!0,length:50}),n("design:type",String)],at.prototype,"shippingAddressState",void 0),r([e.Column("varchar",{name:"shippingAddressZip",nullable:!0,length:50}),n("design:type",String)],at.prototype,"shippingAddressZip",void 0),r([e.Column("varchar",{name:"source",nullable:!0,length:20}),n("design:type",String)],at.prototype,"source",void 0),r([e.Column("varchar",{name:"sourceId",nullable:!0,length:20}),n("design:type",String)],at.prototype,"sourceId",void 0),r([e.Column("varchar",{name:"sourceUrl",nullable:!0,length:255}),n("design:type",String)],at.prototype,"sourceUrl",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],at.prototype,"status",void 0),r([e.Column("datetime",{name:"statusUpdatedOn",nullable:!0}),n("design:type",Date)],at.prototype,"statusUpdatedOn",void 0),r([e.Column("decimal",{name:"totalDiscountAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"totalDiscountAmount",void 0),r([e.Column("decimal",{name:"totalFees",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"totalFees",void 0),r([e.Column("decimal",{name:"totalTaxes",nullable:!0,precision:19,scale:4}),n("design:type",Number)],at.prototype,"totalTaxes",void 0),r([e.Column("varchar",{name:"updatedByUserId",nullable:!0,length:20}),n("design:type",String)],at.prototype,"updatedByUserId",void 0),at=r([e.Entity("billingHubspotPaymentLog",{schema:"nova"})],at);let ot=class{clientId;firstName;lastName;billingEmail;shippingEmail;streetAddress;city;region;country;postalCode;phone;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ot.prototype,"clientId",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],ot.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],ot.prototype,"lastName",void 0),r([e.Column("varchar",{name:"billingEmail",nullable:!0,length:255}),n("design:type",String)],ot.prototype,"billingEmail",void 0),r([e.Column("varchar",{name:"shippingEmail",nullable:!0,length:255}),n("design:type",String)],ot.prototype,"shippingEmail",void 0),r([e.Column("varchar",{name:"streetAddress",nullable:!0,length:255}),n("design:type",String)],ot.prototype,"streetAddress",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"city",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"region",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"country",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:50}),n("design:type",String)],ot.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:20}),n("design:type",String)],ot.prototype,"phone",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ot.prototype,"createdAt",void 0),ot=r([e.Index("ixBillingKlarnaCustomerShippingEmail",["shippingEmail"],{}),e.Index("ixBillingKlarnaCustomerClientId",["clientId"],{}),e.Entity("billingKlarnaCustomer",{schema:"nova"})],ot);let st=class{imei;clientId;orderId;deviceType;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;paymentType;createdAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],st.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],st.prototype,"clientId",void 0),r([e.Column("varchar",{name:"orderId",length:255}),n("design:type",String)],st.prototype,"orderId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],st.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],st.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new qe}),n("design:type",Date)],st.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new qe}),n("design:type",Date)],st.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new qe}),n("design:type",Date)],st.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],st.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],st.prototype,"status",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],st.prototype,"discounts",void 0),r([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],st.prototype,"addOns",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],st.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],st.prototype,"paymentMethodToken",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:20}),n("design:type",String)],st.prototype,"paymentType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],st.prototype,"createdAt",void 0),st=r([e.Index("ixBillingKlarnaOrderOrderId",["orderId"],{}),e.Index("ixBillingKlarnaOrderComposite",["orderId","status"],{}),e.Entity("billingKlarnaOrder",{schema:"nova"})],st);let lt=class{featureId;planId;feature;status};r([e.PrimaryGeneratedColumn({type:"int",name:"featureId"}),n("design:type",Number)],lt.prototype,"featureId",void 0),r([e.Column("varchar",{name:"planId",length:50}),n("design:type",String)],lt.prototype,"planId",void 0),r([e.Column("text",{name:"feature",nullable:!0}),n("design:type",String)],lt.prototype,"feature",void 0),r([e.Column("varchar",{name:"status",length:20}),n("design:type",String)],lt.prototype,"status",void 0),lt=r([e.Entity("billingPlanFeatures",{schema:"nova"})],lt);let dt=class{id;timestamp;status;balance;price;currencyIsoCode;planId;subscriptionId};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],dt.prototype,"id",void 0),r([e.Column("varchar",{name:"timestamp",nullable:!0,length:255}),n("design:type",String)],dt.prototype,"timestamp",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],dt.prototype,"status",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],dt.prototype,"balance",void 0),r([e.Column("decimal",{name:"price",nullable:!0,precision:19,scale:4}),n("design:type",Number)],dt.prototype,"price",void 0),r([e.Column("varchar",{name:"currencyIsoCode",nullable:!0,length:3}),n("design:type",String)],dt.prototype,"currencyIsoCode",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],dt.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:25}),n("design:type",String)],dt.prototype,"subscriptionId",void 0),dt=r([e.Index("ixBillingStatusHistoryBraintreeSubscriptionIdTimestamp",["subscriptionId","timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeTimestamp",["timestamp"],{}),e.Index("ixBillingStatusHistoryBraintreeSubscriptionId",["subscriptionId"],{}),e.Entity("billingStatusHistoryBraintree",{schema:"nova"})],dt);let ut=class{imei;clientId;subscriptionId;deviceType;asin;planId;subscriptionStart;subscriptionEnd;nextBillingDate;subscriptionValue;status;discounts;addOns;nextBillingPeriodAmount;paymentMethodToken;scheduledSuspension;paymentSkipped;existsInBraintree;createdAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ut.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ut.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:255}),n("design:type",String)],ut.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"asin",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new qe}),n("design:type",Date)],ut.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new qe}),n("design:type",Date)],ut.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new qe}),n("design:type",Date)],ut.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ut.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ut.prototype,"status",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],ut.prototype,"discounts",void 0),r([e.Column("json",{name:"addOns",nullable:!0}),n("design:type",Object)],ut.prototype,"addOns",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ut.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],ut.prototype,"paymentMethodToken",void 0),r([e.Column("datetime",{name:"scheduledSuspension",nullable:!0,transformer:new qe}),n("design:type",Date)],ut.prototype,"scheduledSuspension",void 0),r([e.Column("tinyint",{name:"paymentSkipped",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],ut.prototype,"paymentSkipped",void 0),r([e.Column("tinyint",{name:"existsInBraintree",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],ut.prototype,"existsInBraintree",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],ut.prototype,"createdAt",void 0),ut=r([e.Index("ixBillingSubscriptionAmazonSubscriptionId",["subscriptionId"]),e.Index("ixBillingSubscriptionAmazonComposite",["subscriptionId","status"],{}),e.Entity("billingSubscriptionAmazon",{schema:"nova"})],ut);let ct=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};r([e.Column("varchar",{primary:!0,name:"subscriptionId",length:50}),n("design:type",String)],ct.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"customerId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"planId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ct.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],ct.prototype,"updatedAt",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new qe}),n("design:type",Date)],ct.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new qe}),n("design:type",Date)],ct.prototype,"subscriptionEnd",void 0),r([e.Column("date",{name:"nextBillingDate",nullable:!0,transformer:new qe}),n("design:type",Date)],ct.prototype,"nextBillingDate",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ct.prototype,"subscriptionValue",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ct.prototype,"status",void 0),r([e.Column("tinyint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],ct.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("varchar",{name:"paymentInstrumentType",nullable:!0,length:20}),n("design:type",String)],ct.prototype,"paymentInstrumentType",void 0),r([e.Column("json",{name:"paymentInstrumentDetails",nullable:!0}),n("design:type",Object)],ct.prototype,"paymentInstrumentDetails",void 0),r([e.Column("tinyint",{name:"isPaused",nullable:!0,width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ct.prototype,"isPaused",void 0),r([e.Column("json",{name:"discountDetails",nullable:!0}),n("design:type",Object)],ct.prototype,"discountDetails",void 0),r([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],ct.prototype,"addons",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ct.prototype,"balance",void 0),r([e.Column("tinyint",{name:"currentBillingCycle",nullable:!0}),n("design:type",Number)],ct.prototype,"currentBillingCycle",void 0),r([e.Column("tinyint",{name:"daysPastDue",nullable:!0}),n("design:type",Number)],ct.prototype,"daysPastDue",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],ct.prototype,"description",void 0),r([e.Column("json",{name:"descriptor",nullable:!0}),n("design:type",Object)],ct.prototype,"descriptor",void 0),r([e.Column("tinyint",{name:"failureCount",nullable:!0}),n("design:type",Number)],ct.prototype,"failureCount",void 0),r([e.Column("date",{name:"firstBillingDate",nullable:!0,transformer:new qe}),n("design:type",Date)],ct.prototype,"firstBillingDate",void 0),r([e.Column("varchar",{name:"merchantAccountId",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"merchantAccountId",void 0),r([e.Column("decimal",{name:"nextBillingPeriodAmount",nullable:!0,precision:19,scale:4}),n("design:type",Number)],ct.prototype,"nextBillingPeriodAmount",void 0),r([e.Column("tinyint",{name:"numberOfBillingCycles",nullable:!0}),n("design:type",Number)],ct.prototype,"numberOfBillingCycles",void 0),r([e.Column("date",{name:"paidThroughDate",nullable:!0,transformer:new qe}),n("design:type",Date)],ct.prototype,"paidThroughDate",void 0),r([e.Column("varchar",{name:"paymentMethodToken",nullable:!0,length:50}),n("design:type",String)],ct.prototype,"paymentMethodToken",void 0),r([e.Column("json",{name:"statusHistory",nullable:!0}),n("design:type",Object)],ct.prototype,"statusHistory",void 0),r([e.Column("smallint",{name:"trialDuration",nullable:!0}),n("design:type",Number)],ct.prototype,"trialDuration",void 0),r([e.Column("varchar",{name:"trialDurationUnit",nullable:!0,length:10}),n("design:type",String)],ct.prototype,"trialDurationUnit",void 0),r([e.Column("tinyint",{name:"trialPeriod",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],ct.prototype,"trialPeriod",void 0),ct=r([e.Index("ixBillingSubscriptionBraintreeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionBraintreeSubscriptionId",["subscriptionId"],{}),e.Index("ixBillingSubscriptionBraintreeComposite",["subscriptionId","customerId","status"],{}),e.Entity("billingSubscriptionBraintree",{schema:"nova"})],ct);let pt=class{subscriptionId;customerId;planId;subscriptionStart;subscriptionEnd;subscriptionValue;subscriptionPeriodMonths;quantity;status;paymentType;paymentDetails;discounts;addons;balance;paymentMethod;cancelAt;canceledAt;isPaused;resumesAt;isTrial;trialEnd;createdAt;updatedAt};r([e.PrimaryColumn("varchar",{name:"subscriptionId",length:50}),n("design:type",String)],pt.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"customerId",length:50}),n("design:type",String)],pt.prototype,"customerId",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],pt.prototype,"planId",void 0),r([e.Column("date",{name:"subscriptionStart",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"subscriptionStart",void 0),r([e.Column("date",{name:"subscriptionEnd",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"subscriptionEnd",void 0),r([e.Column("decimal",{name:"subscriptionValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],pt.prototype,"subscriptionValue",void 0),r([e.Column("smallint",{name:"subscriptionPeriodMonths",nullable:!0}),n("design:type",Number)],pt.prototype,"subscriptionPeriodMonths",void 0),r([e.Column("smallint",{name:"quantity",nullable:!0}),n("design:type",Number)],pt.prototype,"quantity",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:20}),n("design:type",String)],pt.prototype,"status",void 0),r([e.Column("varchar",{name:"paymentType",nullable:!0,length:50}),n("design:type",String)],pt.prototype,"paymentType",void 0),r([e.Column("json",{name:"paymentDetails",nullable:!0}),n("design:type",Object)],pt.prototype,"paymentDetails",void 0),r([e.Column("json",{name:"discounts",nullable:!0}),n("design:type",Object)],pt.prototype,"discounts",void 0),r([e.Column("json",{name:"addons",nullable:!0}),n("design:type",Object)],pt.prototype,"addons",void 0),r([e.Column("decimal",{name:"balance",nullable:!0,precision:19,scale:4}),n("design:type",Number)],pt.prototype,"balance",void 0),r([e.Column("varchar",{name:"paymentMethod",nullable:!0,length:100}),n("design:type",String)],pt.prototype,"paymentMethod",void 0),r([e.Column("date",{name:"cancelAt",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"cancelAt",void 0),r([e.Column("date",{name:"canceledAt",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"canceledAt",void 0),r([e.Column("tinyint",{name:"isPaused",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],pt.prototype,"isPaused",void 0),r([e.Column("date",{name:"resumesAt",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"resumesAt",void 0),r([e.Column("tinyint",{name:"isTrial",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],pt.prototype,"isTrial",void 0),r([e.Column("date",{name:"trialEnd",nullable:!0,transformer:new qe}),n("design:type",Date)],pt.prototype,"trialEnd",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,precision:0}),n("design:type",Date)],pt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0,precision:0}),n("design:type",Date)],pt.prototype,"updatedAt",void 0),pt=r([e.Index("ixBillingSubscriptionStripeCustomerId",["customerId"],{}),e.Index("ixBillingSubscriptionStripeComposite",["subscriptionId","customerId","status"],{}),e.Entity("billingSubscriptionStripe",{schema:"nova"})],pt);let mt=class{blacklistTypeId;value;notes;createdAt;createdBy;modifiedAt;modifiedBy};r([e.Column("tinyint",{primary:!0,name:"blacklistTypeId"}),n("design:type",Number)],mt.prototype,"blacklistTypeId",void 0),r([e.Column("varchar",{primary:!0,name:"value",length:255}),n("design:type",String)],mt.prototype,"value",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],mt.prototype,"notes",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],mt.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",length:255}),n("design:type",String)],mt.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],mt.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:255}),n("design:type",String)],mt.prototype,"modifiedBy",void 0),mt=r([e.Entity("blacklist",{schema:"nova"})],mt);let yt=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],yt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],yt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],yt.prototype,"description",void 0),yt=r([e.Entity("blacklistType",{schema:"nova"})],yt);let gt=class{id;imeiMain;btmacMain;bleMac;connectionType;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],gt.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],gt.prototype,"imeiMain",void 0),r([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],gt.prototype,"btmacMain",void 0),r([e.Column("varchar",{name:"bleMac",length:20}),n("design:type",String)],gt.prototype,"bleMac",void 0),r([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],gt.prototype,"connectionType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],gt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],gt.prototype,"modifiedAt",void 0),gt=r([e.Index("ixuBLEMeshConfigurationImeiMainBLEMac",["imeiMain","bleMac"],{unique:!0}),e.Entity("bleMeshConfiguration",{schema:"nova"})],gt);let vt=class{id;name;type;buffer;createdAt;modifiedAt;createdBy;modifiedBy;clientId;location;status;radiusDisplayUnit;dataSourceTypeId;geometry;color;isUserCreated;area;centerLat;centerLon;securityGroupEntityTags};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],vt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",nullable:!0,length:255}),n("design:type",String)],vt.prototype,"name",void 0),r([e.Column("char",{name:"type",nullable:!0,length:1}),n("design:type",String)],vt.prototype,"type",void 0),r([e.Column("varchar",{name:"buffer",nullable:!0,length:50}),n("design:type",String)],vt.prototype,"buffer",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],vt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],vt.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:50}),n("design:type",String)],vt.prototype,"createdBy",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:50}),n("design:type",String)],vt.prototype,"modifiedBy",void 0),r([e.Column("int",{name:"clientId",default:()=>"'0'"}),n("design:type",Number)],vt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"location",nullable:!0,length:255}),n("design:type",String)],vt.prototype,"location",void 0),r([e.Column("tinyint",{name:"status",default:()=>"'1'"}),n("design:type",Number)],vt.prototype,"status",void 0),r([e.Column("char",{name:"radiusDisplayUnit",nullable:!0,length:2}),n("design:type",String)],vt.prototype,"radiusDisplayUnit",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],vt.prototype,"dataSourceTypeId",void 0),r([e.Column("text",{name:"geometry",nullable:!0}),n("design:type",String)],vt.prototype,"geometry",void 0),r([e.Column("varchar",{name:"color",nullable:!0,length:25}),n("design:type",String)],vt.prototype,"color",void 0),r([e.Column("tinyint",{name:"isUserCreated",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],vt.prototype,"isUserCreated",void 0),r([e.Column("float",{name:"area",nullable:!0}),n("design:type",Number)],vt.prototype,"area",void 0),r([e.Column("decimal",{name:"centerLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],vt.prototype,"centerLat",void 0),r([e.Column("decimal",{name:"centerLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],vt.prototype,"centerLon",void 0),vt=r([e.Index("ixBoundaryClientIdStatus",["clientId","status"],{}),e.Index("ixBoundaryStatus",["status"],{}),e.Entity("boundary",{schema:"nova"})],vt);let ht=class{id;deviceId;boundaryId;inDate;inLat;inLon;inAddress;outDate;outLat;outLon;outAddress;inOutDuration;createdAt;modifiedAt;imei;userId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],ht.prototype,"id",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],ht.prototype,"deviceId",void 0),r([e.Column("int",{name:"boundaryId"}),n("design:type",Number)],ht.prototype,"boundaryId",void 0),r([e.Column("datetime",{name:"inDate",precision:3,nullable:!0}),n("design:type",Date)],ht.prototype,"inDate",void 0),r([e.Column("decimal",{name:"inLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ht.prototype,"inLat",void 0),r([e.Column("decimal",{name:"inLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ht.prototype,"inLon",void 0),r([e.Column("varchar",{name:"inAddress",nullable:!0,length:255}),n("design:type",String)],ht.prototype,"inAddress",void 0),r([e.Column("datetime",{name:"outDate",precision:3,nullable:!0}),n("design:type",Date)],ht.prototype,"outDate",void 0),r([e.Column("decimal",{name:"outLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],ht.prototype,"outLat",void 0),r([e.Column("decimal",{name:"outLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],ht.prototype,"outLon",void 0),r([e.Column("varchar",{name:"outAddress",nullable:!0,length:255}),n("design:type",String)],ht.prototype,"outAddress",void 0),r([e.Column("int",{name:"inOutDuration",nullable:!0}),n("design:type",Number)],ht.prototype,"inOutDuration",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ht.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ht.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ht.prototype,"imei",void 0),r([e.Column("binary",{name:"userId",nullable:!0,length:16}),n("design:type",Buffer)],ht.prototype,"userId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],ht.prototype,"deleted",void 0),ht=r([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"})],ht);let It=class{id;mcc;mnc;lac;radio;lat;lon;range;createdAt;updatedAt};r([e.Column("int",{primary:!0,name:"id"}),n("design:type",Number)],It.prototype,"id",void 0),r([e.Column("tinyint",{name:"mcc",nullable:!0}),n("design:type",Number)],It.prototype,"mcc",void 0),r([e.Column("tinyint",{name:"mnc",nullable:!0}),n("design:type",Number)],It.prototype,"mnc",void 0),r([e.Column("mediumint",{name:"lac",nullable:!0}),n("design:type",Number)],It.prototype,"lac",void 0),r([e.Column("varchar",{name:"radio",nullable:!0,length:5}),n("design:type",String)],It.prototype,"radio",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],It.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],It.prototype,"lon",void 0),r([e.Column("mediumint",{name:"range",nullable:!0}),n("design:type",Number)],It.prototype,"range",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],It.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],It.prototype,"updatedAt",void 0),It=r([e.Entity("cellTower",{schema:"nova"})],It);let ft=class{clientId;appClientId;userId;appClientName;appClientSecret;scopes;createdAt;updatedAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ft.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"appClientId",length:64}),n("design:type",String)],ft.prototype,"appClientId",void 0),r([e.Column("binary",{name:"userId",transformer:me,length:16}),n("design:type",String)],ft.prototype,"userId",void 0),r([e.Column("varchar",{name:"appClientName",length:64}),n("design:type",String)],ft.prototype,"appClientName",void 0),r([e.Column("varchar",{name:"appClientSecret",length:64}),n("design:type",String)],ft.prototype,"appClientSecret",void 0),r([e.Column("json",{name:"scopes"}),n("design:type",Array)],ft.prototype,"scopes",void 0),r([e.CreateDateColumn({name:"createdAt",nullable:!0}),n("design:type",Date)],ft.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"updatedAt",nullable:!0}),n("design:type",Date)],ft.prototype,"updatedAt",void 0),ft=r([e.Entity("clientApiToken",{schema:"nova"})],ft);let Ct=class{id;appClientId;clientId;sharedBy;sharedWith;sharedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ct.prototype,"id",void 0),r([e.Column("varchar",{name:"appClientId",length:64}),n("design:type",String)],Ct.prototype,"appClientId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ct.prototype,"clientId",void 0),r([e.Column("varchar",{name:"sharedBy",length:100}),n("design:type",String)],Ct.prototype,"sharedBy",void 0),r([e.Column("varchar",{name:"sharedWith",length:100}),n("design:type",String)],Ct.prototype,"sharedWith",void 0),r([e.Column("datetime",{name:"sharedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ct.prototype,"sharedAt",void 0),Ct=r([e.Index("ix_appClientId_sharedAt",["appClientId","sharedAt"]),e.Index("ix_clientId_sharedAt",["clientId","sharedAt"]),e.Entity("clientApiTokenShareHistory",{schema:"nova"})],Ct);let bt=class{clientId;appFeatureTypeId;appFeatureType;entityId;statusId};r([e.Column({type:"int",name:"clientId",primary:!0}),n("design:type",Number)],bt.prototype,"clientId",void 0),r([e.Column({type:"int",name:"appFeatureTypeId",primary:!0}),n("design:type",Number)],bt.prototype,"appFeatureTypeId",void 0),r([e.ManyToOne((()=>y),{createForeignKeyConstraints:!1,eager:!0,nullable:!1}),e.JoinColumn(),n("design:type",Object)],bt.prototype,"appFeatureType",void 0),r([e.Column({type:"int",name:"entityId",primary:!0}),n("design:type",Number)],bt.prototype,"entityId",void 0),r([e.Column("int",{name:"statusId",default:()=>"'1'"}),n("design:type",Number)],bt.prototype,"statusId",void 0),bt=r([e.Entity("clientAppFeature",{schema:"nova"})],bt);let St=class{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled};r([e.Column("int",{primary:!0,name:"clientId"}),n("design:type",Number)],St.prototype,"clientId",void 0),r([e.Column("double",{name:"movementTripThreshold",nullable:!0}),n("design:type",Number)],St.prototype,"movementTripThreshold",void 0),r([e.Column("double",{name:"stopTripThreshold",nullable:!0}),n("design:type",Number)],St.prototype,"stopTripThreshold",void 0),r([e.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),n("design:type",Number)],St.prototype,"mapUpdateMode",void 0),r([e.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),n("design:type",Number)],St.prototype,"maxUsersAllowed",void 0),r([e.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),n("design:type",String)],St.prototype,"ssoDomain",void 0),r([e.Column("json",{name:"ssoMetadata",nullable:!0}),n("design:type",Object)],St.prototype,"ssoMetadata",void 0),r([e.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),n("design:type",Object)],St.prototype,"assetProfileStatusLabels",void 0),r([e.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),n("design:type",String)],St.prototype,"apiKeyId",void 0),r([e.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],St.prototype,"assetProfileStatusLabelsEnabled",void 0),St=r([e.Entity("clientConfiguration",{schema:"nova"}),e.Index("ssoDomain",["ssoDomain"],{unique:!0})],St);let At=class{id;clientId;imei;movingPingFrequency;stoppedPingFrequency;fixedStatus;generateTrips;stopThresholdMinutes;offlineThresholdMinutes;movementThresholdSpeed;externalBatteryInformation;reportingMode;starterInterruptInstalled};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],At.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],At.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],At.prototype,"imei",void 0),r([e.Column("mediumint",{name:"movingPingFrequency",nullable:!0}),n("design:type",Number)],At.prototype,"movingPingFrequency",void 0),r([e.Column("mediumint",{name:"stoppedPingFrequency",nullable:!0}),n("design:type",Number)],At.prototype,"stoppedPingFrequency",void 0),r([e.Column("varchar",{name:"fixedStatus",nullable:!0,length:3}),n("design:type",String)],At.prototype,"fixedStatus",void 0),r([e.Column("tinyint",{name:"generateTrips",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],At.prototype,"generateTrips",void 0),r([e.Column("smallint",{name:"stopThresholdMinutes",nullable:!0}),n("design:type",Number)],At.prototype,"stopThresholdMinutes",void 0),r([e.Column("smallint",{name:"offlineThresholdMinutes",nullable:!0}),n("design:type",Number)],At.prototype,"offlineThresholdMinutes",void 0),r([e.Column("float",{name:"movementThresholdSpeed",nullable:!0}),n("design:type",Number)],At.prototype,"movementThresholdSpeed",void 0),r([e.Column("tinyint",{name:"externalBatteryInformation",nullable:!0,width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],At.prototype,"externalBatteryInformation",void 0),r([e.Column("varchar",{length:30,nullable:!0,default:""}),n("design:type",String)],At.prototype,"reportingMode",void 0),r([e.Column("tinyint",{name:"starterInterruptInstalled",width:1,default:()=>"'0'",transformer:new c,nullable:!0}),n("design:type",Boolean)],At.prototype,"starterInterruptInstalled",void 0),At=r([e.Index("ixuUserDeviceSettingClientIdImei",["clientId","imei"],{unique:!0}),e.Index("ixClientDeviceSettingImei",["imei"],{}),e.Entity("clientDeviceSetting",{schema:"nova"})],At);let Dt=class{id;clientId;userActivationId;tokenUrl;fleetUrl;requestParams;isEnabled;systemName;synchroParams};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Dt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Dt.prototype,"clientId",void 0),r([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],Dt.prototype,"userActivationId",void 0),r([e.Column("varchar",{name:"tokenUrl",length:250}),n("design:type",String)],Dt.prototype,"tokenUrl",void 0),r([e.Column("varchar",{name:"fleetUrl",length:250}),n("design:type",String)],Dt.prototype,"fleetUrl",void 0),r([e.Column("json",{name:"requestParams"}),n("design:type",Object)],Dt.prototype,"requestParams",void 0),r([e.Column("tinyint",{name:"isEnabled",width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Dt.prototype,"isEnabled",void 0),r([e.Column("varchar",{name:"systemName",length:250,default:"aemp"}),n("design:type",String)],Dt.prototype,"systemName",void 0),r([e.Column("json",{name:"synchroParams",nullable:!0}),n("design:type",Object)],Dt.prototype,"synchroParams",void 0),Dt=r([e.Index("ixClientIngestorConfigurationClientId",["clientId"],{}),e.Entity("clientIngestorConfiguration",{schema:"nova"})],Dt);let Rt=class{id;clientId;issueTypeId;dismissed;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Rt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Rt.prototype,"clientId",void 0),r([e.Column("int",{name:"issueTypeId"}),n("design:type",Number)],Rt.prototype,"issueTypeId",void 0),r([e.Column("tinyint",{name:"dismissed",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Rt.prototype,"dismissed",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Rt.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"modifiedAt"}),n("design:type",Date)],Rt.prototype,"modifiedAt",void 0),Rt=r([e.Index("ixuClientIssuesConfigurationClientIdIssueTypeId",["clientId","issueTypeId"],{unique:!0}),e.Entity("clientIssuesConfigurations",{schema:"nova"})],Rt);let wt=class{id;name;key;description;columnCategoryId;ordinalPosition;requiredDateFilters;status;columnCategory};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],wt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],wt.prototype,"name",void 0),r([e.Column("varchar",{name:"key",length:50}),n("design:type",String)],wt.prototype,"key",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],wt.prototype,"description",void 0),r([e.Column("tinyint",{name:"columnCategoryId"}),n("design:type",Number)],wt.prototype,"columnCategoryId",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],wt.prototype,"ordinalPosition",void 0),r([e.Column("tinyint",{name:"requiredDateFilters",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],wt.prototype,"requiredDateFilters",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],wt.prototype,"status",void 0),r([e.ManyToOne((()=>Tt),(e=>e.customReportColumns),{createForeignKeyConstraints:!1}),n("design:type",Object)],wt.prototype,"columnCategory",void 0),wt=r([e.Index("ixu_name_columnCategoryId",["name","columnCategoryId"],{unique:!0}),e.Entity("customReportColumn",{schema:"nova"})],wt);let Tt=class{id;name;description;dataSourceId;ordinalPosition;status;dataSource;customReportColumns};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Tt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Tt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Tt.prototype,"description",void 0),r([e.Column("tinyint",{name:"dataSourceId"}),n("design:type",Number)],Tt.prototype,"dataSourceId",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Tt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],Tt.prototype,"status",void 0),r([e.ManyToOne((()=>Nt),(e=>e.customReportColumnCategories),{createForeignKeyConstraints:!1}),n("design:type",Object)],Tt.prototype,"dataSource",void 0),r([e.OneToMany((()=>wt),(e=>e.columnCategory),{createForeignKeyConstraints:!1}),n("design:type",Array)],Tt.prototype,"customReportColumns",void 0),Tt=r([e.Index("ixu_name",["name"],{unique:!0}),e.Entity("customReportColumnCategory",{schema:"nova"})],Tt);let Nt=class{id;name;sourceTableName;description;ordinalPosition;icon;status;customReportColumnCategories};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Nt.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Nt.prototype,"name",void 0),r([e.Column("varchar",{name:"sourceTableName",length:50}),n("design:type",String)],Nt.prototype,"sourceTableName",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Nt.prototype,"description",void 0),r([e.Column("tinyint",{name:"ordinalPosition"}),n("design:type",Number)],Nt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"icon",length:50}),n("design:type",String)],Nt.prototype,"icon",void 0),r([e.Column("varchar",{name:"status",length:20,default:()=>"'active'"}),n("design:type",String)],Nt.prototype,"status",void 0),r([e.OneToMany((()=>Tt),(e=>e.dataSource),{createForeignKeyConstraints:!1}),n("design:type",Array)],Nt.prototype,"customReportColumnCategories",void 0),Nt=r([e.Index("ixu_name",["name"],{unique:!0}),e.Entity("customReportDataSource",{schema:"nova"})],Nt);let Bt=class{id;customReportId;customReport;customReportColumnId;customReportColumn};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Bt.prototype,"id",void 0),r([e.Column("int",{name:"customReportId"}),n("design:type",Number)],Bt.prototype,"customReportId",void 0),r([e.ManyToOne((()=>Ut),(e=>e.selectedColumns),{createForeignKeyConstraints:!1}),n("design:type",Object)],Bt.prototype,"customReport",void 0),r([e.Column("smallint",{name:"customReportColumnId"}),n("design:type",Number)],Bt.prototype,"customReportColumnId",void 0),r([e.ManyToOne((()=>wt),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"customReportColumnId",referencedColumnName:"id"}),n("design:type",Object)],Bt.prototype,"customReportColumn",void 0),Bt=r([e.Index("ixu_reportId_columnId",["customReportId","customReportColumnId"],{unique:!0}),e.Entity("customReportSelectedColumn",{schema:"nova"})],Bt);let Ut=class{id;clientId;name;description;status;dataSourceId;dataSource;createdAt;modifiedAt;lastAccessedAt;createdBy;createdByUser;modifiedBy;modifiedByUser;selectedColumns};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ut.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ut.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ut.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Ut.prototype,"description",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'Active'"}),n("design:type",String)],Ut.prototype,"status",void 0),r([e.Column("tinyint",{name:"dataSourceId"}),n("design:type",Number)],Ut.prototype,"dataSourceId",void 0),r([e.ManyToOne((()=>Nt),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"dataSourceId",referencedColumnName:"id"}),n("design:type",Object)],Ut.prototype,"dataSource",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ut.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ut.prototype,"modifiedAt",void 0),r([e.Column("datetime",{name:"lastAccessedAt",nullable:!0}),n("design:type",Date)],Ut.prototype,"lastAccessedAt",void 0),r([e.Column("binary",{name:"createdBy",length:16,transformer:me,nullable:!0}),n("design:type",String)],Ut.prototype,"createdBy",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"createdBy",referencedColumnName:"id"}),n("design:type",Object)],Ut.prototype,"createdByUser",void 0),r([e.Column("binary",{name:"modifiedBy",length:16,transformer:me,nullable:!0}),n("design:type",String)],Ut.prototype,"modifiedBy",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1}),e.JoinColumn({name:"modifiedBy",referencedColumnName:"id"}),n("design:type",Object)],Ut.prototype,"modifiedByUser",void 0),r([e.OneToMany((()=>Bt),(e=>e.customReport),{createForeignKeyConstraints:!1}),n("design:type",Array)],Ut.prototype,"selectedColumns",void 0),Ut=r([e.Index("ixu_clientId",["clientId"],{}),e.Entity("customReport",{schema:"nova"})],Ut);let Et=class{id;clientId;name;permissions;createdAt;updatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Et.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Et.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:255}),n("design:type",String)],Et.prototype,"name",void 0),r([e.Column("json",{name:"permissions",nullable:!0}),n("design:type",Array)],Et.prototype,"permissions",void 0),r([e.CreateDateColumn({name:"createdAt",nullable:!0}),n("design:type",Date)],Et.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"updatedAt",nullable:!0}),n("design:type",Date)],Et.prototype,"updatedAt",void 0),Et=r([e.Index("ixu_clientId_name",["clientId","name"],{unique:!0}),e.Entity("customSecurityRole",{schema:"nova"})],Et);let Pt=class{id;clientId;createdAt;completedAt;dataType;status;parameters;exportLocation;downloadLink;imei;client};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Pt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pt.prototype,"clientId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Pt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],Pt.prototype,"completedAt",void 0),r([e.Column("varchar",{name:"dataType",length:100,nullable:!0}),n("design:type",String)],Pt.prototype,"dataType",void 0),r([e.Column("varchar",{name:"status",length:100,nullable:!0}),n("design:type",String)],Pt.prototype,"status",void 0),r([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],Pt.prototype,"parameters",void 0),r([e.Column("varchar",{name:"exportLocation",length:500,nullable:!0}),n("design:type",String)],Pt.prototype,"exportLocation",void 0),r([e.Column("varchar",{name:"downloadLink",length:3e3,nullable:!0}),n("design:type",String)],Pt.prototype,"downloadLink",void 0),r([e.Column("varchar",{name:"imei",length:16,nullable:!0}),n("design:type",String)],Pt.prototype,"imei",void 0),r([e.OneToOne((()=>Se),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn(),n("design:type",Object)],Pt.prototype,"client",void 0),Pt=r([e.Entity("dataExport",{schema:"nova"})],Pt);let Ot=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],Ot.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ot.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],Ot.prototype,"description",void 0),Ot=r([e.Entity("dataSourceType",{schema:"nova"})],Ot);let xt=class{id;imei;clientId;billingSubscriptionId;planId;billingPlatform;deactivationReason;deactivationReasonId;createdBy;createdAt;scheduledDate;displayOrder};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],xt.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],xt.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],xt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"billingSubscriptionId",length:50,nullable:!0}),n("design:type",String)],xt.prototype,"billingSubscriptionId",void 0),r([e.Column("varchar",{name:"planId",length:50,nullable:!0}),n("design:type",String)],xt.prototype,"planId",void 0),r([e.Column("varchar",{name:"billingPlatform",length:100,nullable:!0}),n("design:type",String)],xt.prototype,"billingPlatform",void 0),r([e.Column("varchar",{name:"deactivationReason",nullable:!0,length:2e3}),n("design:type",String)],xt.prototype,"deactivationReason",void 0),r([e.Column("tinyint",{name:"deactivationReasonId",nullable:!0}),n("design:type",Number)],xt.prototype,"deactivationReasonId",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],xt.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],xt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"scheduledDate",nullable:!0}),n("design:type",Date)],xt.prototype,"scheduledDate",void 0),r([e.Column("tinyint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],xt.prototype,"displayOrder",void 0),xt=r([e.Index("ixDeactivationClientId",["clientId"],{}),e.Index("ixDeactivationBillingSubscriptionIdDeactivationReasonId",["billingSubscriptionId","deactivationReasonId"],{}),e.Index("ixDeactivationDeactivationReasonId",["deactivationReasonId"],{}),e.Index("ixDeactivationImei",["imei"],{}),e.Entity("deactivation",{schema:"nova"})],xt);let kt=class{id;text;code;customerVisible};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],kt.prototype,"id",void 0),r([e.Column("varchar",{name:"text",length:255}),n("design:type",String)],kt.prototype,"text",void 0),r([e.Column("varchar",{name:"code",length:50}),n("design:type",String)],kt.prototype,"code",void 0),r([e.Column("tinyint",{name:"customerVisible",width:1,default:()=>"'1'"}),n("design:type",Boolean)],kt.prototype,"customerVisible",void 0),kt=r([e.Entity("deactivationReason",{schema:"nova"})],kt);let Mt=class{imei;demoAccountTemplateDeviceId;isBusy;currentSiteId;nextAvailableAt;inMesh;demoAccountTemplateDevice};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Mt.prototype,"imei",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId"}),n("design:type",Number)],Mt.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("tinyint",{name:"isBusy",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Mt.prototype,"isBusy",void 0),r([e.Column("int",{name:"currentSiteId",nullable:!0}),n("design:type",Number)],Mt.prototype,"currentSiteId",void 0),r([e.Column("datetime",{name:"nextAvailableAt",nullable:!0}),n("design:type",Date)],Mt.prototype,"nextAvailableAt",void 0),r([e.Column("tinyint",{name:"inMesh",width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Mt.prototype,"inMesh",void 0),Mt=r([e.Entity("demoAccountDeviceData",{schema:"nova"})],Mt);let Ft=class{id;demoAccountTemplateId;name;address;latitude;longitude;boundaryRadius};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Ft.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],Ft.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Ft.prototype,"name",void 0),r([e.Column("varchar",{name:"address",length:50}),n("design:type",String)],Ft.prototype,"address",void 0),r([e.Column("decimal",{name:"latitude",precision:8,scale:6}),n("design:type",Number)],Ft.prototype,"latitude",void 0),r([e.Column("decimal",{name:"longitude",precision:9,scale:6}),n("design:type",Number)],Ft.prototype,"longitude",void 0),r([e.Column("smallint",{name:"boundaryRadius",nullable:!0}),n("design:type",Number)],Ft.prototype,"boundaryRadius",void 0),Ft=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountSiteLocation",{schema:"nova"})],Ft);let Lt=class{id;demoAccountTemplateDeviceId;assetName;assetProfileTypeId;make;model;serialNumber;year;device;assetProfileType};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Lt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateDeviceId"}),n("design:type",Number)],Lt.prototype,"demoAccountTemplateDeviceId",void 0),r([e.Column("varchar",{name:"assetName",length:50}),n("design:type",String)],Lt.prototype,"assetName",void 0),r([e.Column("smallint",{name:"assetProfileTypeId",nullable:!0}),n("design:type",Number)],Lt.prototype,"assetProfileTypeId",void 0),r([e.Column("varchar",{name:"make",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"make",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"model",void 0),r([e.Column("varchar",{name:"serialNumber",nullable:!0,length:50}),n("design:type",String)],Lt.prototype,"serialNumber",void 0),r([e.Column("smallint",{name:"year",nullable:!0}),n("design:type",Number)],Lt.prototype,"year",void 0),Lt=r([e.Entity("demoAccountTemplateAssetProfile",{schema:"nova"})],Lt);let Qt=class{id;demoAccountTemplateId;name;originLocationId;destinationLocationId};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Qt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],Qt.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Qt.prototype,"name",void 0),r([e.Column("smallint",{name:"originLocationId"}),n("design:type",Number)],Qt.prototype,"originLocationId",void 0),r([e.Column("smallint",{name:"destinationLocationId"}),n("design:type",Number)],Qt.prototype,"destinationLocationId",void 0),Qt=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountTemplateBleMesh",{schema:"nova"})],Qt);let qt=class{id;demoAccountTemplateId;trackerName;trackerDescription;deviceTypeId;demoAccountTemplateBleMeshId;deviceType;demoAccountTemplate;demoAccountTemplateBleMesh;assetProfile};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],qt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],qt.prototype,"demoAccountTemplateId",void 0),r([e.Column("varchar",{name:"trackerName",length:50}),n("design:type",String)],qt.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"trackerDescription",length:500}),n("design:type",String)],qt.prototype,"trackerDescription",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],qt.prototype,"deviceTypeId",void 0),r([e.Column("smallint",{name:"demoAccountTemplateBleMeshId",nullable:!0}),n("design:type",Number)],qt.prototype,"demoAccountTemplateBleMeshId",void 0),qt=r([e.Entity("demoAccountTemplateDevice",{schema:"nova"})],qt);let _t=class{id;demoAccountTemplateId;startSiteLocationId;endSiteLocationId;distance;duration};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],_t.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTemplateId"}),n("design:type",Number)],_t.prototype,"demoAccountTemplateId",void 0),r([e.Column("smallint",{name:"startSiteLocationId"}),n("design:type",Number)],_t.prototype,"startSiteLocationId",void 0),r([e.Column("smallint",{name:"endSiteLocationId"}),n("design:type",Number)],_t.prototype,"endSiteLocationId",void 0),r([e.Column("int",{name:"distance"}),n("design:type",Number)],_t.prototype,"distance",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],_t.prototype,"duration",void 0),_t=r([e.Index("ix_demoAccountTemplateId",["demoAccountTemplateId"],{}),e.Entity("demoAccountTripTemplate",{schema:"nova"})],_t);let Wt=class{id;demoAccountTripTemplateId;latitude;longitude;speed;elapsedTime};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Wt.prototype,"id",void 0),r([e.Column("smallint",{name:"demoAccountTripTemplateId"}),n("design:type",Number)],Wt.prototype,"demoAccountTripTemplateId",void 0),r([e.Column("decimal",{name:"latitude",precision:8,scale:6}),n("design:type",Number)],Wt.prototype,"latitude",void 0),r([e.Column("decimal",{name:"longitude",precision:9,scale:6}),n("design:type",Number)],Wt.prototype,"longitude",void 0),r([e.Column("float",{name:"speed"}),n("design:type",Number)],Wt.prototype,"speed",void 0),r([e.Column("int",{name:"elapsedTime"}),n("design:type",Number)],Wt.prototype,"elapsedTime",void 0),Wt=r([e.Index("ix_demoAccountTripTemplateId",["demoAccountTripTemplateId"],{}),e.Entity("demoAccountTripTemplatePosition",{schema:"nova"})],Wt);let jt=class{imei;associatedDeviceImei;deviceAssociationStartDate;deviceAssociationEndDate;lastProcessedAt;lastProcessedSendTime};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],jt.prototype,"imei",void 0),r([e.Column("varchar",{name:"associatedDeviceImei",length:15,nullable:!0}),n("design:type",String)],jt.prototype,"associatedDeviceImei",void 0),r([e.Column("datetime",{name:"deviceAssociationStartDate",nullable:!0}),n("design:type",Date)],jt.prototype,"deviceAssociationStartDate",void 0),r([e.Column("datetime",{name:"deviceAssociationEndDate",nullable:!0}),n("design:type",Date)],jt.prototype,"deviceAssociationEndDate",void 0),r([e.Column("datetime",{name:"lastProcessedAt",nullable:!0}),n("design:type",Date)],jt.prototype,"lastProcessedAt",void 0),r([e.Column("datetime",{name:"lastProcessedSendTime",nullable:!0}),n("design:type",Date)],jt.prototype,"lastProcessedSendTime",void 0),jt=r([e.Entity("demoDeviceData",{schema:"nova"})],jt);let zt=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;transmissionType};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],zt.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],zt.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],zt.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],zt.prototype,"description",void 0),r([e.Column("varchar",{name:"type",nullable:!0,length:25}),n("design:type",String)],zt.prototype,"type",void 0),r([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],zt.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],zt.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],zt.prototype,"behaviorParams",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],zt.prototype,"extraParams",void 0),r([e.Column("varchar",{name:"pendingNotes",nullable:!0,length:1e3}),n("design:type",String)],zt.prototype,"pendingNotes",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],zt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],zt.prototype,"imei",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],zt.prototype,"icon",void 0),r([e.Column("varchar",{name:"confirmationNotes",nullable:!0,length:1e3}),n("design:type",String)],zt.prototype,"confirmationNotes",void 0),r([e.Column("tinyint",{name:"ordinalPosition",default:()=>"'1'"}),n("design:type",Number)],zt.prototype,"ordinalPosition",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:10}),n("design:type",String)],zt.prototype,"stage",void 0),r([e.Column("json",{name:"additionalSettings",nullable:!0}),n("design:type",Object)],zt.prototype,"additionalSettings",void 0),r([e.Column("tinyint",{name:"blocking",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],zt.prototype,"blocking",void 0),r([e.Column("varchar",{name:"displayType",nullable:!0,length:25}),n("design:type",String)],zt.prototype,"displayType",void 0),r([e.Column("varchar",{name:"minWebVersion",nullable:!0,length:20}),n("design:type",String)],zt.prototype,"minWebVersion",void 0),r([e.Column("varchar",{name:"minAppVersion",nullable:!0,length:20}),n("design:type",String)],zt.prototype,"minAppVersion",void 0),r([e.Column("varchar",{name:"minProtocolVersion",nullable:!0}),n("design:type",String)],zt.prototype,"minProtocolVersion",void 0),r([e.Column("varchar",{name:"maxProtocolVersion",nullable:!0}),n("design:type",String)],zt.prototype,"maxProtocolVersion",void 0),r([e.Column("tinyint",{name:"isACKBehavior",nullable:!0,width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],zt.prototype,"isACKBehavior",void 0),r([e.Column("varchar",{name:"transmissionType",nullable:!0,length:50}),n("design:type",String)],zt.prototype,"transmissionType",void 0),zt=r([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"})],zt);let Vt=class{id;clientId;deviceId;deviceBleMeshId;status;behaviorName;behaviorParams;createdAt;modifiedAt;device;deviceBleMesh};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Vt.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Vt.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],Vt.prototype,"deviceId",void 0),r([e.Column("int",{name:"deviceBleMeshId"}),n("design:type",Number)],Vt.prototype,"deviceBleMeshId",void 0),r([e.Column("varchar",{name:"status",length:100}),n("design:type",String)],Vt.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",nullable:!0,length:100}),n("design:type",String)],Vt.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Vt.prototype,"behaviorParams",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Vt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Vt.prototype,"modifiedAt",void 0),r([e.OneToOne((()=>fe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Vt.prototype,"device",void 0),r([e.OneToOne((()=>je),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],Vt.prototype,"deviceBleMesh",void 0),Vt=r([e.Index("ixDeviceBleMeshUpdateTask_clientId_modifiedAt",["clientId","modifiedAt"],{}),e.Entity("deviceBleMeshUpdateTask",{schema:"nova"})],Vt);let Gt=class{clientId;imei;configurationType;currentConfiguration;pendingConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Gt.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Gt.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"configurationType",length:20}),n("design:type",String)],Gt.prototype,"configurationType",void 0),r([e.Column("json",{name:"currentConfiguration",nullable:!0}),n("design:type",Object)],Gt.prototype,"currentConfiguration",void 0),r([e.Column("json",{name:"pendingConfiguration",nullable:!0}),n("design:type",Object)],Gt.prototype,"pendingConfiguration",void 0),r([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],Gt.prototype,"updateConfigPendingCommandId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Gt.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Gt.prototype,"modifiedAt",void 0),Gt=r([e.Entity("deviceCameraConfiguration",{schema:"nova"})],Gt);let Jt=class{id;code;name;bitPosition};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Jt.prototype,"id",void 0),r([e.Column("varchar",{name:"code",length:2}),n("design:type",String)],Jt.prototype,"code",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Jt.prototype,"name",void 0),r([e.Column("smallint",{name:"bitPosition",nullable:!0}),n("design:type",Number)],Jt.prototype,"bitPosition",void 0),Jt=r([e.Index("ixCode",["code"],{unique:!0}),e.Entity("deviceCameraMediaEventType",{schema:"nova"})],Jt);let Ht=class{id;commandSequenceNumber;clientId;imei;cameraSource;createdAt;status;receivedFileName;receivedFileDate;requestedBy;requestedByUser};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ht.prototype,"id",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],Ht.prototype,"commandSequenceNumber",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Ht.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ht.prototype,"imei",void 0),r([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],Ht.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Ht.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Ht.prototype,"status",void 0),r([e.Column("varchar",{name:"receivedFileName",nullable:!0}),n("design:type",String)],Ht.prototype,"receivedFileName",void 0),r([e.Column("datetime",{name:"receivedFileDate",nullable:!0}),n("design:type",Date)],Ht.prototype,"receivedFileDate",void 0),r([e.Column("binary",{name:"requestedBy",length:16,transformer:me}),n("design:type",String)],Ht.prototype,"requestedBy",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],Ht.prototype,"requestedByUser",void 0),Ht=r([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Entity("deviceCameraRequestedPictureData",{schema:"nova"})],Ht);let Kt=class{id;commandSequenceNumber;clientId;imei;startTime;duration;cameraSource;createdAt;totalFilesCount;receivedFilesCount;receivedFiles;status;resultFileName;requestedBy;requestedByUser};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Kt.prototype,"id",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10}),n("design:type",String)],Kt.prototype,"commandSequenceNumber",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Kt.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Kt.prototype,"imei",void 0),r([e.Column("datetime",{name:"startTime"}),n("design:type",Date)],Kt.prototype,"startTime",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],Kt.prototype,"duration",void 0),r([e.Column("int",{name:"cameraSource"}),n("design:type",Number)],Kt.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Kt.prototype,"createdAt",void 0),r([e.Column("int",{name:"totalFilesCount",nullable:!0,default:0}),n("design:type",Number)],Kt.prototype,"totalFilesCount",void 0),r([e.Column("int",{name:"receivedFilesCount",nullable:!0,default:0}),n("design:type",Number)],Kt.prototype,"receivedFilesCount",void 0),r([e.Column("json",{name:"receivedFiles",nullable:!0}),n("design:type",Array)],Kt.prototype,"receivedFiles",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Kt.prototype,"status",void 0),r([e.Column("varchar",{name:"resultFileName",nullable:!0}),n("design:type",String)],Kt.prototype,"resultFileName",void 0),r([e.Column("binary",{name:"requestedBy",length:16,transformer:me}),n("design:type",String)],Kt.prototype,"requestedBy",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedBy",referencedColumnName:"id"}),n("design:type",Object)],Kt.prototype,"requestedByUser",void 0),Kt=r([e.Index("ix_clientId_imei_createdAt",["clientId","imei","createdAt"],{}),e.Entity("deviceCameraRequestedVideoData",{schema:"nova"})],Kt);let $t=class{clientId;imei;mediaFileName;s3FilesPath;thumbnailsFileName;lat;lon;address;messageId;eventTypeId;mediaType;cameraSource;mediaLocation;eventType;createdAt;tripId;requestedVideoDataId;requestedVideoData;requestedPictureDataId;requestedPictureData;deleted};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],$t.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],$t.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"mediaFileName",length:255}),n("design:type",String)],$t.prototype,"mediaFileName",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"s3FilesPath",void 0),r([e.Column("varchar",{name:"thumbnailsFileName",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"thumbnailsFileName",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],$t.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],$t.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],$t.prototype,"address",void 0),r([e.Column("binary",{name:"messageId",nullable:!0,length:16}),n("design:type",Buffer)],$t.prototype,"messageId",void 0),r([e.Column("smallint",{name:"eventTypeId",nullable:!0}),n("design:type",Number)],$t.prototype,"eventTypeId",void 0),r([e.Column("enum",{name:"mediaType",nullable:!0,enum:Object.values(F),comment:"The type of the media: image or video"}),n("design:type",String)],$t.prototype,"mediaType",void 0),r([e.Column("enum",{name:"cameraSource",nullable:!0,enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],$t.prototype,"cameraSource",void 0),r([e.Column("enum",{name:"mediaLocation",enum:Object.values(Q),default:"sdCard",comment:"The location of the media: sdCard or server"}),n("design:type",String)],$t.prototype,"mediaLocation",void 0),r([e.OneToOne((()=>Jt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"eventTypeId",referencedColumnName:"id"}),n("design:type",Object)],$t.prototype,"eventType",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],$t.prototype,"createdAt",void 0),r([e.Column("binary",{name:"tripId",length:16,transformer:me,nullable:!0}),n("design:type",String)],$t.prototype,"tripId",void 0),r([e.Column("int",{name:"requestedVideoDataId",nullable:!0}),n("design:type",Number)],$t.prototype,"requestedVideoDataId",void 0),r([e.OneToOne((()=>Kt),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedVideoDataId",referencedColumnName:"id"}),n("design:type",Object)],$t.prototype,"requestedVideoData",void 0),r([e.Column("int",{name:"requestedPictureDataId",nullable:!0}),n("design:type",Number)],$t.prototype,"requestedPictureDataId",void 0),r([e.OneToOne((()=>Ht),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"requestedPictureDataId",referencedColumnName:"id"}),n("design:type",Object)],$t.prototype,"requestedPictureData",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],$t.prototype,"deleted",void 0),$t=r([e.Index("ixClientIdImeiCreatedAt",["clientId","imei","createdAt"],{}),e.Index("ixDeviceCameraMedia_TripId",["tripId"]),e.Entity("deviceCameraMedia",{schema:"nova"})],$t);let Xt=class{imei;cameraSource;mediaLiveInputId;mediaLiveChannelId;rtmpServerUrl;rtmpStreamKey;outputUrl;status;commandSequenceNumber;lastRequestedAt;lastRequestedBy;lastRequestedByUser;lastViewerSeenAt};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Xt.prototype,"imei",void 0),r([e.PrimaryColumn("enum",{name:"cameraSource",enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],Xt.prototype,"cameraSource",void 0),r([e.Column("varchar",{name:"mediaLiveInputId",length:50,nullable:!0}),n("design:type",String)],Xt.prototype,"mediaLiveInputId",void 0),r([e.Column("varchar",{name:"mediaLiveChannelId",length:50,nullable:!0}),n("design:type",String)],Xt.prototype,"mediaLiveChannelId",void 0),r([e.Column("varchar",{name:"rtmpServerUrl",length:100,nullable:!0}),n("design:type",String)],Xt.prototype,"rtmpServerUrl",void 0),r([e.Column("varchar",{name:"rtmpStreamKey",length:20,nullable:!0}),n("design:type",String)],Xt.prototype,"rtmpStreamKey",void 0),r([e.Column("varchar",{name:"outputUrl",length:255,nullable:!0}),n("design:type",String)],Xt.prototype,"outputUrl",void 0),r([e.Column("enum",{name:"status",enum:Object.values(_),nullable:!0}),n("design:type",String)],Xt.prototype,"status",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],Xt.prototype,"commandSequenceNumber",void 0),r([e.Column("datetime",{name:"lastRequestedAt",nullable:!0}),n("design:type",Date)],Xt.prototype,"lastRequestedAt",void 0),r([e.Column("binary",{name:"lastRequestedBy",length:16,transformer:me,nullable:!0}),n("design:type",String)],Xt.prototype,"lastRequestedBy",void 0),r([e.OneToOne((()=>xe),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"lastRequestedBy",referencedColumnName:"id"}),n("design:type",Object)],Xt.prototype,"lastRequestedByUser",void 0),r([e.Column("datetime",{name:"lastViewerSeenAt",nullable:!0}),n("design:type",Date)],Xt.prototype,"lastViewerSeenAt",void 0),Xt=r([e.Entity("deviceCameraMediaStreamingData",{schema:"nova"})],Xt);let Yt=class{id;imei;cameraSource;startedAt;lastHeartbeatAt;closedAt;userId};r([e.PrimaryColumn("binary",{name:"id",length:16,transformer:me}),n("design:type",String)],Yt.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Yt.prototype,"imei",void 0),r([e.Column("enum",{name:"cameraSource",enum:Object.values(L),comment:"The camera source: front or interior"}),n("design:type",String)],Yt.prototype,"cameraSource",void 0),r([e.Column("datetime",{name:"startedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Yt.prototype,"startedAt",void 0),r([e.Column("datetime",{name:"lastHeartbeatAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Yt.prototype,"lastHeartbeatAt",void 0),r([e.Column("datetime",{name:"closedAt",nullable:!0}),n("design:type",Date)],Yt.prototype,"closedAt",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:me,nullable:!0}),n("design:type",String)],Yt.prototype,"userId",void 0),Yt=r([e.Entity("deviceCameraMediaStreamingSession",{schema:"nova"})],Yt);let Zt=class{imei;startTime;endTime;status;retries;totalFrames;syncedFrames;commandSequenceNumber;updatedAt;syncedFrameIds;filesInCard;deleteCmdSequenceNumber};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Zt.prototype,"imei",void 0),r([e.PrimaryColumn("datetime",{name:"startTime"}),n("design:type",Date)],Zt.prototype,"startTime",void 0),r([e.PrimaryColumn("datetime",{name:"endTime"}),n("design:type",Date)],Zt.prototype,"endTime",void 0),r([e.Column("varchar",{name:"status",length:255,default:"pending"}),n("design:type",String)],Zt.prototype,"status",void 0),r([e.Column("int",{name:"retries",default:0}),n("design:type",Number)],Zt.prototype,"retries",void 0),r([e.Column("int",{name:"totalFrames",default:0}),n("design:type",Number)],Zt.prototype,"totalFrames",void 0),r([e.Column("int",{name:"syncedFrames",default:0}),n("design:type",Number)],Zt.prototype,"syncedFrames",void 0),r([e.Column("varchar",{name:"commandSequenceNumber",length:10,nullable:!0}),n("design:type",String)],Zt.prototype,"commandSequenceNumber",void 0),r([e.Column("datetime",{name:"updatedAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Zt.prototype,"updatedAt",void 0),r([e.Column("json",{name:"syncedFrameIds",nullable:!0}),n("design:type",Array)],Zt.prototype,"syncedFrameIds",void 0),r([e.Column("tinyint",{name:"filesInCard",nullable:!0,width:1,transformer:new c,default:()=>"'1'"}),n("design:type",Boolean)],Zt.prototype,"filesInCard",void 0),r([e.Column("varchar",{name:"deleteCmdSequenceNumber",length:10,nullable:!0}),n("design:type",String)],Zt.prototype,"deleteCmdSequenceNumber",void 0),Zt=r([e.Index("ixDeviceCameraMediaSyncStatus_imei_status_updatedAt",["imei","status","updatedAt"],{}),e.Entity("deviceCameraMediaSyncStatus",{schema:"nova"})],Zt);let ei=class{id;clientId;imei;assignedTo;startDate;endDate};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ei.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ei.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ei.prototype,"imei",void 0),r([e.Column("varchar",{name:"assignedTo",length:255}),n("design:type",String)],ei.prototype,"assignedTo",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ei.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],ei.prototype,"endDate",void 0),ei=r([e.Index("ixuDeviceChangesHistoryClientIdImei",["clientId","imei"]),e.Entity("deviceChangesHistory",{schema:"nova"})],ei);let ti=class{clientId;imei;eventBehaviorType;eventsConfiguration;pendingEventsConfiguration;updateConfigPendingCommandId;createdAt;modifiedAt;extraParams;pendingExtraParams};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],ti.prototype,"clientId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],ti.prototype,"imei",void 0),r([e.PrimaryColumn("enum",{name:"eventBehaviorType",enum:Object.values(q)}),n("design:type",String)],ti.prototype,"eventBehaviorType",void 0),r([e.Column("json",{name:"eventsConfiguration",nullable:!0}),n("design:type",Array)],ti.prototype,"eventsConfiguration",void 0),r([e.Column("json",{name:"pendingEventsConfiguration",nullable:!0}),n("design:type",Array)],ti.prototype,"pendingEventsConfiguration",void 0),r([e.Column("varchar",{name:"updateConfigPendingCommandId",nullable:!0,length:50}),n("design:type",String)],ti.prototype,"updateConfigPendingCommandId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ti.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ti.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],ti.prototype,"extraParams",void 0),r([e.Column("json",{name:"pendingExtraParams",nullable:!0}),n("design:type",Object)],ti.prototype,"pendingExtraParams",void 0),ti=r([e.Entity("deviceEventsTriggerConfiguration",{schema:"nova"})],ti);let ii=class{id;clientId;imei;trackerName;status;createAt};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",String)],ii.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],ii.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],ii.prototype,"imei",void 0),r([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],ii.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],ii.prototype,"status",void 0),r([e.Column("datetime",{name:"createAt",nullable:!0}),n("design:type",Date)],ii.prototype,"createAt",void 0),ii=r([e.Entity("deviceHistory",{schema:"nova"})],ii);let ri=class{id;url;portNumber;protocol;deviceTypeId;status};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],ri.prototype,"id",void 0),r([e.Column("varchar",{name:"url",nullable:!0,length:1e3}),n("design:type",String)],ri.prototype,"url",void 0),r([e.Column("smallint",{name:"portNumber",nullable:!0}),n("design:type",Number)],ri.prototype,"portNumber",void 0),r([e.Column("varchar",{name:"protocol",nullable:!0,length:5}),n("design:type",String)],ri.prototype,"protocol",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ri.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],ri.prototype,"status",void 0),ri=r([e.Entity("deviceModelListener",{schema:"nova"})],ri);let ni=class{id;imeiMain;btmacMain;imeiSecondary;btmacSecondary;pairingMode;connectionType;mainDeviceStatus;secondaryDeviceStatus;notes;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ni.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiMain",length:15}),n("design:type",String)],ni.prototype,"imeiMain",void 0),r([e.Column("varchar",{name:"btmacMain",length:20}),n("design:type",String)],ni.prototype,"btmacMain",void 0),r([e.Column("varchar",{name:"imeiSecondary",length:15}),n("design:type",String)],ni.prototype,"imeiSecondary",void 0),r([e.Column("varchar",{name:"btmacSecondary",length:20}),n("design:type",String)],ni.prototype,"btmacSecondary",void 0),r([e.Column("varchar",{name:"pairingMode",nullable:!0,length:20}),n("design:type",String)],ni.prototype,"pairingMode",void 0),r([e.Column("varchar",{name:"connectionType",nullable:!0,length:20}),n("design:type",String)],ni.prototype,"connectionType",void 0),r([e.Column("varchar",{name:"mainDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],ni.prototype,"mainDeviceStatus",void 0),r([e.Column("varchar",{name:"secondaryDeviceStatus",nullable:!0,length:1e3}),n("design:type",String)],ni.prototype,"secondaryDeviceStatus",void 0),r([e.Column("varchar",{name:"notes",nullable:!0,length:1e3}),n("design:type",String)],ni.prototype,"notes",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],ni.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ni.prototype,"modifiedAt",void 0),ni=r([e.Index("ixuDevicePairingImeiSecondary",["imeiSecondary"],{unique:!0}),e.Index("ixuDevicePairingImeiMain",["imeiMain"],{unique:!0}),e.Index("ixuDevicePairingImeiMainImeiSecondary",["imeiMain","imeiSecondary"],{unique:!0}),e.Entity("devicePairing",{schema:"nova"})],ni);let ai=class{id;imeiOld;iccidOld;imeiNew;iccidNew;userId;clientId;createAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ai.prototype,"id",void 0),r([e.Column("varchar",{name:"imeiOld",length:15}),n("design:type",String)],ai.prototype,"imeiOld",void 0),r([e.Column("varchar",{name:"iccidOld",length:25}),n("design:type",String)],ai.prototype,"iccidOld",void 0),r([e.Column("varchar",{name:"imeiNew",length:15}),n("design:type",String)],ai.prototype,"imeiNew",void 0),r([e.Column("varchar",{name:"iccidNew",length:25}),n("design:type",String)],ai.prototype,"iccidNew",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],ai.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],ai.prototype,"clientId",void 0),r([e.Column("datetime",{name:"createAt"}),n("design:type",Date)],ai.prototype,"createAt",void 0),ai=r([e.Index("ixDeviceReplacementClientId",["clientId"],{}),e.Index("ixDeviceReplacementImeiOld",["imeiOld"],{}),e.Entity("deviceReplacement",{schema:"nova"})],ai);let oi=class{imei;clientId;created;sendTime;data;client;device;clientDeviceSetting};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],oi.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],oi.prototype,"clientId",void 0),r([e.Column("datetime",{name:"created"}),n("design:type",Date)],oi.prototype,"created",void 0),r([e.Column("datetime",{name:"sendTime"}),n("design:type",Date)],oi.prototype,"sendTime",void 0),r([e.Column("json",{name:"data",nullable:!0}),n("design:type",Object)],oi.prototype,"data",void 0),r([e.OneToOne((()=>Se),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn({name:"clientId",referencedColumnName:"id"}),n("design:type",Se)],oi.prototype,"client",void 0),oi=r([e.Index("ixDeviceStatusClientId_SendTime",["clientId","sendTime"],{}),e.Index("ixDeviceStatusSendTime",["sendTime"],{}),e.Index("ixDeviceStatusCreated",["created"],{}),e.Entity("deviceStatus",{schema:"nova"})],oi);let si=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],si.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],si.prototype,"clientId",void 0),r([e.Column("varchar",{name:"title",length:50}),n("design:type",String)],si.prototype,"title",void 0),r([e.Column("varchar",{name:"description",length:255}),n("design:type",String)],si.prototype,"description",void 0),r([e.Column("tinyint",{name:"repeats",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],si.prototype,"repeats",void 0),r([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],si.prototype,"dueDate",void 0),r([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],si.prototype,"dueOdometer",void 0),r([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],si.prototype,"dueActiveHours",void 0),r([e.Column("double",{name:"intervalDays",nullable:!0}),n("design:type",Number)],si.prototype,"intervalDays",void 0),r([e.Column("datetime",{name:"intervalStartDate",nullable:!0}),n("design:type",Date)],si.prototype,"intervalStartDate",void 0),r([e.Column("double",{name:"intervalOdometer",nullable:!0}),n("design:type",Number)],si.prototype,"intervalOdometer",void 0),r([e.Column("double",{name:"intervalStartingOdometer",nullable:!0}),n("design:type",Number)],si.prototype,"intervalStartingOdometer",void 0),r([e.Column("double",{name:"intervalActiveHours",nullable:!0}),n("design:type",Number)],si.prototype,"intervalActiveHours",void 0),r([e.Column("double",{name:"intervalStartingActiveHours",nullable:!0}),n("design:type",Number)],si.prototype,"intervalStartingActiveHours",void 0),r([e.Column("text",{name:"notes",nullable:!0}),n("design:type",String)],si.prototype,"notes",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],si.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],si.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],si.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],si.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],si.prototype,"deletedBy",void 0),r([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],si.prototype,"deletedAt",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],si.prototype,"status",void 0),r([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],si.prototype,"assignedTo",void 0),r([e.OneToMany((()=>li),(e=>e.taskSchedule)),n("design:type",Array)],si.prototype,"deviceTasks",void 0),si=r([e.Index("ixTaskScheduleClientId",["clientId"],{}),e.Index("ixTaskScheduleStatus",["status"],{}),e.Entity("taskSchedule",{schema:"nova"})],si);let li=class{taskScheduleId;imei;clientId;taskSchedule};r([e.Column({type:"int",primary:!0,name:"taskScheduleId"}),n("design:type",Number)],li.prototype,"taskScheduleId",void 0),r([e.Column("varchar",{name:"imei",primary:!0,length:15}),n("design:type",String)],li.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],li.prototype,"clientId",void 0),r([e.OneToOne((()=>si),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],li.prototype,"taskSchedule",void 0),li=r([e.Index("ixDeviceTask_TaskScheduleId",["taskScheduleId"],{}),e.Index("ixDeviceTask_ClientId",["clientId"],{}),e.Index("ixDeviceTask_Imei",["imei"],{}),e.Entity("deviceTask",{schema:"nova"})],li);let di=class{deviceTypeId;featureKey;value};r([e.Column("smallint",{primary:!0,name:"deviceTypeId"}),n("design:type",Number)],di.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{primary:!0,name:"featureKey",length:50}),n("design:type",String)],di.prototype,"featureKey",void 0),r([e.Column("varchar",{name:"value",nullable:!0,length:255}),n("design:type",String)],di.prototype,"value",void 0),di=r([e.Index("ixDeviceTypeFeatureFeatureKey",["featureKey"],{}),e.Entity("deviceTypeFeature",{schema:"nova"})],di);let ui=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;sourcePlatformFirmwareVersion;platformFirmwareVersion};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],ui.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceTypeId"}),n("design:type",Number)],ui.prototype,"deviceTypeId",void 0),r([e.ManyToOne((()=>Ie),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],ui.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"sourceFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"sourceFirmwareVersion",void 0),r([e.Column("varchar",{name:"firmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"firmwareVersion",void 0),r([e.Column("varchar",{name:"firmwareCode",nullable:!0,length:50}),n("design:type",String)],ui.prototype,"firmwareCode",void 0),r([e.Column("varchar",{name:"firmwareUrl",nullable:!0,length:1e3}),n("design:type",String)],ui.prototype,"firmwareUrl",void 0),r([e.Column("datetime",{name:"releaseDate",nullable:!0}),n("design:type",Date)],ui.prototype,"releaseDate",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:1e3}),n("design:type",String)],ui.prototype,"description",void 0),r([e.Column("tinyint",{name:"enabled",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ui.prototype,"enabled",void 0),r([e.Column("varchar",{name:"upgradeType",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"upgradeType",void 0),r([e.Column("varchar",{name:"postUpgradeConfig",nullable:!0,length:1e3}),n("design:type",String)],ui.prototype,"postUpgradeConfig",void 0),r([e.Column("varchar",{name:"stage",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"stage",void 0),r([e.Column({type:"mediumint",name:"parentId",nullable:!0}),n("design:type",Number)],ui.prototype,"parentId",void 0),r([e.Column("smallint",{name:"maxDeployPercentage",nullable:!0}),n("design:type",Number)],ui.prototype,"maxDeployPercentage",void 0),r([e.Column({type:"smallint",name:"qmsRate",nullable:!0}),n("design:type",Number)],ui.prototype,"qmsRate",void 0),r([e.Column({type:"smallint",name:"pendingTimeout",nullable:!0}),n("design:type",Number)],ui.prototype,"pendingTimeout",void 0),r([e.Column("tinyint",{name:"forceSMS",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],ui.prototype,"forceSMS",void 0),r([e.Column("varchar",{name:"MCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"MCUFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceMCUFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"sourceMCUFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceBTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"sourceBTFirmwareVersion",void 0),r([e.Column("varchar",{name:"BTFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"BTFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourceModemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"sourceModemFirmwareVersion",void 0),r([e.Column("varchar",{name:"modemFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"modemFirmwareVersion",void 0),r([e.Column("varchar",{name:"sourcePlatformFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"sourcePlatformFirmwareVersion",void 0),r([e.Column("varchar",{name:"platformFirmwareVersion",nullable:!0,length:25}),n("design:type",String)],ui.prototype,"platformFirmwareVersion",void 0),ui=r([e.Index("ixDeviceTypeFirmwareDeviceTypeId",["deviceTypeId"],{}),e.Entity("deviceTypeFirmware",{schema:"nova"})],ui);let ci=class{id;name;isBusiness};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],ci.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100,nullable:!0}),n("design:type",String)],ci.prototype,"name",void 0),r([e.Column("tinyint",{name:"isBusiness",nullable:!0,width:1,default:0,transformer:new c}),n("design:type",Boolean)],ci.prototype,"isBusiness",void 0),ci=r([e.Entity("emailDomain",{schema:"nova"})],ci);let pi=class{id;tagId;clientId;entityType;entityId;metadata;createdBy;createdAt;modifiedBy;modifiedAt;userId;imei;isSecurityGroup};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pi.prototype,"id",void 0),r([e.Column("int",{name:"tagId"}),n("design:type",Number)],pi.prototype,"tagId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],pi.prototype,"clientId",void 0),r([e.Column("enum",{enum:["Device","Boundary","User","UserInvitation","ClientAlertConfiguration","LiveLink"],name:"entityType"}),n("design:type",String)],pi.prototype,"entityType",void 0),r([e.Column("int",{name:"entityId"}),n("design:type",Number)],pi.prototype,"entityId",void 0),r([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",String)],pi.prototype,"metadata",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],pi.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],pi.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],pi.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],pi.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"userId",length:16,nullable:!0}),n("design:type",Buffer)],pi.prototype,"userId",void 0),r([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],pi.prototype,"imei",void 0),r([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],pi.prototype,"isSecurityGroup",void 0),pi=r([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("ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId",["clientId","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"})],pi);let mi=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],mi.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],mi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],mi.prototype,"description",void 0),mi=r([e.Entity("entityType",{schema:"nova"})],mi);let yi=class{key;name;description;tags};r([e.Column("varchar",{primary:!0,name:"key",length:50}),n("design:type",String)],yi.prototype,"key",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],yi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:255}),n("design:type",String)],yi.prototype,"description",void 0),r([e.Column("varchar",{name:"tags",nullable:!0,length:500}),n("design:type",String)],yi.prototype,"tags",void 0),yi=r([e.Entity("feature",{schema:"nova"})],yi);let gi=class{id;clientId;deviceTypeId;imei};r([e.PrimaryGeneratedColumn({type:"mediumint",name:"id"}),n("design:type",Number)],gi.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],gi.prototype,"clientId",void 0),r([e.Column("int",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],gi.prototype,"deviceTypeId",void 0),r([e.Column("varchar",{name:"imei",length:15,nullable:!0}),n("design:type",String)],gi.prototype,"imei",void 0),gi=r([e.Index("ixFirmwareAutoUpgradeBlacklistClientId",["clientId"],{}),e.Index("ixuFirmwareAutoUpgradeBlacklistClientIdDeviceTypeId",["clientId","deviceTypeId"],{unique:!0}),e.Entity("firmwareAutoUpgradeBlacklist",{schema:"nova"})],gi);let vi=class{id;deviceTypeFirmwareId;deviceTypeFirmware;clientId;imei;status;behaviorName;behaviorParams;createdAt;modifiedAt;preConfig;postConfig;commandsTaskId;postUpgradeCompleted;fwCompletedOn;device};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],vi.prototype,"id",void 0),r([e.Column("mediumint",{name:"deviceTypeFirmwareId"}),n("design:type",Number)],vi.prototype,"deviceTypeFirmwareId",void 0),r([e.ManyToOne((()=>ui),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn(),n("design:type",Object)],vi.prototype,"deviceTypeFirmware",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],vi.prototype,"clientId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],vi.prototype,"imei",void 0),r([e.Column("varchar",{name:"status",length:40}),n("design:type",String)],vi.prototype,"status",void 0),r([e.Column("varchar",{name:"behaviorName",nullable:!0,length:25}),n("design:type",String)],vi.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],vi.prototype,"behaviorParams",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],vi.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],vi.prototype,"modifiedAt",void 0),r([e.Column("text",{name:"preConfig",nullable:!0}),n("design:type",String)],vi.prototype,"preConfig",void 0),r([e.Column("text",{name:"postConfig",nullable:!0}),n("design:type",String)],vi.prototype,"postConfig",void 0),r([e.Column("varchar",{name:"commandsTaskId",nullable:!0,length:50}),n("design:type",String)],vi.prototype,"commandsTaskId",void 0),r([e.Column("tinyint",{name:"postUpgradeCompleted",nullable:!0,width:1,default:0,transformer:new c}),n("design:type",Boolean)],vi.prototype,"postUpgradeCompleted",void 0),r([e.Column("datetime",{name:"fwCompletedOn",nullable:!0}),n("design:type",Date)],vi.prototype,"fwCompletedOn",void 0),vi=r([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"})],vi);let hi=class{id;planId;name;description;consumer;modelFamily;model;planCode;price;totalPrice;billingInterval;annual;prepaid;legacy;test;validFrom;validUntil;createdAt;new;enabled};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],hi.prototype,"id",void 0),r([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],hi.prototype,"planId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],hi.prototype,"name",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:256}),n("design:type",String)],hi.prototype,"description",void 0),r([e.Column("varchar",{name:"consumer",length:30}),n("design:type",String)],hi.prototype,"consumer",void 0),r([e.Column("varchar",{name:"modelFamily",length:30}),n("design:type",String)],hi.prototype,"modelFamily",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:30}),n("design:type",String)],hi.prototype,"model",void 0),r([e.Column("varchar",{name:"planCode",length:100}),n("design:type",String)],hi.prototype,"planCode",void 0),r([e.Column("decimal",{name:"price",precision:19,scale:4}),n("design:type",Number)],hi.prototype,"price",void 0),r([e.Column("decimal",{name:"totalPrice",precision:19,scale:4}),n("design:type",Number)],hi.prototype,"totalPrice",void 0),r([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],hi.prototype,"billingInterval",void 0),r([e.Column("tinyint",{name:"annual",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"annual",void 0),r([e.Column("tinyint",{name:"prepaid",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"prepaid",void 0),r([e.Column("tinyint",{name:"legacy",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"legacy",void 0),r([e.Column("tinyint",{name:"test",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"test",void 0),r([e.Column("date",{name:"validFrom",nullable:!0,transformer:new qe}),n("design:type",Date)],hi.prototype,"validFrom",void 0),r([e.Column("date",{name:"validUntil",nullable:!0,transformer:new qe}),n("design:type",Date)],hi.prototype,"validUntil",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],hi.prototype,"createdAt",void 0),r([e.Column("tinyint",{name:"new",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"new",void 0),r([e.Column("tinyint",{name:"enabled",width:1,transformer:new c}),n("design:type",Boolean)],hi.prototype,"enabled",void 0),hi=r([e.Index("ixuHistoricalBillingPlanPlanIdConsumerModelValidFromValidUntil",["planId","consumer","model","validFrom","validUntil"],{unique:!0}),e.Entity("historicalBillingPlan",{schema:"nova"})],hi);let Ii=class{iccid;status;processing;carrierFound;modifiedAt};r([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],Ii.prototype,"iccid",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:100}),n("design:type",String)],Ii.prototype,"status",void 0),r([e.Column("tinyint",{name:"processing",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],Ii.prototype,"processing",void 0),r([e.Column("int",{name:"carrierFound",nullable:!0}),n("design:type",Number)],Ii.prototype,"carrierFound",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Ii.prototype,"modifiedAt",void 0),Ii=r([e.Index("ixIccidStatusProcessing",["processing"],{}),e.Index("ixIccidStatusModifiedAt",["modifiedAt"],{}),e.Entity("iccidStatus",{schema:"nova"})],Ii);let fi=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;model;realModel;po;outOfInventory;apn;createdAt;modifiedAt;itsEsim;btmac;serviceProvider;deviceType};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fi.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],fi.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],fi.prototype,"iccid",void 0),r([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],fi.prototype,"carrier",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],fi.prototype,"phone",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],fi.prototype,"deviceTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],fi.prototype,"serviceProviderProductId",void 0),r([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'",transformer:new c}),n("design:type",Boolean)],fi.prototype,"isValid",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],fi.prototype,"model",void 0),r([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],fi.prototype,"realModel",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],fi.prototype,"po",void 0),r([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],fi.prototype,"outOfInventory",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],fi.prototype,"apn",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],fi.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],fi.prototype,"modifiedAt",void 0),r([e.Column("tinyint",{name:"itsEsim",width:1,nullable:!0,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],fi.prototype,"itsEsim",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],fi.prototype,"btmac",void 0),fi=r([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"})],fi);let Ci=class{id;iccid;imei;carrier;lastUpdatedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ci.prototype,"id",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],Ci.prototype,"iccid",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Ci.prototype,"imei",void 0),r([e.Column("tinyint",{name:"carrier"}),n("design:type",Number)],Ci.prototype,"carrier",void 0),r([e.Column("datetime",{name:"lastUpdatedAt"}),n("design:type",Date)],Ci.prototype,"lastUpdatedAt",void 0),Ci=r([e.Index("ixImeiIccidHistoryIccid",["iccid"],{}),e.Index("ixImeiIccidHistoryImei",["imei"],{}),e.Entity("imeiIccidHistory",{schema:"nova"})],Ci);let bi=class{imei;iccid;btmac};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],bi.prototype,"imei",void 0),r([e.PrimaryColumn("varchar",{name:"iccid",length:25}),n("design:type",String)],bi.prototype,"iccid",void 0),r([e.Column("varchar",{name:"btmac",nullable:!0,length:20}),n("design:type",String)],bi.prototype,"btmac",void 0),bi=r([e.Entity("imeiIccidImport",{schema:"nova"})],bi);let Si=class{id;industry;mainIndustry;group;sector;displayName};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Si.prototype,"id",void 0),r([e.Column("varchar",{name:"industry",length:100}),n("design:type",String)],Si.prototype,"industry",void 0),r([e.Column("varchar",{name:"mainIndustry",length:100}),n("design:type",String)],Si.prototype,"mainIndustry",void 0),r([e.Column("varchar",{name:"group",length:100}),n("design:type",String)],Si.prototype,"group",void 0),r([e.Column("varchar",{name:"sector",length:100}),n("design:type",String)],Si.prototype,"sector",void 0),r([e.Column("varchar",{name:"displayName",nullable:!0,length:100}),n("design:type",String)],Si.prototype,"displayName",void 0),Si=r([e.Entity("industry",{schema:"nova"})],Si);var Ai=Object.freeze({__proto__:null}),Di=Object.freeze({__proto__:null}),Ri=Object.freeze({__proto__:null}),wi=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 Oi=["filters.clientId","filters.ssoDomain"],xi=["filters.clientId"],ki=["values.movementTripThreshold","values.stopTripThreshold","values.mapUpdateMode","values.maxUsersAllowed","values.ssoDomain","values.ssoMetadata","values.assetProfileStatusLabels","values.assetProfileStatusLabelsEnabled"],Mi=["clientId"],Fi=["enterprise","maintenanceModule","billingMethod","customerSegment"],Li=["filters.clientId"],Qi=["values.enterprise","values.maintenanceModule","values.billingMethod","values.customerSegment"],qi=["clientId","userActivationId","tokenUrl","fleetUrl","requestParams"];var _i=Object.freeze({__proto__:null,oneRequiredCreateCustomerAttributeParamsAttributes:Fi,oneRequiredGetClientConfigurationParamsAttributes:Oi,oneRequiredUpdateClientConfigurationParamsAttributes:ki,oneRequiredUpdateCustomerAttributeParamsAttributes:Qi,requireCreateClientIngestorConfigurationParamsAttributes:qi,requiredCreateCustomerAttributeParamsAttributes:Mi,requiredUpdateClientConfigurationParamsAttributes:xi,requiredUpdateCustomerAttributeParamsAttributes:Li}),Wi=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","assignmentMode","extendedAttributes"],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"],nr=["filters.id"];var ar,or,sr=Object.freeze({__proto__:null,oneRequiredBulkDeleteParamsAttributes:ir,requiredBulkDeleteParamsAttributes:tr,requiredCreateEntityTagParamsAttributes:Yi,requiredDeleteEntityTagParamsAttributes:Zi,requiredEnforceEntityTagsByEntityParamsAttributes:rr,requiredGetEntityTagByIdParamsAttributes:nr,requiredSearchEntityTagsParamsAttributes:er});!function(e){e.BB="0",e.MCU="1",e.BLE="2",e.MODEM="7"}(ar||(ar={})),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 ar}}),ur=Object.freeze({__proto__:null}),cr=Object.freeze({__proto__:null}),pr=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 mr=Object.freeze({__proto__:null,get LogLevel(){return lr}}),yr=Object.freeze({__proto__:null}),gr=Object.freeze({__proto__:null});const vr=["values.roleId","values.devicesAccess","values.boundariesAccess","values.minAccessDate","values.tasksAccess"],hr=["userId","imei"],Ir=["userId","boundaryId"],fr=["filters.clientId","filters.imeisList"],Cr=["filters.clientId","filters.boundaryIdList"];var br=Object.freeze({__proto__:null,oneRequiredUserRoleParamsAttributes:vr,requiredCreateUserAuthorizedBoundaryParamsAttributes:Ir,requiredCreateUserAuthorizedDeviceParamsAttributes:hr,requiredGetUserIdsByClientIdAndAuthorizedBoundariesParamsAttributes:Cr,requiredGetUserIdsByClientIdAndAuthorizedDevicesParamsAttributes:fr});const Sr=["createdBy","clientId","name"],Ar=["createdBy","clientId","tags"],Dr=["filters.tagId","filters.clientId","values.modifiedBy"],Rr=["clientId","tagId","deletedBy"],wr=["filters.clientId"],Tr=["filters.clientId"],Nr=["filters.userId","filters.userNumberId"];var Br=Object.freeze({__proto__:null,oneRequiredSearchTagsByUserParamsAttributes:Nr,requiredBulkCreateTagParamsAttributes:Ar,requiredCreateTagParamsAttributes:Sr,requiredDeleteTagParamsAttributes:Rr,requiredSearchTagsByUserParamsAttributes:Tr,requiredSearchTagsParamsAttributes:wr,requiredUpdateTagParamsAttributes:Dr});var Ur=Object.freeze({__proto__:null,requiredCreateTripParamsAttributes:["tripGuid","imei","startDate","distance","startLat","startLon","startAddress","positionStart","tripCompletionStatusId","clientId","duration","tripType","startMessageId"],requiredGetTripsParamsAttributes:["filters.clientId","filters.from","filters.to"],requiredGetUserTripConfigurationParamsAttributes:["filters.imei"],requiredUpdateTripEndValuesParamsAttributes:["filters.tripGuid","values.endDate","values.endLat","values.endLon","values.endAddress","values.positionEnd","values.endMessageId","values.distance","values.duration","values.tripType","values.tripCompletionStatusId"]});const Er=["filters.id","filters.numberId"];var Pr=Object.freeze({__proto__:null,oneRequiredGetUserByIdParams:Er}),Or=Object.freeze({__proto__:null}),xr=Object.freeze({__proto__:null}),kr=Object.freeze({__proto__:null}),Mr=Object.freeze({__proto__:null}),Fr=Object.freeze({__proto__:null}),Lr=Object.freeze({__proto__:null}),Qr=Object.freeze({__proto__:null}),qr=Object.freeze({__proto__:null}),_r=Object.freeze({__proto__:null,Acumatica:Ai,AlertTypes:Ri,Alerts:Di,AppFeatures:wi,BLEMesh:Bi,BLEMeshConfiguration:Ui,Billing:Ti,Blacklist:Ni,Boundaries:Ei,ClientAlertConfiguration:Pi,Clients:_i,Countries:Wi,DataExports:ji,Deactivations:zi,DeviceBehaviors:Vi,DevicePairings:Gi,DeviceStatus:Xi,Devices:$i,EntitiesTags:sr,Enums:ne,Firmwares:dr,Issues:ur,LatestUserAppInfo:cr,LiveLinks:pr,Logger:mr,NotificationRecipients:yr,Positions:gr,QueryBuilder:e.QueryBuilder,Security:br,SelectQueryBuilder:e.SelectQueryBuilder,Tags:Br,Trips:Ur,UserActivations:Or,UserAppFeedback:xr,UserAppIncidents:kr,UserConfigurations:Mr,UserDataDeletionRequests:Fr,UserInvitations:Lr,UserRatingRequests:Qr,UserRegistrationAttempts:qr,Users:Pr});let Wr=class{id;name;title;description;resolution;icon;createdAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Wr.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],Wr.prototype,"name",void 0),r([e.Column("varchar",{name:"title",nullable:!0,length:255}),n("design:type",String)],Wr.prototype,"title",void 0),r([e.Column("varchar",{name:"description",nullable:!0,length:2e3}),n("design:type",String)],Wr.prototype,"description",void 0),r([e.Column("varchar",{name:"resolution",nullable:!0,length:2e3}),n("design:type",String)],Wr.prototype,"resolution",void 0),r([e.Column("varchar",{name:"icon",nullable:!0,length:50}),n("design:type",String)],Wr.prototype,"icon",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Wr.prototype,"createdAt",void 0),Wr=r([e.Entity("issueTypes",{schema:"nova"})],Wr);let jr=class{id;issueTypeId;issueType;value;createdAt;modifiedAt;modifiedBy;sendTime;messageId;lat;lon;address;imei;clientId;status;snoozedUntil;resolvedAt;resolvedConfirmationAt;resolvedMessageId;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],jr.prototype,"id",void 0),r([e.Column("tinyint",{name:"issueTypeId"}),n("design:type",Number)],jr.prototype,"issueTypeId",void 0),r([e.OneToOne((()=>Wr),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],jr.prototype,"issueType",void 0),r([e.Column("varchar",{name:"value",nullable:!0,length:5e3}),n("design:type",String)],jr.prototype,"value",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],jr.prototype,"createdAt",void 0),r([e.UpdateDateColumn({name:"modifiedAt"}),n("design:type",Date)],jr.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"modifiedBy",length:16,transformer:me,nullable:!0}),n("design:type",String)],jr.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"sendTime",precision:3,nullable:!0}),n("design:type",Date)],jr.prototype,"sendTime",void 0),r([e.Column("binary",{name:"messageId",length:16,transformer:me,nullable:!0}),n("design:type",String)],jr.prototype,"messageId",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],jr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],jr.prototype,"lon",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],jr.prototype,"address",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],jr.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],jr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:50,default:()=>"'active'"}),n("design:type",String)],jr.prototype,"status",void 0),r([e.Column("datetime",{name:"snoozedUntil",precision:3,nullable:!0}),n("design:type",Date)],jr.prototype,"snoozedUntil",void 0),r([e.Column("datetime",{name:"resolvedAt",precision:3,nullable:!0}),n("design:type",Date)],jr.prototype,"resolvedAt",void 0),r([e.Column("datetime",{name:"resolvedConfirmationAt",precision:3,nullable:!0}),n("design:type",Date)],jr.prototype,"resolvedConfirmationAt",void 0),r([e.Column("binary",{name:"resolvedMessageId",length:16,transformer:me,nullable:!0}),n("design:type",String)],jr.prototype,"resolvedMessageId",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],jr.prototype,"deleted",void 0),jr=r([e.Index("ixIssueClientId_Imei_Status_CreatedAt",["clientId","imei","status","createdAt"],{}),e.Index("ixIssueClientId_Status_IssueTypeId_CreatedAt",["clientId","status","issueTypeId","createdAt"],{}),e.Index("ixIssueStatus_SnoozedUntil_ModifiedAt",["status","snoozedUntil","modifiedAt"],{}),e.Entity("issues",{schema:"nova"})],jr);let zr=class{imei;positionId;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],zr.prototype,"imei",void 0),r([e.Column({type:"bigint",name:"positionId"}),n("design:type",Number)],zr.prototype,"positionId",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],zr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],zr.prototype,"lon",void 0),r([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],zr.prototype,"actualDate",void 0),r([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],zr.prototype,"speed",void 0),r([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],zr.prototype,"odometer",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],zr.prototype,"createdAt",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],zr.prototype,"messageId",void 0),r([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],zr.prototype,"batteryPercentage",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],zr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],zr.prototype,"address",void 0),r([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],zr.prototype,"sendTime",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],zr.prototype,"gpsUtcTime",void 0),r([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],zr.prototype,"externalBatteryPercentage",void 0),r([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],zr.prototype,"externalPowerVoltage",void 0),r([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],zr.prototype,"azimuth",void 0),r([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],zr.prototype,"motionDetected",void 0),zr=r([e.Index("ixuLatestPositionMessageId",["messageId"],{unique:!0}),e.Index("ixLatestPositionActualDate",["actualDate"],{}),e.Index("ixLatestPositionClientId",["clientId"],{}),e.Index("ixLatestPositionId",["positionId"]),e.Entity("latestPosition",{schema:"nova"})],zr);let Vr=class{id;userId;deviceOs;appVersion;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Vr.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Vr.prototype,"userId",void 0),r([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],Vr.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],Vr.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Vr.prototype,"createdAt",void 0),Vr=r([e.Index("ixLatestUserAppInfoUserId",["userId"],{unique:!0}),e.Entity("latestUserAppInfo",{schema:"nova"})],Vr);let Gr=class{id;liveLinkId;liveLink;fileName;fileExtension;s3FilesPath;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Gr.prototype,"id",void 0),r([e.Column("binary",{name:"liveLinkId",length:16,transformer:me}),n("design:type",String)],Gr.prototype,"liveLinkId",void 0),r([e.OneToOne((()=>Jr),{createForeignKeyConstraints:!1,nullable:!1}),e.JoinColumn({name:"liveLinkId",referencedColumnName:"id"}),n("design:type",Object)],Gr.prototype,"liveLink",void 0),r([e.Column("varchar",{name:"fileName",length:255}),n("design:type",String)],Gr.prototype,"fileName",void 0),r([e.Column("varchar",{name:"fileExtension",length:15,nullable:!0}),n("design:type",String)],Gr.prototype,"fileExtension",void 0),r([e.Column("varchar",{name:"s3FilesPath",nullable:!0,length:255}),n("design:type",String)],Gr.prototype,"s3FilesPath",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Gr.prototype,"createdAt",void 0),Gr=r([e.Index("ixu_liveLinkId_fileName",["liveLinkId","fileName"],{unique:!0}),e.Entity("liveLinkMedia",{schema:"nova"})],Gr);let Jr=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}};r([e.Column("binary",{primary:!0,name:"id",length:16,transformer:me}),n("design:type",String)],Jr.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],Jr.prototype,"name",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Jr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'active'"}),n("design:type",String)],Jr.prototype,"status",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],Jr.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0}),n("design:type",Date)],Jr.prototype,"endDate",void 0),r([e.Column("varchar",{name:"deviceAccess"}),n("design:type",String)],Jr.prototype,"deviceAccess",void 0),r([e.Column("json",{name:"devices",nullable:!0}),n("design:type",Object)],Jr.prototype,"devices",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Jr.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"createdBy",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Jr.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",nullable:!0,length:100}),n("design:type",String)],Jr.prototype,"modifiedBy",void 0),r([e.Column("tinyint",{name:"historyAccess",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Jr.prototype,"historyAccess",void 0),r([e.Column("decimal",{name:"estimatedTheftValue",nullable:!0,precision:19,scale:4}),n("design:type",Number)],Jr.prototype,"estimatedTheftValue",void 0),r([e.Column("varchar",{name:"licensePlate",nullable:!0,length:50}),n("design:type",String)],Jr.prototype,"licensePlate",void 0),r([e.Column("varchar",{name:"suspectDescription",nullable:!0,length:255}),n("design:type",String)],Jr.prototype,"suspectDescription",void 0),r([e.OneToMany((()=>Gr),(e=>e.liveLink)),n("design:type",Array)],Jr.prototype,"medias",void 0),r([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Jr.prototype,"generateDefaults",null),r([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Jr.prototype,"updateModifiedAt",null),Jr=r([e.Index("ixLiveLinkClientId",["clientId"],{}),e.Entity("liveLink",{schema:"nova"})],Jr);let Hr=class{id;clientId;userId;email;braintreeCustomerId;paymentMethodToken;subscriptionId;imei;syncType;status;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Hr.prototype,"id",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Hr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"userId",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"userId",void 0),r([e.Column("varchar",{name:"email",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"email",void 0),r([e.Column("varchar",{name:"braintreeCustomerId",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"braintreeCustomerId",void 0),r([e.Column("varchar",{name:"paymentMethodToken",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"paymentMethodToken",void 0),r([e.Column("varchar",{name:"subscriptionId",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"imei",length:255,nullable:!0}),n("design:type",String)],Hr.prototype,"imei",void 0),r([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)],Hr.prototype,"syncType",void 0),r([e.Column("tinyint",{name:"status",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],Hr.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",precision:0}),n("design:type",Date)],Hr.prototype,"createdAt",void 0),Hr=r([e.Entity("m2Sync",{schema:"nova"})],Hr);let Kr=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Kr.prototype,"id",void 0),r([e.Column("varchar",{name:"customerId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"customerId",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"email",void 0),r([e.Column("varchar",{name:"customerUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"customerUpdatedAt",void 0),r([e.Column("varchar",{name:"createdIn",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"createdIn",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"lastName",void 0),r([e.Column("varchar",{name:"middleName",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"middleName",void 0),r([e.Column("varchar",{name:"postcode",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"postcode",void 0),r([e.Column("varchar",{name:"prefix",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"prefix",void 0),r([e.Column("varchar",{name:"region",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"region",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"street",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"city",void 0),r([e.Column("varchar",{name:"telephone",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"telephone",void 0),r([e.Column("varchar",{name:"countryId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"countryId",void 0),r([e.Column("varchar",{name:"company",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"company",void 0),r([e.Column("varchar",{name:"btAccountId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"btAccountId",void 0),r([e.Column("varchar",{name:"phoneCode",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"phoneCode",void 0),r([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"phoneCodeCountryId",void 0),r([e.Column("varchar",{name:"pinCode",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"pinCode",void 0),r([e.Column("varchar",{name:"stripeCustomerId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"stripeCustomerId",void 0),r([e.Column("varchar",{name:"activationCreated",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"activationCreated",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"imei",void 0),r([e.Column("varchar",{name:"deviceId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"deviceColor",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceColor",void 0),r([e.Column("varchar",{name:"btSubscriptionId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"btSubscriptionId",void 0),r([e.Column("varchar",{name:"servicePlanId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"servicePlanId",void 0),r([e.Column("varchar",{name:"billingInterval",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"billingInterval",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"status",void 0),r([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"orderId",void 0),r([e.Column("varchar",{name:"deviceUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceUpdatedAt",void 0),r([e.Column("varchar",{name:"deviceCreatedAt",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceCreatedAt",void 0),r([e.Column("varchar",{name:"importedDevice",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"importedDevice",void 0),r([e.Column("varchar",{name:"trackerName",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"trackerName",void 0),r([e.Column("varchar",{name:"trackerUse",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"trackerUse",void 0),r([e.Column("varchar",{name:"deviceStatus",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"deviceStatus",void 0),r([e.Column("varchar",{name:"planCode",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"planCode",void 0),r([e.Column("varchar",{name:"platformCode",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"platformCode",void 0),r([e.Column("varchar",{name:"platformName",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"platformName",void 0),r([e.Column("varchar",{name:"stripeCreatedAt",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"stripeCreatedAt",void 0),r([e.Column("varchar",{name:"stripeUpdatedAt",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"stripeUpdatedAt",void 0),r([e.Column("varchar",{name:"dateCaptured",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"dateCaptured",void 0),r([e.Column("text",{name:"cancelationReason",nullable:!0}),n("design:type",String)],Kr.prototype,"cancelationReason",void 0),r([e.Column("varchar",{name:"cancelationCreated",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"cancelationCreated",void 0),r([e.Column("varchar",{name:"cancelationReactivated",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"cancelationReactivated",void 0),r([e.Column("varchar",{name:"clientId",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"clientId",void 0),r([e.Column("text",{name:"itemsForRecovery",nullable:!0}),n("design:type",String)],Kr.prototype,"itemsForRecovery",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:255}),n("design:type",String)],Kr.prototype,"platform",void 0),Kr=r([e.Index("ixMagento2GpsbtSubscriptionId",["btSubscriptionId"],{}),e.Index("ixMagento2GpsImei",["imei"],{}),e.Entity("magento2Gps",{schema:"nova"})],Kr);let $r=class{magentoPlanCode;magentoBillingInterval;planAnnual;planId};r([e.Column("varchar",{primary:!0,name:"magentoPlanCode",length:100}),n("design:type",String)],$r.prototype,"magentoPlanCode",void 0),r([e.Column("varchar",{primary:!0,name:"magentoBillingInterval",length:50}),n("design:type",String)],$r.prototype,"magentoBillingInterval",void 0),r([e.Column("tinyint",{name:"planAnnual",width:1,transformer:new c}),n("design:type",Boolean)],$r.prototype,"planAnnual",void 0),r([e.Column("varchar",{name:"planId",length:100}),n("design:type",String)],$r.prototype,"planId",void 0),$r=r([e.Index("ixMagento2PlanPlanId",["planId"],{}),e.Index("ixMagento2PlanComposite",["planId","magentoPlanCode","magentoBillingInterval"],{}),e.Entity("magento2Plan",{schema:"nova"})],$r);let Xr=class{id;mcc;mnc;networkName;operatorName;countryCode;countryName};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],Xr.prototype,"id",void 0),r([e.Column("smallint",{name:"mcc"}),n("design:type",Number)],Xr.prototype,"mcc",void 0),r([e.Column("smallint",{name:"mnc"}),n("design:type",Number)],Xr.prototype,"mnc",void 0),r([e.Column("varchar",{name:"networkName",nullable:!0,length:255}),n("design:type",String)],Xr.prototype,"networkName",void 0),r([e.Column("varchar",{name:"operatorName",nullable:!0,length:100}),n("design:type",String)],Xr.prototype,"operatorName",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:50}),n("design:type",String)],Xr.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"countryName",nullable:!0,length:100}),n("design:type",String)],Xr.prototype,"countryName",void 0),Xr=r([e.Entity("mobileNetwork",{schema:"nova"})],Xr);let Yr=class{imei;iccid;model;labelModel;partNo;serialNo;shipNum;workOrder;cartonNo;location};r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],Yr.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",length:50}),n("design:type",String)],Yr.prototype,"iccid",void 0),r([e.Column("varchar",{name:"model",length:50}),n("design:type",String)],Yr.prototype,"model",void 0),r([e.Column("varchar",{name:"labelModel",length:50}),n("design:type",String)],Yr.prototype,"labelModel",void 0),r([e.Column("varchar",{name:"partNo",length:50}),n("design:type",String)],Yr.prototype,"partNo",void 0),r([e.Column("varchar",{name:"serialNo",length:50}),n("design:type",String)],Yr.prototype,"serialNo",void 0),r([e.PrimaryColumn("varchar",{name:"shipNum",length:50}),n("design:type",String)],Yr.prototype,"shipNum",void 0),r([e.Column("varchar",{name:"workOrder",length:50}),n("design:type",String)],Yr.prototype,"workOrder",void 0),r([e.Column("varchar",{name:"cartonNo",length:50}),n("design:type",String)],Yr.prototype,"cartonNo",void 0),r([e.Column("varchar",{name:"location",length:6}),n("design:type",String)],Yr.prototype,"location",void 0),Yr=r([e.Entity("orderShipmentInternational",{schema:"nova"})],Yr);let Zr=class{id;imei;lat;lon;actualDate;speed;odometer;createdAt;messageId;batteryPercentage;clientId;address;sendTime;gpsUtcTime;externalBatteryPercentage;externalPowerVoltage;azimuth;motionDetected;deleted};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],Zr.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Zr.prototype,"imei",void 0),r([e.Column("decimal",{name:"lat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],Zr.prototype,"lat",void 0),r([e.Column("decimal",{name:"lon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],Zr.prototype,"lon",void 0),r([e.Column("datetime",{name:"actualDate",precision:3}),n("design:type",Date)],Zr.prototype,"actualDate",void 0),r([e.Column("float",{name:"speed",nullable:!0}),n("design:type",Number)],Zr.prototype,"speed",void 0),r([e.Column("double",{name:"odometer",nullable:!0}),n("design:type",Number)],Zr.prototype,"odometer",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],Zr.prototype,"createdAt",void 0),r([e.Column("binary",{name:"messageId",length:16}),n("design:type",Buffer)],Zr.prototype,"messageId",void 0),r([e.Column("smallint",{name:"batteryPercentage",nullable:!0}),n("design:type",Number)],Zr.prototype,"batteryPercentage",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Zr.prototype,"clientId",void 0),r([e.Column("varchar",{name:"address",nullable:!0,length:255}),n("design:type",String)],Zr.prototype,"address",void 0),r([e.Column("datetime",{name:"sendTime",nullable:!0,precision:3}),n("design:type",Date)],Zr.prototype,"sendTime",void 0),r([e.Column("datetime",{name:"gpsUtcTime",nullable:!0,precision:3}),n("design:type",Date)],Zr.prototype,"gpsUtcTime",void 0),r([e.Column("smallint",{name:"externalBatteryPercentage",nullable:!0}),n("design:type",Number)],Zr.prototype,"externalBatteryPercentage",void 0),r([e.Column("float",{name:"externalPowerVoltage",nullable:!0}),n("design:type",Number)],Zr.prototype,"externalPowerVoltage",void 0),r([e.Column("smallint",{name:"azimuth",nullable:!0}),n("design:type",Number)],Zr.prototype,"azimuth",void 0),r([e.Column("tinyint",{name:"motionDetected",width:1,nullable:!0,transformer:new c}),n("design:type",Boolean)],Zr.prototype,"motionDetected",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],Zr.prototype,"deleted",void 0),Zr=r([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"})],Zr);let en=class{imei;promotionId;clientId;marketPlaceId;asin;promotionType;promotionDiscount;promotionDiscountBillingCycles;promotionFreeServiceMonths;appliedAt};r([e.Column("varchar",{name:"imei",length:15,primary:!0}),n("design:type",String)],en.prototype,"imei",void 0),r([e.Column("int",{name:"promotionId",primary:!0}),n("design:type",Number)],en.prototype,"promotionId",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],en.prototype,"clientId",void 0),r([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)],en.prototype,"marketPlaceId",void 0),r([e.Column("varchar",{name:"asin",nullable:!0,length:25}),n("design:type",String)],en.prototype,"asin",void 0),r([e.Column("varchar",{name:"promotionType",length:25,comment:"The type of promotion: freeService or discount."}),n("design:type",String)],en.prototype,"promotionType",void 0),r([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)],en.prototype,"promotionDiscount",void 0),r([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)],en.prototype,"promotionDiscountBillingCycles",void 0),r([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)],en.prototype,"promotionFreeServiceMonths",void 0),r([e.Column("datetime",{name:"appliedAt",comment:"The date that the promotion was applied"}),n("design:type",Date)],en.prototype,"appliedAt",void 0),en=r([e.Entity("promotionHistory",{schema:"nova"})],en);let tn=class{id;countryCode;countryName;regionName;regionCode;regionType;regionLat;regionLong};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],tn.prototype,"id",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"countryCode",void 0),r([e.Column("varchar",{name:"countryName",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"countryName",void 0),r([e.Column("varchar",{name:"regionName",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"regionName",void 0),r([e.Column("varchar",{name:"regionCode",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"regionCode",void 0),r([e.Column("varchar",{name:"regionType",nullable:!0,length:255}),n("design:type",String)],tn.prototype,"regionType",void 0),r([e.Column("decimal",{name:"regionLat",nullable:!0,precision:19,scale:10}),n("design:type",Number)],tn.prototype,"regionLat",void 0),r([e.Column("decimal",{name:"regionLong",nullable:!0,precision:19,scale:10}),n("design:type",Number)],tn.prototype,"regionLong",void 0),tn=r([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"})],tn);let rn=class{id;clientId;reportName;reportType;customReportId;status;emailMessage;frequency;timeOfDay;daysOfWeek;monthlyOption;dayOfMonth;recipients;format;createdAt;updatedAt;parameters};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],rn.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],rn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"reportName",length:100}),n("design:type",String)],rn.prototype,"reportName",void 0),r([e.Column("varchar",{name:"reportType",length:100}),n("design:type",String)],rn.prototype,"reportType",void 0),r([e.Column("int",{name:"customReportId",nullable:!0}),n("design:type",Number)],rn.prototype,"customReportId",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'Active'"}),n("design:type",String)],rn.prototype,"status",void 0),r([e.Column("varchar",{name:"emailMessage",length:255,nullable:!0}),n("design:type",String)],rn.prototype,"emailMessage",void 0),r([e.Column("varchar",{name:"frequency",length:10,nullable:!0}),n("design:type",String)],rn.prototype,"frequency",void 0),r([e.Column("time",{name:"timeOfDay",nullable:!0}),n("design:type",String)],rn.prototype,"timeOfDay",void 0),r([e.Column("json",{name:"daysOfWeek",nullable:!0}),n("design:type",Array)],rn.prototype,"daysOfWeek",void 0),r([e.Column("varchar",{name:"monthlyOption",length:20,nullable:!0}),n("design:type",String)],rn.prototype,"monthlyOption",void 0),r([e.Column("int",{name:"dayOfMonth",nullable:!0}),n("design:type",Number)],rn.prototype,"dayOfMonth",void 0),r([e.Column("varchar",{name:"recipients",nullable:!0,length:255}),n("design:type",String)],rn.prototype,"recipients",void 0),r([e.Column("varchar",{name:"format",length:10,nullable:!0}),n("design:type",String)],rn.prototype,"format",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP",nullable:!0}),n("design:type",Date)],rn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"updatedAt",nullable:!0}),n("design:type",Date)],rn.prototype,"updatedAt",void 0),r([e.Column("json",{name:"parameters",nullable:!0}),n("design:type",Object)],rn.prototype,"parameters",void 0),rn=r([e.Entity("reportScheduleConfiguration",{schema:"nova"})],rn);let nn=class{id;name;description;loginUrl;apn};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],nn.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],nn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:1e3}),n("design:type",String)],nn.prototype,"description",void 0),r([e.Column("varchar",{name:"loginUrl",nullable:!0,length:1e3}),n("design:type",String)],nn.prototype,"loginUrl",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],nn.prototype,"apn",void 0),nn=r([e.Entity("serviceProvider",{schema:"nova"})],nn);let an=class{id;productId;name;serviceProviderProductTypeId;serviceProviderProductNetworkId;mbIncluded;bundleCost};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],an.prototype,"id",void 0),r([e.Column("varchar",{name:"productId",length:100}),n("design:type",String)],an.prototype,"productId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],an.prototype,"name",void 0),r([e.Column("tinyint",{name:"serviceProviderProductTypeId",nullable:!0}),n("design:type",Number)],an.prototype,"serviceProviderProductTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductNetworkId",nullable:!0}),n("design:type",Number)],an.prototype,"serviceProviderProductNetworkId",void 0),r([e.Column("smallint",{name:"mbIncluded",nullable:!0}),n("design:type",Number)],an.prototype,"mbIncluded",void 0),r([e.Column("decimal",{name:"bundleCost",nullable:!0,precision:19,scale:4}),n("design:type",Number)],an.prototype,"bundleCost",void 0),an=r([e.Index("ixServiceProviderProductServiceProviderProductNetworkId",["serviceProviderProductNetworkId"],{}),e.Index("ixServiceProviderProductServiceProviderProductTypeId",["serviceProviderProductTypeId"],{}),e.Entity("serviceProviderProduct",{schema:"nova"})],an);let on=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],on.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],on.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],on.prototype,"description",void 0),on=r([e.Entity("serviceProviderProductNetwork",{schema:"nova"})],on);let sn=class{id;name;description};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],sn.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],sn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:100}),n("design:type",String)],sn.prototype,"description",void 0),sn=r([e.Entity("serviceProviderProductType",{schema:"nova"})],sn);let ln=class{id;imei;iccid;carrier;phone;deviceTypeId;serviceProviderProductId;isValid;realModel;po;outOfInventory;apn;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],ln.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],ln.prototype,"imei",void 0),r([e.Column("varchar",{name:"iccid",nullable:!0,length:25}),n("design:type",String)],ln.prototype,"iccid",void 0),r([e.Column("tinyint",{name:"carrier",nullable:!0}),n("design:type",Number)],ln.prototype,"carrier",void 0),r([e.Column("varchar",{name:"phone",nullable:!0,length:25}),n("design:type",String)],ln.prototype,"phone",void 0),r([e.Column("smallint",{name:"deviceTypeId",nullable:!0}),n("design:type",Number)],ln.prototype,"deviceTypeId",void 0),r([e.Column("tinyint",{name:"serviceProviderProductId",nullable:!0}),n("design:type",Number)],ln.prototype,"serviceProviderProductId",void 0),r([e.Column("tinyint",{name:"isValid",width:1,default:()=>"'1'"}),n("design:type",Boolean)],ln.prototype,"isValid",void 0),r([e.Column("varchar",{name:"realModel",nullable:!0,length:50}),n("design:type",String)],ln.prototype,"realModel",void 0),r([e.Column("varchar",{name:"po",nullable:!0,length:25}),n("design:type",String)],ln.prototype,"po",void 0),r([e.Column("tinyint",{name:"outOfInventory",width:1,default:()=>"'0'"}),n("design:type",Boolean)],ln.prototype,"outOfInventory",void 0),r([e.Column("varchar",{name:"apn",nullable:!0,length:50}),n("design:type",String)],ln.prototype,"apn",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],ln.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],ln.prototype,"modifiedAt",void 0),ln=r([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"})],ln);let dn=class{priceId;internalAddonId;name;billingInterval};r([e.PrimaryColumn({type:"varchar",name:"priceId",length:100}),n("design:type",String)],dn.prototype,"priceId",void 0),r([e.Column("varchar",{name:"internalAddonId",length:100}),n("design:type",String)],dn.prototype,"internalAddonId",void 0),r([e.Column("varchar",{name:"name",length:100}),n("design:type",String)],dn.prototype,"name",void 0),r([e.Column("smallint",{name:"billingInterval"}),n("design:type",Number)],dn.prototype,"billingInterval",void 0),dn=r([e.Entity("stripeAddonMapping",{schema:"nova"}),e.Index("ixStripeAddonMappingBillingInterval",["billingInterval"])],dn);let un=class{priceId;internalPlanId;validFrom;validUntil;isActivePrice};r([e.PrimaryColumn({type:"varchar",name:"priceId",length:100}),n("design:type",String)],un.prototype,"priceId",void 0),r([e.Column("varchar",{name:"internalPlanId",length:100}),n("design:type",String)],un.prototype,"internalPlanId",void 0),r([e.Column("date",{name:"validFrom",nullable:!0,transformer:new qe}),n("design:type",Date)],un.prototype,"validFrom",void 0),r([e.Column("date",{name:"validUntil",nullable:!0,transformer:new qe}),n("design:type",Date)],un.prototype,"validUntil",void 0),r([e.Column("tinyint",{name:"isActivePrice",width:1,transformer:new c}),n("design:type",Boolean)],un.prototype,"isActivePrice",void 0),un=r([e.Entity("stripePriceMapping",{schema:"nova"}),e.Index("ixStripePriceMappingPriceId",["priceId"],{}),e.Index("ixStripePriceMappingInternalPlanIdValidFromValidUntil",["internalPlanId","validFrom","validUntil"]),e.Index("ixStripePriceMappingIsActivePriceInternalPlanId",["isActivePrice","internalPlanId"])],un);let cn=class{id;clientId;name;description;color;createdBy;createdAt;modifiedBy;modifiedAt;metadata;isSecurityGroup};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],cn.prototype,"id",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],cn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],cn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:255,nullable:!0}),n("design:type",String)],cn.prototype,"description",void 0),r([e.Column("varchar",{name:"color",length:32,nullable:!0}),n("design:type",String)],cn.prototype,"color",void 0),r([e.Column("varchar",{name:"createdBy",length:50}),n("design:type",String)],cn.prototype,"createdBy",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],cn.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],cn.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],cn.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"metadata",nullable:!0}),n("design:type",Object)],cn.prototype,"metadata",void 0),r([e.Column("tinyint",{name:"isSecurityGroup",width:1,default:()=>"'0'",transformer:new c}),n("design:type",Boolean)],cn.prototype,"isSecurityGroup",void 0),cn=r([e.Index("ixTagClientIdName",["clientId","name"],{unique:!0}),e.Entity("tag",{schema:"nova"})],cn);let pn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],pn.prototype,"id",void 0),r([e.Column({type:"int",name:"taskScheduleId"}),n("design:type",Number)],pn.prototype,"taskScheduleId",void 0),r([e.ManyToOne((()=>si),{createForeignKeyConstraints:!1}),n("design:type",Object)],pn.prototype,"taskSchedule",void 0),r([e.OneToOne((()=>oi),{createForeignKeyConstraints:!1,nullable:!0}),e.JoinColumn([{name:"imei",referencedColumnName:"imei"}]),n("design:type",Object)],pn.prototype,"deviceStatus",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],pn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],pn.prototype,"clientId",void 0),r([e.Column("datetime",{name:"dueDate",nullable:!0}),n("design:type",Date)],pn.prototype,"dueDate",void 0),r([e.Column("double",{name:"dueOdometer",nullable:!0}),n("design:type",Number)],pn.prototype,"dueOdometer",void 0),r([e.Column("double",{name:"dueActiveHours",nullable:!0}),n("design:type",Number)],pn.prototype,"dueActiveHours",void 0),r([e.Column("datetime",{name:"startDate",nullable:!0}),n("design:type",Date)],pn.prototype,"startDate",void 0),r([e.Column("double",{name:"startingOdometer",nullable:!0}),n("design:type",Number)],pn.prototype,"startingOdometer",void 0),r([e.Column("double",{name:"startingActiveHours",nullable:!0}),n("design:type",Number)],pn.prototype,"startingActiveHours",void 0),r([e.Column("varchar",{name:"status",length:10,default:()=>"'pending'"}),n("design:type",String)],pn.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],pn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"pastDueAt",nullable:!0}),n("design:type",Date)],pn.prototype,"pastDueAt",void 0),r([e.Column("datetime",{name:"completedAt",nullable:!0}),n("design:type",Date)],pn.prototype,"completedAt",void 0),r([e.Column("text",{name:"completionNotes",nullable:!0}),n("design:type",String)],pn.prototype,"completionNotes",void 0),r([e.Column("double",{name:"completionOdometer",nullable:!0}),n("design:type",Number)],pn.prototype,"completionOdometer",void 0),r([e.Column("double",{name:"completionActiveHours",nullable:!0}),n("design:type",Number)],pn.prototype,"completionActiveHours",void 0),r([e.Column("varchar",{name:"completedBy",length:50,nullable:!0}),n("design:type",String)],pn.prototype,"completedBy",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],pn.prototype,"modifiedAt",void 0),r([e.Column("varchar",{name:"modifiedBy",length:50,nullable:!0}),n("design:type",String)],pn.prototype,"modifiedBy",void 0),r([e.Column("datetime",{name:"queuedAt",nullable:!0}),n("design:type",Date)],pn.prototype,"queuedAt",void 0),r([e.Column("datetime",{name:"predictedDueDate",nullable:!0}),n("design:type",Date)],pn.prototype,"predictedDueDate",void 0),r([e.Column("datetime",{name:"deletedAt",nullable:!0}),n("design:type",Date)],pn.prototype,"deletedAt",void 0),r([e.Column("varchar",{name:"deletedBy",length:50,nullable:!0}),n("design:type",String)],pn.prototype,"deletedBy",void 0),r([e.Column("json",{name:"completionMetadata",nullable:!0}),n("design:type",Object)],pn.prototype,"completionMetadata",void 0),r([e.Column("tinyint",{name:"includeTimeInCompletedAt",width:1,transformer:new c,nullable:!0}),n("design:type",Boolean)],pn.prototype,"includeTimeInCompletedAt",void 0),r([e.Column("varchar",{name:"assignedTo",length:50,nullable:!0}),n("design:type",String)],pn.prototype,"assignedTo",void 0),r([e.Column("double",{name:"timeSpent",nullable:!0}),n("design:type",Number)],pn.prototype,"timeSpent",void 0),r([e.Column("double",{name:"cost",nullable:!0}),n("design:type",Number)],pn.prototype,"cost",void 0),pn=r([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"})],pn);let mn=class{id;imei;clientId;type;sentAt;expiresAt;source;createdAt};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id",unsigned:!0}),n("design:type",Number)],mn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],mn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],mn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"type",length:256}),n("design:type",String)],mn.prototype,"type",void 0),r([e.Column("datetime",{name:"sentAt",precision:0}),n("design:type",Date)],mn.prototype,"sentAt",void 0),r([e.Column("datetime",{name:"expiresAt",precision:0}),n("design:type",Date)],mn.prototype,"expiresAt",void 0),r([e.Column("varchar",{name:"source",length:256}),n("design:type",String)],mn.prototype,"source",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],mn.prototype,"createdAt",void 0),mn=r([e.Entity("ticketManager",{schema:"nova"}),e.Index("ixTicketManagerImeiTypeSourceExpiresAt",["imei","type","source","expiresAt"],{})],mn);let yn=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};r([e.PrimaryGeneratedColumn({type:"bigint",name:"id"}),n("design:type",Number)],yn.prototype,"id",void 0),r([e.Column("binary",{name:"tripGuid",length:16,transformer:me}),n("design:type",String)],yn.prototype,"tripGuid",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],yn.prototype,"imei",void 0),r([e.Column("datetime",{name:"startDate",precision:3}),n("design:type",Date)],yn.prototype,"startDate",void 0),r([e.Column("datetime",{name:"endDate",nullable:!0,precision:3}),n("design:type",Date)],yn.prototype,"endDate",void 0),r([e.Column("float",{name:"distance"}),n("design:type",Number)],yn.prototype,"distance",void 0),r([e.Column("decimal",{name:"startLat",precision:8,scale:6}),n("design:type",Number)],yn.prototype,"startLat",void 0),r([e.Column("decimal",{name:"startLon",precision:9,scale:6}),n("design:type",Number)],yn.prototype,"startLon",void 0),r([e.Column("decimal",{name:"endLat",nullable:!0,precision:8,scale:6}),n("design:type",Number)],yn.prototype,"endLat",void 0),r([e.Column("decimal",{name:"endLon",nullable:!0,precision:9,scale:6}),n("design:type",Number)],yn.prototype,"endLon",void 0),r([e.Column("datetime",{name:"createdAt",precision:3}),n("design:type",Date)],yn.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"startAddress",length:255}),n("design:type",String)],yn.prototype,"startAddress",void 0),r([e.Column("varchar",{name:"endAddress",nullable:!0,length:255}),n("design:type",String)],yn.prototype,"endAddress",void 0),r([e.Column("varchar",{name:"positionStart",length:255}),n("design:type",String)],yn.prototype,"positionStart",void 0),r([e.Column("varchar",{name:"positionEnd",nullable:!0,length:255}),n("design:type",String)],yn.prototype,"positionEnd",void 0),r([e.Column("tinyint",{name:"tripCompletionStatusId",default:()=>"'1'"}),n("design:type",Number)],yn.prototype,"tripCompletionStatusId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],yn.prototype,"clientId",void 0),r([e.Column("int",{name:"duration"}),n("design:type",Number)],yn.prototype,"duration",void 0),r([e.Column("tinyint",{name:"tripType"}),n("design:type",Number)],yn.prototype,"tripType",void 0),r([e.Column("binary",{name:"startMessageId",length:16,transformer:me}),n("design:type",String)],yn.prototype,"startMessageId",void 0),r([e.Column("binary",{name:"endMessageId",length:16,nullable:!0,transformer:me}),n("design:type",String)],yn.prototype,"endMessageId",void 0),r([e.Column("datetime",{name:"startSendTimeMessage",nullable:!0,precision:3}),n("design:type",Date)],yn.prototype,"startSendTimeMessage",void 0),r([e.Column("datetime",{name:"endSendTimeMessage",nullable:!0,precision:3}),n("design:type",Date)],yn.prototype,"endSendTimeMessage",void 0),r([e.Column("tinyint",{name:"deleted",nullable:!0,width:1,transformer:new c,default:()=>"'0'"}),n("design:type",Boolean)],yn.prototype,"deleted",void 0),r([e.Column("double",{name:"startOdometer",nullable:!0}),n("design:type",Number)],yn.prototype,"startOdometer",void 0),r([e.Column("double",{name:"endOdometer",nullable:!0}),n("design:type",Number)],yn.prototype,"endOdometer",void 0),r([e.Column("bigint",{name:"startPositionId",nullable:!0}),n("design:type",Number)],yn.prototype,"startPositionId",void 0),r([e.Column("bigint",{name:"endPositionId",nullable:!0}),n("design:type",Number)],yn.prototype,"endPositionId",void 0),yn=r([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"})],yn);let gn=class{id;name;description;statusId};r([e.PrimaryGeneratedColumn({type:"tinyint",name:"id"}),n("design:type",Number)],gn.prototype,"id",void 0),r([e.Column("varchar",{name:"name",length:50}),n("design:type",String)],gn.prototype,"name",void 0),r([e.Column("varchar",{name:"description",length:500}),n("design:type",String)],gn.prototype,"description",void 0),r([e.Column("tinyint",{name:"statusId",width:1,default:()=>"'1'"}),n("design:type",Boolean)],gn.prototype,"statusId",void 0),gn=r([e.Entity("tripCompletionStatus",{schema:"nova"})],gn);let vn=class{tripId;positionId};r([e.Column("bigint",{primary:!0,name:"tripId"}),n("design:type",String)],vn.prototype,"tripId",void 0),r([e.Column("bigint",{primary:!0,name:"positionId"}),n("design:type",String)],vn.prototype,"positionId",void 0),vn=r([e.Entity("tripPosition",{schema:"nova"})],vn);let hn=class{imei;clientId;tripGuid;tripStartDate};r([e.Column("varchar",{primary:!0,name:"imei",length:15}),n("design:type",String)],hn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],hn.prototype,"clientId",void 0),r([e.Column("binary",{name:"tripGuid",length:16,nullable:!0,transformer:me}),n("design:type",String)],hn.prototype,"tripGuid",void 0),r([e.Column("datetime",{name:"tripStartDate",nullable:!0}),n("design:type",Date)],hn.prototype,"tripStartDate",void 0),hn=r([e.Entity("tripStatus",{schema:"nova"})],hn);let In=class{id;createdAt;status;userId;legacyCreatedAt;clientId};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],In.prototype,"id",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],In.prototype,"createdAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],In.prototype,"status",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],In.prototype,"userId",void 0),r([e.Column("datetime",{name:"legacyCreatedAt",nullable:!0}),n("design:type",Date)],In.prototype,"legacyCreatedAt",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],In.prototype,"clientId",void 0),In=r([e.Index("ixUserActivationUserId",["userId"],{}),e.Entity("userActivation",{schema:"nova"})],In);let fn=class{id;userActivation;userActivationId;device;deviceId;imei;model;billingInterval;deviceName;createdAt;modifiedAt;status;trackingReason;deviceColor;notificationByEmail;notificationBySms;planAnnual;dataSourceTypeId;subscriptionId;platform;eventType;planCode;servicePlan};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],fn.prototype,"id",void 0),r([e.OneToOne((()=>In),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],fn.prototype,"userActivation",void 0),r([e.Column("int",{name:"userActivationId"}),n("design:type",Number)],fn.prototype,"userActivationId",void 0),r([e.OneToOne((()=>fe),{createForeignKeyConstraints:!1}),e.JoinColumn(),n("design:type",Object)],fn.prototype,"device",void 0),r([e.Column("int",{name:"deviceId"}),n("design:type",Number)],fn.prototype,"deviceId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],fn.prototype,"imei",void 0),r([e.Column("varchar",{name:"model",nullable:!0,length:50}),n("design:type",String)],fn.prototype,"model",void 0),r([e.Column("varchar",{name:"billingInterval",nullable:!0,length:25}),n("design:type",String)],fn.prototype,"billingInterval",void 0),r([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],fn.prototype,"deviceName",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],fn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],fn.prototype,"modifiedAt",void 0),r([e.Column("char",{name:"status",nullable:!0,length:1,default:()=>"'A'"}),n("design:type",String)],fn.prototype,"status",void 0),r([e.Column("varchar",{name:"trackingReason",nullable:!0,length:500}),n("design:type",String)],fn.prototype,"trackingReason",void 0),r([e.Column("varchar",{name:"deviceColor",nullable:!0,length:25}),n("design:type",String)],fn.prototype,"deviceColor",void 0),r([e.Column("tinyint",{name:"notificationByEmail",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],fn.prototype,"notificationByEmail",void 0),r([e.Column("tinyint",{name:"notificationBySms",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],fn.prototype,"notificationBySms",void 0),r([e.Column("tinyint",{name:"planAnnual",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],fn.prototype,"planAnnual",void 0),r([e.Column("tinyint",{name:"dataSourceTypeId",nullable:!0}),n("design:type",Number)],fn.prototype,"dataSourceTypeId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],fn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],fn.prototype,"platform",void 0),r([e.Column("varchar",{name:"eventType",nullable:!0,length:50}),n("design:type",String)],fn.prototype,"eventType",void 0),r([e.Column("varchar",{name:"planCode",nullable:!0,length:50}),n("design:type",String)],fn.prototype,"planCode",void 0),r([e.Column("varchar",{name:"servicePlan",nullable:!0,length:50}),n("design:type",String)],fn.prototype,"servicePlan",void 0),fn=r([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"})],fn);let Cn=class{userId;eventId;eventName;eventValue;eventMetadata;createdAt;platform;ip;userAgent};r([e.Column("binary",{primary:!0,name:"userId",length:16}),n("design:type",Buffer)],Cn.prototype,"userId",void 0),r([e.Column("binary",{primary:!0,name:"eventId",length:16}),n("design:type",Buffer)],Cn.prototype,"eventId",void 0),r([e.Column("text",{name:"eventName"}),n("design:type",String)],Cn.prototype,"eventName",void 0),r([e.Column("text",{name:"eventValue",nullable:!0}),n("design:type",String)],Cn.prototype,"eventValue",void 0),r([e.Column("text",{name:"eventMetadata",nullable:!0}),n("design:type",String)],Cn.prototype,"eventMetadata",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Cn.prototype,"createdAt",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Cn.prototype,"platform",void 0),r([e.Column("text",{name:"ip",nullable:!0}),n("design:type",String)],Cn.prototype,"ip",void 0),r([e.Column("text",{name:"userAgent",nullable:!0}),n("design:type",String)],Cn.prototype,"userAgent",void 0),Cn=r([e.Entity("userActivationEvent",{schema:"nova"})],Cn);let bn=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],bn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],bn.prototype,"userId",void 0),r([e.Column("text",{name:"firstName"}),n("design:type",String)],bn.prototype,"firstName",void 0),r([e.Column("text",{name:"lastName"}),n("design:type",String)],bn.prototype,"lastName",void 0),r([e.Column("text",{name:"email"}),n("design:type",String)],bn.prototype,"email",void 0),r([e.Column("text",{name:"phone",nullable:!0}),n("design:type",String)],bn.prototype,"phone",void 0),r([e.Column("text",{name:"trackingReason",nullable:!0}),n("design:type",String)],bn.prototype,"trackingReason",void 0),r([e.Column("text",{name:"companyName",nullable:!0}),n("design:type",String)],bn.prototype,"companyName",void 0),r([e.Column("text",{name:"role",nullable:!0}),n("design:type",String)],bn.prototype,"role",void 0),r([e.Column("text",{name:"industry",nullable:!0}),n("design:type",String)],bn.prototype,"industry",void 0),r([e.Column("text",{name:"devicesActivatingCategory",nullable:!0}),n("design:type",String)],bn.prototype,"devicesActivatingCategory",void 0),r([e.Column("text",{name:"assetsCountRange",nullable:!0}),n("design:type",String)],bn.prototype,"assetsCountRange",void 0),r([e.Column("decimal",{name:"devicesActivatingCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],bn.prototype,"devicesActivatingCount",void 0),r([e.Column("text",{name:"plan",nullable:!0}),n("design:type",String)],bn.prototype,"plan",void 0),r([e.Column("decimal",{name:"usersInvitedCount",nullable:!0,precision:10,scale:0}),n("design:type",Number)],bn.prototype,"usersInvitedCount",void 0),r([e.Column("tinyint",{name:"meetingScheduled",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],bn.prototype,"meetingScheduled",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],bn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],bn.prototype,"modifiedAt",void 0),r([e.Column("text",{name:"planAnnual",nullable:!0}),n("design:type",String)],bn.prototype,"planAnnual",void 0),r([e.Column("text",{name:"planId",nullable:!0}),n("design:type",String)],bn.prototype,"planId",void 0),r([e.Column("text",{name:"spyEnvironment",nullable:!0}),n("design:type",String)],bn.prototype,"spyEnvironment",void 0),r([e.Column("int",{name:"jarvisScore",nullable:!0}),n("design:type",Number)],bn.prototype,"jarvisScore",void 0),r([e.Column("text",{name:"enrichmentCompanyDescription",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyDescription",void 0),r([e.Column("text",{name:"jarvisEnrichmentCompanyEin",nullable:!0}),n("design:type",String)],bn.prototype,"jarvisEnrichmentCompanyEin",void 0),r([e.Column("text",{name:"enrichmentCompanyEmployees",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyEmployees",void 0),r([e.Column("text",{name:"enrichmentCompanyIndustry",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyIndustry",void 0),r([e.Column("text",{name:"enrichmentCompanyLocation",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyLocation",void 0),r([e.Column("text",{name:"enrichmentCompanyName",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyName",void 0),r([e.Column("text",{name:"enrichmentCompanyRevenue",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentCompanyRevenue",void 0),r([e.Column("text",{name:"enrichmentPrivateDomain",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentPrivateDomain",void 0),r([e.Column("text",{name:"enrichmentPublicTicker",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentPublicTicker",void 0),r([e.Column("text",{name:"enrichmentRole",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentRole",void 0),r([e.Column("text",{name:"enrichmentTags",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentTags",void 0),r([e.Column("text",{name:"jenrichmentTitle",nullable:!0}),n("design:type",String)],bn.prototype,"jenrichmentTitle",void 0),r([e.Column("text",{name:"enrichmentVerifiedEmployment",nullable:!0}),n("design:type",String)],bn.prototype,"enrichmentVerifiedEmployment",void 0),bn=r([e.Index("ixuUserActivationMetricUserId",["userId"],{unique:!0}),e.Entity("userActivationMetric",{schema:"nova"})],bn);let Sn=class{id;userId;platform;appVersion;feedback;createdAt;amazonReviewDate};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Sn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Sn.prototype,"userId",void 0),r([e.Column("varchar",{name:"platform",length:25}),n("design:type",String)],Sn.prototype,"platform",void 0),r([e.Column("varchar",{name:"appVersion",length:20}),n("design:type",String)],Sn.prototype,"appVersion",void 0),r([e.Column("varchar",{name:"feedback",nullable:!0,length:2e3}),n("design:type",String)],Sn.prototype,"feedback",void 0),r([e.Column("datetime",{name:"createdAt",default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Sn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"amazonReviewDate",nullable:!0}),n("design:type",Date)],Sn.prototype,"amazonReviewDate",void 0),Sn=r([e.Index("ixUserAppFeedbackUserId",["userId"],{}),e.Entity("userAppFeedback",{schema:"nova"})],Sn);let An=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],An.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],An.prototype,"userId",void 0),r([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],An.prototype,"userName",void 0),r([e.Column("varchar",{name:"userEmail",nullable:!0,length:255}),n("design:type",String)],An.prototype,"userEmail",void 0),r([e.Column("varchar",{name:"deviceOs",length:15}),n("design:type",String)],An.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"deviceManufacturer",nullable:!0,length:100}),n("design:type",String)],An.prototype,"deviceManufacturer",void 0),r([e.Column("varchar",{name:"deviceModel",nullable:!0,length:100}),n("design:type",String)],An.prototype,"deviceModel",void 0),r([e.Column("varchar",{name:"stage",length:25}),n("design:type",String)],An.prototype,"stage",void 0),r([e.Column("varchar",{name:"appVersion",length:25}),n("design:type",String)],An.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],An.prototype,"createdAt",void 0),r([e.Column("text",{name:"errorMessage",nullable:!0}),n("design:type",String)],An.prototype,"errorMessage",void 0),r([e.Column("datetime",{name:"errorFirstReceivedAt",nullable:!0}),n("design:type",Date)],An.prototype,"errorFirstReceivedAt",void 0),r([e.Column("datetime",{name:"errorReceivedAt",nullable:!0}),n("design:type",Date)],An.prototype,"errorReceivedAt",void 0),r([e.Column("tinyint",{name:"deviceJailbroken",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],An.prototype,"deviceJailbroken",void 0),r([e.Column("varchar",{name:"deviceOsVersion",nullable:!0,length:20}),n("design:type",String)],An.prototype,"deviceOsVersion",void 0),r([e.Column("int",{name:"deviceFreeMemory",nullable:!0}),n("design:type",Number)],An.prototype,"deviceFreeMemory",void 0),r([e.Column("int",{name:"deviceTotalMemory",nullable:!0}),n("design:type",Number)],An.prototype,"deviceTotalMemory",void 0),r([e.Column("tinyint",{name:"deviceCharging",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],An.prototype,"deviceCharging",void 0),r([e.Column("smallint",{name:"deviceBatteryLevel",nullable:!0}),n("design:type",Number)],An.prototype,"deviceBatteryLevel",void 0),r([e.Column("varchar",{name:"deviceNetworkAccess",nullable:!0,length:100}),n("design:type",String)],An.prototype,"deviceNetworkAccess",void 0),r([e.Column("varchar",{name:"appActiveScreen",nullable:!0,length:50}),n("design:type",String)],An.prototype,"appActiveScreen",void 0),r([e.Column("tinyint",{name:"appInForeground",nullable:!0,width:1,transformer:new c}),n("design:type",Boolean)],An.prototype,"appInForeground",void 0),r([e.Column("int",{name:"appDurationInForeground",nullable:!0}),n("design:type",Number)],An.prototype,"appDurationInForeground",void 0),r([e.Column("varchar",{name:"appBundleId",nullable:!0,length:500}),n("design:type",String)],An.prototype,"appBundleId",void 0),r([e.Column("varchar",{name:"incidentUrl",nullable:!0,length:1e3}),n("design:type",String)],An.prototype,"incidentUrl",void 0),r([e.Column("varchar",{name:"errorId",nullable:!0,length:100}),n("design:type",String)],An.prototype,"errorId",void 0),An=r([e.Index("ixUserAppIncidentCreatedAt",["createdAt"],{}),e.Index("ixUserAppIncidentErrorId",["errorId"],{}),e.Index("ixUserAppIncidentUserId",["userId"],{}),e.Index("ixuUserAppIncidentUserIdErrorId",["userId","errorId"],{unique:!0}),e.Entity("userAppIncident",{schema:"nova"})],An);let Dn=class{clientId;userId;boundaryId;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],Dn.prototype,"clientId",void 0),r([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],Dn.prototype,"userId",void 0),r([e.PrimaryColumn("int",{name:"boundaryId"}),n("design:type",Number)],Dn.prototype,"boundaryId",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Dn.prototype,"createdAt",void 0),Dn=r([e.Index("ixUserAuthorizedBoundaryUserIdBoundaryId",["userId","boundaryId"],{}),e.Index("ixUserAuthorizedBoundaryBoundaryIdUserId",["boundaryId","userId"],{}),e.Entity("userAuthorizedBoundary",{schema:"nova"})],Dn);let Rn=class{clientId;userId;boundaryId};r([e.ViewColumn({name:"clientId"}),n("design:type",Number)],Rn.prototype,"clientId",void 0),r([e.ViewColumn({name:"userId",transformer:me}),n("design:type",String)],Rn.prototype,"userId",void 0),r([e.ViewColumn({name:"boundaryId"}),n("design:type",Number)],Rn.prototype,"boundaryId",void 0),Rn=r([e.ViewEntity({name:"user_authorized_boundary_security_view",schema:"nova",synchronize:!1,expression:"\n (\n SELECT\n b.clientId AS clientId,\n usr.userId AS userId,\n b.id AS boundaryId\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n JOIN boundary b\n ON b.clientId = usr.clientId\n WHERE usr.boundariesAccess = 'full'\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = usr.clientId\n AND ut.userId = usr.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n UNION ALL\n (\n SELECT\n b.clientId AS clientId,\n usr.userId AS userId,\n b.id AS boundaryId\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n JOIN entityTag rt\n ON rt.tagId = ut.tagId\n AND rt.entityType = 'Boundary'\n AND rt.isSecurityGroup = 1\n AND rt.clientId = ut.clientId\n JOIN boundary b\n ON b.clientId = rt.clientId\n AND b.id = rt.entityId\n JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n ON usr.clientId = rt.clientId\n AND usr.userId = ut.userId\n WHERE ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n UNION ALL\n (\n SELECT\n uab.clientId AS clientId,\n uab.userId AS userId,\n uab.boundaryId AS boundaryId\n FROM userAuthorizedBoundary uab\n WHERE NOT EXISTS (\n SELECT 1\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n WHERE usr.clientId = uab.clientId\n AND usr.userId = uab.userId\n AND usr.boundariesAccess = 'full'\n )\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = uab.clientId\n AND ut.userId = uab.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n );\n "})],Rn);let wn=class{clientId;userId;imei;createdAt};r([e.PrimaryColumn("int",{name:"clientId"}),n("design:type",Number)],wn.prototype,"clientId",void 0),r([e.PrimaryColumn("binary",{name:"userId",length:16}),n("design:type",Buffer)],wn.prototype,"userId",void 0),r([e.PrimaryColumn("varchar",{name:"imei",length:15}),n("design:type",String)],wn.prototype,"imei",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],wn.prototype,"createdAt",void 0),wn=r([e.Index("ixUserAuthorizedDeviceUserIdImei",["userId","imei"],{}),e.Index("ixUserAuthorizedDeviceImeiUserId",["imei","userId"],{}),e.Entity("userAuthorizedDevice",{schema:"nova"})],wn);let Tn=class{clientId;imei;userId};r([e.ViewColumn({name:"clientId"}),n("design:type",Number)],Tn.prototype,"clientId",void 0),r([e.ViewColumn({name:"imei"}),n("design:type",String)],Tn.prototype,"imei",void 0),r([e.ViewColumn({name:"userId",transformer:me}),n("design:type",String)],Tn.prototype,"userId",void 0),Tn=r([e.ViewEntity({name:"user_authorized_device_security_view",schema:"nova",synchronize:!1,expression:"\n (\n SELECT\n d.clientId AS clientId,\n d.imei AS imei,\n usr.userId AS userId\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n JOIN device d\n ON d.clientId = usr.clientId\n WHERE usr.access = 'full'\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = usr.clientId\n AND ut.userId = usr.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n UNION ALL\n (\n SELECT\n d.clientId AS clientId,\n d.imei AS imei,\n usr.userId AS userId\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n JOIN entityTag rt USE INDEX (ixEntityTagImeiIsSecurityGroupTagId)\n ON rt.tagId = ut.tagId\n AND rt.entityType = 'Device'\n AND rt.isSecurityGroup = 1\n AND rt.clientId = ut.clientId\n JOIN userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n ON usr.clientId = rt.clientId\n AND usr.userId = ut.userId\n JOIN device d USE INDEX (ixDeviceClientIdImei)\n ON d.clientId = rt.clientId\n AND d.imei = rt.imei\n WHERE ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n UNION ALL \n (\n SELECT\n uad.clientId AS clientId,\n uad.imei AS imei,\n uad.userId AS userId\n FROM userAuthorizedDevice uad\n WHERE NOT EXISTS (\n SELECT 1\n FROM userSecurityRole usr USE INDEX (ixUserSecurityRoleClientIdAccessUserId)\n WHERE usr.clientId = uad.clientId\n AND usr.userId = uad.userId\n AND usr.access = 'full'\n )\n AND NOT EXISTS (\n SELECT 1\n FROM entityTag ut USE INDEX (ixEntityTagClientIdUserIdEntityTypeIsSecurityGroupTagId)\n WHERE ut.clientId = uad.clientId\n AND ut.userId = uad.userId\n AND ut.entityType = 'User'\n AND ut.isSecurityGroup = 1\n )\n )\n "})],Tn);let Nn=class{id;imei;clientId;subscriptionId;code;createdBy;displayOrder;scheduledAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Nn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Nn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Nn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Nn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"code",length:256}),n("design:type",String)],Nn.prototype,"code",void 0),r([e.Column("varchar",{name:"createdBy",length:256}),n("design:type",String)],Nn.prototype,"createdBy",void 0),r([e.Column("smallint",{name:"displayOrder",nullable:!0}),n("design:type",Number)],Nn.prototype,"displayOrder",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new qe}),n("design:type",Date)],Nn.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Nn.prototype,"createdAt",void 0),Nn=r([e.Index("ix_userCancellationDueDeviceImeiScheduledAt",["imei","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceSubscriptionIdScheduledAt",["subscriptionId","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceClientIdScheduledAt",["clientId","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCodeScheduledAt",["code","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCreatedByScheduledAt",["createdBy","scheduledAt"],{}),e.Index("ix_userCancellationDueDeviceCodeCreatedBy",["code","createdBy"],{}),e.Entity("userCancellationDueDevice",{schema:"nova"})],Nn);let Bn=class{id;imei;clientId;subscriptionId;type;scheduledAt;executedAt;finishedAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Bn.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Bn.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Bn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Bn.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],Bn.prototype,"type",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new qe}),n("design:type",Date)],Bn.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"executedAt",nullable:!0,transformer:new qe}),n("design:type",Date)],Bn.prototype,"executedAt",void 0),r([e.Column("datetime",{name:"finishedAt",nullable:!0,transformer:new qe}),n("design:type",Date)],Bn.prototype,"finishedAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Bn.prototype,"createdAt",void 0),Bn=r([e.Index("ixUserCarrierDeactivateDeviceImeiSubscriptionId",["imei","subscriptionId"],{}),e.Index("ixUserCarrierDeactivateDeviceClientIdCreatedAt",["clientId","createdAt"],{}),e.Index("ixUserCarrierDeactivateDeviceSubscriptionId",["subscriptionId"],{}),e.Index("ixUserCarrierDeactivateDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userCarrierDeactivateDevice",{schema:"nova"})],Bn);let Un=class{id;imei;clientId;subscriptionId;type;scheduledAt;executedAt;finishedAt;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],Un.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Un.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Un.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],Un.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"type",length:50}),n("design:type",String)],Un.prototype,"type",void 0),r([e.Column("datetime",{name:"scheduledAt",transformer:new qe}),n("design:type",Date)],Un.prototype,"scheduledAt",void 0),r([e.Column("datetime",{name:"executedAt",nullable:!0,transformer:new qe}),n("design:type",Date)],Un.prototype,"executedAt",void 0),r([e.Column("datetime",{name:"finishedAt",nullable:!0,transformer:new qe}),n("design:type",Date)],Un.prototype,"finishedAt",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],Un.prototype,"createdAt",void 0),Un=r([e.Index("ixUserCarrierDeactivateDeviceImeiSubscriptionId",["imei","subscriptionId"],{}),e.Index("ixUserCarrierReactivateDeviceClientIdCreatedAt",["clientId","createdAt"],{}),e.Index("ixUserCarrierReactivateDeviceSubscriptionId",["subscriptionId"],{}),e.Index("ixUserCarrierReactivateDeviceImeiCreatedAt",["imei","createdAt"],{}),e.Entity("userCarrierReactivateDevice",{schema:"nova"})],Un);let En=class{id;userId;clientId;userSecurityRoleName;email;status;createdAt;modifiedAt};r([e.PrimaryGeneratedColumn({type:"smallint",name:"id"}),n("design:type",Number)],En.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],En.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],En.prototype,"clientId",void 0),r([e.Column("varchar",{name:"userSecurityRoleName",length:50}),n("design:type",String)],En.prototype,"userSecurityRoleName",void 0),r([e.Column("varchar",{name:"email",length:255}),n("design:type",String)],En.prototype,"email",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:25}),n("design:type",String)],En.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],En.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],En.prototype,"modifiedAt",void 0),En=r([e.Index("ixUserDataDeletionRequestUserId",["userId"],{}),e.Entity("userDataDeletionRequest",{schema:"nova"})],En);let Pn=class{id;deviceBehaviorId;clientId;userId;imei;behaviorName;behaviorParams;status;createdAt;modifiedAt;extraParams;commandTaskId};r([e.Column("binary",{primary:!0,name:"id",length:16}),n("design:type",Buffer)],Pn.prototype,"id",void 0),r([e.Column("smallint",{name:"deviceBehaviorId"}),n("design:type",Number)],Pn.prototype,"deviceBehaviorId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Pn.prototype,"clientId",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Pn.prototype,"userId",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],Pn.prototype,"imei",void 0),r([e.Column("varchar",{name:"behaviorName",length:50}),n("design:type",String)],Pn.prototype,"behaviorName",void 0),r([e.Column("json",{name:"behaviorParams",nullable:!0}),n("design:type",Object)],Pn.prototype,"behaviorParams",void 0),r([e.Column("varchar",{name:"status",length:10}),n("design:type",String)],Pn.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Pn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt",nullable:!0}),n("design:type",Date)],Pn.prototype,"modifiedAt",void 0),r([e.Column("json",{name:"extraParams",nullable:!0}),n("design:type",Object)],Pn.prototype,"extraParams",void 0),r([e.Column("binary",{name:"commandTaskId",length:16,nullable:!0}),n("design:type",Buffer)],Pn.prototype,"commandTaskId",void 0),Pn=r([e.Index("ixUserDeviceBehaviorTaskImei",["imei"],{}),e.Index("ixUserDeviceBehaviorTaskClientId",["clientId"],{}),e.Index("ixUserDeviceBehaviorTaskDeviceBehaviorId",["deviceBehaviorId"],{}),e.Index("ixUserDeviceBehaviorTaskModifiedAt",["modifiedAt"],{}),e.Entity("userDeviceBehaviorTask",{schema:"nova"})],Pn);let On=class{id;imei;clientId;subscriptionId;createdAt};r([e.PrimaryGeneratedColumn({type:"int",name:"id",unsigned:!0}),n("design:type",Number)],On.prototype,"id",void 0),r([e.Column("varchar",{name:"imei",length:15}),n("design:type",String)],On.prototype,"imei",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],On.prototype,"clientId",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:256}),n("design:type",String)],On.prototype,"subscriptionId",void 0),r([e.Column("datetime",{name:"createdAt",precision:0,default:()=>"CURRENT_TIMESTAMP"}),n("design:type",Date)],On.prototype,"createdAt",void 0),On=r([e.Index("idx_imei",["imei"]),e.Index("idx_client_id",["clientId"]),e.Index("idx_subscription_id",["subscriptionId"]),e.Index("idx_created_at",["createdAt"]),e.Index("idx_client_imei",["clientId","imei"]),e.Entity("userFreeOfferDevice",{schema:"nova"})],On);const xn={to:e=>e&&Array.isArray(e)?e.join(","):null,from:e=>e?e.split(",").map((e=>e.trim())):null},kn={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 Mn=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=g.Collaborator),this.statusId||(this.statusId=f.Pending)}updateModifiedAt(){this.modifiedAt=new Date}customSecurityRoleId;customSecurityRole};r([e.Column("binary",{primary:!0,name:"id",length:16,transformer:me}),n("design:type",String)],Mn.prototype,"id",void 0),r([e.Column("int",{name:"numberId",unique:!0}),e.Generated("increment"),n("design:type",Number)],Mn.prototype,"numberId",void 0),r([e.Column("int",{name:"inviterClientId"}),n("design:type",Number)],Mn.prototype,"inviterClientId",void 0),r([e.Column("binary",{name:"inviterUserId",length:16,transformer:me}),n("design:type",String)],Mn.prototype,"inviterUserId",void 0),r([e.Column("varchar",{name:"inviteeEmail",length:255}),n("design:type",String)],Mn.prototype,"inviteeEmail",void 0),r([e.Column("tinyint",{name:"inviteeSecurityRoleId"}),n("design:type",Number)],Mn.prototype,"inviteeSecurityRoleId",void 0),r([e.Column("tinyint",{name:"statusId"}),n("design:type",Number)],Mn.prototype,"statusId",void 0),r([e.Column("datetime",{name:"createdAt"}),n("design:type",Date)],Mn.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"modifiedAt"}),n("design:type",Date)],Mn.prototype,"modifiedAt",void 0),r([e.Column("binary",{name:"inviteeUserId",length:16,transformer:me,nullable:!0}),n("design:type",String)],Mn.prototype,"inviteeUserId",void 0),r([e.Column("mediumtext",{name:"trackerImeis",nullable:!0,transformer:xn}),n("design:type",Array)],Mn.prototype,"trackerImeis",void 0),r([e.Column("text",{name:"trackerAccess",nullable:!0}),n("design:type",String)],Mn.prototype,"trackerAccess",void 0),r([e.Column("datetime",{name:"minAccessDate",nullable:!0}),n("design:type",Date)],Mn.prototype,"minAccessDate",void 0),r([e.Column("text",{name:"boundaries",nullable:!0,transformer:kn}),n("design:type",Array)],Mn.prototype,"boundaries",void 0),r([e.Column("text",{name:"boundaryAccess",nullable:!0}),n("design:type",String)],Mn.prototype,"boundaryAccess",void 0),r([e.Column("text",{name:"tasksAccess",nullable:!0}),n("design:type",String)],Mn.prototype,"tasksAccess",void 0),r([e.BeforeInsert(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Mn.prototype,"generateDefaults",null),r([e.BeforeUpdate(),n("design:type",Function),n("design:paramtypes",[]),n("design:returntype",void 0)],Mn.prototype,"updateModifiedAt",null),r([e.Column("int",{name:"customSecurityRoleId",nullable:!0}),n("design:type",Number)],Mn.prototype,"customSecurityRoleId",void 0),Mn=r([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"})],Mn);let Fn=class{id;userId;clientId;deviceManufacturer;deviceOs;deviceOsVersion;appVersion;requestDate;amazonRequestDate;deviceIdentifierKey};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Fn.prototype,"id",void 0),r([e.Column("binary",{name:"userId",length:16}),n("design:type",Buffer)],Fn.prototype,"userId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Fn.prototype,"clientId",void 0),r([e.Column("varchar",{name:"deviceManufacturer",length:500}),n("design:type",String)],Fn.prototype,"deviceManufacturer",void 0),r([e.Column("varchar",{name:"deviceOs",length:50}),n("design:type",String)],Fn.prototype,"deviceOs",void 0),r([e.Column("varchar",{name:"deviceOsVersion",length:20}),n("design:type",String)],Fn.prototype,"deviceOsVersion",void 0),r([e.Column("varchar",{name:"appVersion",length:10}),n("design:type",String)],Fn.prototype,"appVersion",void 0),r([e.Column("datetime",{name:"requestDate",nullable:!0}),n("design:type",Date)],Fn.prototype,"requestDate",void 0),r([e.Column("datetime",{name:"amazonRequestDate",nullable:!0}),n("design:type",Date)],Fn.prototype,"amazonRequestDate",void 0),r([e.Column("varchar",{name:"deviceIdentifierKey",nullable:!0,length:255}),n("design:type",String)],Fn.prototype,"deviceIdentifierKey",void 0),Fn=r([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"})],Fn);let Ln=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};r([e.PrimaryGeneratedColumn({type:"int",name:"id"}),n("design:type",Number)],Ln.prototype,"id",void 0),r([e.Column("varchar",{name:"firstName",nullable:!0,length:100}),n("design:type",String)],Ln.prototype,"firstName",void 0),r([e.Column("varchar",{name:"lastName",nullable:!0,length:100}),n("design:type",String)],Ln.prototype,"lastName",void 0),r([e.Column("varchar",{name:"email",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"email",void 0),r([e.Column("varchar",{name:"phoneNumber",nullable:!0,length:20}),n("design:type",String)],Ln.prototype,"phoneNumber",void 0),r([e.Column("varchar",{name:"phoneCode",nullable:!0,length:10}),n("design:type",String)],Ln.prototype,"phoneCode",void 0),r([e.Column("varchar",{name:"phoneCodeCountryId",nullable:!0,length:10}),n("design:type",String)],Ln.prototype,"phoneCodeCountryId",void 0),r([e.Column("varchar",{name:"companyName",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"companyName",void 0),r([e.Column("varchar",{name:"street",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"street",void 0),r([e.Column("varchar",{name:"state",nullable:!0,length:100}),n("design:type",String)],Ln.prototype,"state",void 0),r([e.Column("varchar",{name:"postalCode",nullable:!0,length:20}),n("design:type",String)],Ln.prototype,"postalCode",void 0),r([e.Column("varchar",{name:"country",nullable:!0,length:100}),n("design:type",String)],Ln.prototype,"country",void 0),r([e.Column("int",{name:"pin",nullable:!0}),n("design:type",Number)],Ln.prototype,"pin",void 0),r([e.Column("varchar",{name:"imei",nullable:!0,length:15}),n("design:type",String)],Ln.prototype,"imei",void 0),r([e.Column("varchar",{name:"deviceType",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"deviceType",void 0),r([e.Column("varchar",{name:"deviceName",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"deviceName",void 0),r([e.Column("varchar",{name:"orderId",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"orderId",void 0),r([e.Column("varchar",{name:"trackingReason",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"trackingReason",void 0),r([e.Column("varchar",{name:"userName",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"userName",void 0),r([e.Column("varchar",{name:"plan",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"plan",void 0),r([e.Column("varchar",{name:"billingFrequency",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"billingFrequency",void 0),r([e.Column("varchar",{name:"planId",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"planId",void 0),r([e.Column("varchar",{name:"subscriptionSource",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"subscriptionSource",void 0),r([e.Column("varchar",{name:"subscriptionId",nullable:!0,length:50}),n("design:type",String)],Ln.prototype,"subscriptionId",void 0),r([e.Column("varchar",{name:"platform",nullable:!0,length:25}),n("design:type",String)],Ln.prototype,"platform",void 0),r([e.Column("varchar",{name:"status",nullable:!0,length:10}),n("design:type",String)],Ln.prototype,"status",void 0),r([e.Column("datetime",{name:"createdAt",nullable:!0}),n("design:type",Date)],Ln.prototype,"createdAt",void 0),r([e.Column("datetime",{name:"lastUpdatedAt",nullable:!0}),n("design:type",Date)],Ln.prototype,"lastUpdatedAt",void 0),r([e.Column("varchar",{name:"city",nullable:!0,length:255}),n("design:type",String)],Ln.prototype,"city",void 0),r([e.Column("int",{name:"clientId",nullable:!0}),n("design:type",Number)],Ln.prototype,"clientId",void 0),r([e.Column("varchar",{name:"countryCode",nullable:!0,length:3}),n("design:type",String)],Ln.prototype,"countryCode",void 0),r([e.Column("binary",{name:"tempUserId",nullable:!0,length:16}),n("design:type",Buffer)],Ln.prototype,"tempUserId",void 0),Ln=r([e.Index("ixUserRegistrationAttemptTempUserId",["tempUserId"],{}),e.Entity("userRegistrationAttempt",{schema:"nova"})],Ln);let Qn=class{connectionId;clientId;userId;host;createdAt;subscription};r([e.PrimaryColumn("varchar",{name:"connectionId",length:36}),n("design:type",String)],Qn.prototype,"connectionId",void 0),r([e.Column("int",{name:"clientId"}),n("design:type",Number)],Qn.prototype,"clientId",void 0),r([e.Column("binary",{name:"userId",length:16,transformer:me}),n("design:type",String)],Qn.prototype,"userId",void 0),r([e.Column("varchar",{name:"host",length:255}),n("design:type",String)],Qn.prototype,"host",void 0),r([e.CreateDateColumn({name:"createdAt"}),n("design:type",Date)],Qn.prototype,"createdAt",void 0),r([e.Column("json",{name:"subscription",nullable:!0}),n("design:type",Object)],Qn.prototype,"subscription",void 0),Qn=r([e.Index("ixWebsocketConnectionUserId",["userId"]),e.Index("ixWebsocketConnectionClientIdUserIdHost",["clientId","userId","host"]),e.Index("ixWebsocketConnectionCreatedAt",["createdAt"]),e.Entity("websocketConnection",{schema:"nova"})],Qn);var qn=Object.freeze({__proto__:null,get AcumaticaAmazonProduct(){return a},get AcumaticaImeiIccidData(){return o},get AcumaticaOrderShipmentDetails(){return s},get AcumaticaShipment(){return l},get AcumaticaShipmentAmazon(){return d},get AempToken(){return u},get Alert(){return m},get AlertType(){return p},get AppFeatureType(){return y},get AsinPromotion(){return de},get AssetCategory(){return ue},get AssetProfile(){return Le},get AssetProfileCategory(){return Me},get AssetProfileCustomField(){return ce},get AssetProfileCustomStatus(){return Qe},get AssetProfileMedia(){return pe},get AssetProfileNote(){return ke},get AssetProfileType(){return Fe},get AvalaraExemptCert(){return _e},get AvalaraQueue(){return We},get BLEMesh(){return ze},get BLEMeshConfiguration(){return gt},get BeaconBleMesh(){return Ve},get Billing(){return Je},get BillingCampaign(){return He},get BillingCampaignFreeTrial(){return Ke},get BillingCustomerAmazon(){return $e},get BillingCustomerBraintree(){return Xe},get BillingCustomerStripe(){return Ye},get BillingDeviceHistory(){return Ze},get BillingDeviceTypePlan(){return tt},get BillingDunning(){return nt},get BillingHubspotPaymentLog(){return at},get BillingKlarnaCustomer(){return ot},get BillingKlarnaOrder(){return st},get BillingPlanFeatures(){return lt},get BillingPlans(){return et},get BillingStatusHistoryBraintree(){return dt},get BillingSubscriptionAmazon(){return ut},get BillingSubscriptionBraintree(){return ct},get BillingSubscriptionStripe(){return pt},get Blacklist(){return mt},get BlacklistType(){return yt},get Boundary(){return vt},get BoundaryEvent(){return ht},get CellTower(){return It},get Client(){return Se},get ClientAlertConfiguration(){return we},get ClientAlertRecipient(){return Re},get ClientApiToken(){return ft},get ClientApiTokenShareHistory(){return Ct},get ClientAppFeature(){return bt},get ClientConfiguration(){return St},get ClientDeviceIcon(){return he},get ClientDeviceSetting(){return At},get ClientIngestorConfiguration(){return Dt},get ClientIssuesConfiguration(){return Rt},get ClientType(){return ye},get Country(){return Ae},get CustomReport(){return Ut},get CustomReportColumn(){return wt},get CustomReportColumnCategory(){return Tt},get CustomReportDataSource(){return Nt},get CustomReportSelectedColumn(){return Bt},get CustomSecurityRole(){return Et},get CustomerAttribute(){return ge},get DataExport(){return Pt},get DataSourceType(){return Ot},get Deactivation(){return xt},get DeactivationReason(){return kt},get DemoAccountDeviceData(){return Mt},get DemoAccountSiteLocation(){return Ft},get DemoAccountTemplate(){return ve},get DemoAccountTemplateAssetProfile(){return Lt},get DemoAccountTemplateBleMesh(){return Qt},get DemoAccountTemplateDevice(){return qt},get DemoAccountTripTemplate(){return _t},get DemoAccountTripTemplatePosition(){return Wt},get DemoDeviceData(){return jt},get Device(){return fe},get DeviceBehavior(){return zt},get DeviceBleMesh(){return je},get DeviceBleMeshUpdateTask(){return Vt},get DeviceCameraConfiguration(){return Gt},get DeviceCameraMedia(){return $t},get DeviceCameraMediaEventType(){return Jt},get DeviceCameraMediaStreamingData(){return Xt},get DeviceCameraMediaStreamingSession(){return Yt},get DeviceCameraMediaSyncStatus(){return Zt},get DeviceCameraRequestedPictureData(){return Ht},get DeviceCameraRequestedVideoData(){return Kt},get DeviceChangesHistory(){return ei},get DeviceCustomConfiguration(){return Ce},get DeviceEventsTriggerConfiguration(){return ti},get DeviceHistory(){return ii},get DeviceModelListener(){return ri},get DevicePairing(){return ni},get DevicePromotion(){return ae},get DeviceReplacement(){return ai},get DeviceStatus(){return oi},get DeviceTask(){return li},get DeviceType(){return Ie},get DeviceTypeFeature(){return di},get DeviceTypeFirmware(){return ui},get DeviceTypePromotion(){return oe},get EmailDomain(){return ci},get EntityTag(){return pi},get EntityType(){return mi},get Feature(){return yi},get FirmwareAutoUpgradeBlacklist(){return gi},get FirmwareUpgradeTask(){return vi},get HistoricalBillingPlan(){return hi},get IccidStatus(){return Ii},get ImeiIccidCarrier(){return fi},get ImeiIccidHistory(){return Ci},get ImeiIccidImport(){return bi},get Industry(){return Si},get Issue(){return jr},get IssueType(){return Wr},get LatestPosition(){return zr},get LatestUserAppInfo(){return Vr},get LiveLink(){return Jr},get LiveLinkMedia(){return Gr},get M2Sync(){return Hr},get Magento2Gps(){return Kr},get Magento2Plan(){return $r},get MarketplacePromotion(){return se},get MobileNetwork(){return Xr},get NotificationRecipient(){return Te},get OrderShipmentInternational(){return Yr},get Organization(){return be},get Plan(){return Ge},get Position(){return Zr},get Promotion(){return le},get PromotionHistory(){return en},get Region(){return tn},get ReportScheduleConfiguration(){return rn},get SecurityRole(){return Ee},get ServiceProvider(){return nn},get ServiceProviderProduct(){return an},get ServiceProviderProductNetwork(){return on},get ServiceProviderProductType(){return sn},get Sim(){return ln},get StripeAddonMapping(){return dn},get StripePriceMapping(){return un},get Tag(){return cn},get Task(){return pn},get TaskSchedule(){return si},get TicketManager(){return mn},get Trip(){return yn},get TripCompletionStatus(){return gn},get TripPosition(){return vn},get TripStatus(){return hn},get User(){return xe},get UserActivation(){return In},get UserActivationDevice(){return fn},get UserActivationEvent(){return Cn},get UserActivationMetric(){return bn},get UserAlertComplain(){return De},get UserAlertConfiguration(){return Ne},get UserAlertNotificationsConfig(){return Be},get UserAppFeedback(){return Sn},get UserAppIncident(){return An},get UserAuthorizedBoundary(){return Dn},get UserAuthorizedBoundarySecurityView(){return Rn},get UserAuthorizedBoundarySecurityViewV2(){return Rn},get UserAuthorizedDevice(){return wn},get UserAuthorizedDeviceSecurityView(){return Tn},get UserAuthorizedDeviceSecurityViewV2(){return Tn},get UserCancellationDueDevice(){return Nn},get UserCarrierDeactivateDevice(){return Bn},get UserCarrierReactivateDevice(){return Un},get UserConfiguration(){return Ue},get UserDataDeletionRequest(){return En},get UserDeviceBehaviorTask(){return Pn},get UserFreeOfferDevice(){return On},get UserInvitation(){return Mn},get UserRatingRequest(){return Fn},get UserRegistrationAttempt(){return Ln},get UserSecurityRole(){return Oe},get WebsocketConnection(){return Qn}});const _n=["Device","Billing"];let Wn=class{afterRemove(e){const t=e.metadata.name,i=`ENTITY OF TYPE ${t} REMOVED`;_n.includes(t)&&console.error(i,{entityId:e.entityId,entity:e.entity,databaseEntity:e.databaseEntity})}};Wn=r([e.EventSubscriber()],Wn);var jn=Object.freeze({__proto__:null,get AllEntitiesSubscriber(){return Wn}});const zn=["commit","start transaction","select version()"];class Vn{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 zn)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 Gn{dataSource;logger;constructor(t,i,r){this.logger=i;const n=[];for(const e in qn){const t=qn[e];n.push(t)}const a=[];for(const e in jn){const t=jn[e];a.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 Vn(this.logger,t.logging),entities:n,subscribers:a,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:n}={}){let a;try{await this.connect(),r?(this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),a=this.dataSource.createQueryRunner(r)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const n=this.dataSource.createQueryBuilder(e,t,a);return await i(n)}catch(e){throw this.logger.error({error:e},n?n+" ":"Error while executing query"),e}finally{a&&await a.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}}class Jn{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 Hn{novaDataSourceConfig;replicaNovaDataSourceConfig;logger;useBeta;constructor(e,t,i,r=!1){this.novaDataSourceConfig=e,this.replicaNovaDataSourceConfig=i,this.logger=t??new Jn,this.useBeta=r}}class Kn{useBeta;dataSource;logger;constructor(e){this.useBeta=e.useBeta??!1,this.dataSource=e.dataSource,this.logger=e.logger??new Jn}}const $n=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}},Xn=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 Yn=async(e,t,i)=>{const r=e.getRepository(ht),n={deviceId:i,boundaryId:t.boundaryId,userId:$n(t.userId),inDate:t.eventType===E.Enter?t.sendTime:null,inLat:t.eventType===E.Enter?t.lat:null,inLon:t.eventType===E.Enter?t.lon:null,inAddress:t.eventType===E.Enter?t.address:null,outDate:t.eventType===E.Exit?t.sendTime:null,outLat:t.eventType===E.Exit?t.lat:null,outLon:t.eventType===E.Exit?t.lon:null,outAddress:t.eventType===E.Exit?t.address:null},a=await r.insert(n);return a?.raw.affectedRows>0},Zn=(e,t)=>{const i=e.getTime(),r=t.getTime();return Math.abs(r-i)/1e3},ea=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=$n(t.userId);return r?e.safeQuery((async e=>{const n=e.getRepository(fe),a=await n.findOne({where:{imei:t.imei}});if(!a)return i.warn({params:t},"BoundariesRepository::processBoundaryEvent - device not found"),!1;const o=e.getRepository(ht);if(!await o.findOne({where:{deviceId:a.id,boundaryId:t.boundaryId,userId:r}}))return await Yn(e,t,a.id);const s=await(async(e,t,i)=>{let r=null;const n=e.getRepository(ht).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:$n(t.userId)});return r=t.eventType===E.Enter?(await n.andWhere("boundaryEvent.inDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","DESC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await n.andWhere("boundaryEvent.outDate < :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","DESC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,a.id),l=await(async(e,t,i)=>{let r=null;const n=e.getRepository(ht).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:$n(t.userId)});return r=t.eventType===E.Enter?(await n.andWhere("boundaryEvent.inDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.inDate","ASC").select("boundaryEvent.inDate").limit(1).getOne())?.inDate:(await n.andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}).orderBy("boundaryEvent.outDate","ASC").select("boundaryEvent.outDate").limit(1).getOne())?.outDate,r})(e,t,a.id);i.trace({previousEventDate:s,nextEventDate:l},"BoundariesRepository::processBoundaryEvent - previousEventDate, nextEventDate");const d=await(async(e,t,i,r,n)=>{let a=null;const o=e.getRepository(ht).createQueryBuilder("boundaryEvent").where("boundaryEvent.deviceId = :deviceId",{deviceId:i}).andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.boundaryId}).andWhere("boundaryEvent.userId = :userId",{userId:$n(t.userId)});return t.eventType===E.Enter?(o.andWhere("boundaryEvent.inDate IS NULL").andWhere("boundaryEvent.outDate > :sendTime",{sendTime:t.sendTime}),n&&o.andWhere("boundaryEvent.outDate <= :nextEventDate",{nextEventDate:n}),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||n?o.orderBy("boundaryEvent.inDate","ASC"):o.orderBy("boundaryEvent.inDate","DESC")),a=await o.limit(1).getOne(),a})(e,t,a.id,s,l);if(i.trace({existingOrphanEventId:d?.id},"BoundariesRepository::processBoundaryEvent - existingOrphanEventId"),null!=d){return(await o.update({id:d.id},{inDate:t.eventType===E.Enter?t.sendTime:void 0,inLat:t.eventType===E.Enter?t.lat:void 0,inLon:t.eventType===E.Enter?t.lon:void 0,inAddress:t.eventType===E.Enter?t.address:void 0,outDate:t.eventType===E.Exit?t.sendTime:void 0,outLat:t.eventType===E.Exit?t.lat:void 0,outLon:t.eventType===E.Exit?t.lon:void 0,outAddress:t.eventType===E.Exit?t.address:void 0,modifiedAt:new Date,inOutDuration:t.eventType===E.Enter?Zn(t.sendTime,d.outDate):Zn(d.inDate,t.sendTime)})).affected>0}return await Yn(e,t,a.id)}),"BoundariesRepository::processBoundaryEvent"):(i.warn({params:t},"BoundariesRepository::processBoundaryEvent - userId should be a valid uuid"),!1)};const ta=async(e,t,i,r,n,a)=>{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=a?.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=n?.map((e=>({id:null,clientAlertConfigurationId:t,userId:$n(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 ra(e,t,i,o);const d=e.getRepository(Re);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},ia=async(e,t,i,r)=>{const n=e.getRepository(Te);if(await n.createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t}).execute(),!r?.length)return!0;const a=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:a}))),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 n.insert(e);if(!t?.raw?.affectedRows)return!1}return!0},ra=async(e,t,i,r)=>{const n=await(async(e,t,i)=>{const r=t.find((e=>null==e.userId&&null==e.roleId)),n=e.getRepository(xe);if(r)return(await n.createQueryBuilder("user").where("clientId = :clientId",{clientId:i}).getMany()).map((e=>Xn(e.id)));const a=new Set;t.filter((e=>null!=e.userId)).forEach((e=>{a.add(Xn(e.userId))}));const o=t.filter((e=>null!=e.roleId)).map((e=>e.roleId));o.length>0&&(await n.createQueryBuilder("user").innerJoin(Oe,"userSecurityRole","userSecurityRole.userId = user.id").where("user.clientId = :clientId",{clientId:i}).andWhere("userSecurityRole.securityRoleId IN (:...roleIds)",{roleIds:o}).getMany()).forEach((e=>a.add(Xn(e.id))));return Array.from(a)})(e,r,i),a=e.getRepository(Be).createQueryBuilder().delete().where("clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t});n.length&&a.andWhere("userId NOT IN (:...userIds)",{userIds:n.map((e=>$n(e)))}),await a.execute()};const na=(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},aa=(e,t)=>!e||!t||t.some((t=>null==na(e,t))),oa=(e,t)=>!e?.length||!t||e.some((e=>aa(e,t))),sa=(e,t)=>!e||!t||t.every((t=>null==na(e,t)));const la=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(Ae).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 da="minute",ua=/[+-]\d\d(?::?\d\d)?/g,ca=/([+-]|\d\d)/g;i.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(),da):t},r.local=function(){return i(this.toDate(),{locale:this.$L,utc:!1})};const n=r.parse;r.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),n.call(this,e)};const a=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 a.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(ua);if(!t)return null;const[i,r,n]=`${t[0]}`.match(ca)||["-",0,0],a=60*+r+ +n;return 0===a?0:"+"===i?a:-a}(e),null===e))return this;const r=Math.abs(e)<=16?60*e:e;let n=this;if(t)return n.$offset=r,n.$u=0===e,n;if(0!==e){const e=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();n=this.local().add(r+e,da),n.$offset=r,n.$x.$localOffset=e}else n=this.utc();return n};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 n=this.local(),a=i(e).local();return d.call(n,a,t,r)}}));const pa=i,ma=()=>pa.utc().toDate(),ya=async(e,t,i)=>t?.deviceTypeId&&t?.deviceIdentifier?e.safeQuery2((async e=>{const i=e.getRepository(Ie),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 ga=(new Date).getTime()-new Date(2019,0,1).getTime(),va=36e5,ha=[8,9,13,20,31,32],Ia=(e,t)=>{let i=0;return i=e>t?0:0===e?1:e/t,i},fa=(e,t)=>{const{speed:i,deviceTypeId:r}=e,n=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?ga:0:n?1e3*i*1.2:1e3*r*2}switch(r){case 8:case 9:return 864e5;default:return n?108e5:3e5}},Ca=(e,t)=>{const i=[];if(!e||!t)return i;const{deviceTypeId:r}=t,n={...e,deviceTypeId:r};{const e=((e,t)=>{const i={name:"cellularNetwork"};try{const r=fa(e,t),n=(new Date).getTime(),a=n-r,o=new Date(e.created).getTime();i.ok=o>=a,i.msg=`${e.deviceTypeId}`;const s=Math.abs(n-o);i.confidence=Ia(s,r)}catch(e){i.msg=JSON.stringify(e)}return i})(n,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,n=Number(e.gpsUTCTime.substring(6,8)),a=Number(e.gpsUTCTime.substring(8,10)),o=Number(e.gpsUTCTime.substring(10,12)),s=Number(e.gpsUTCTime.substring(12));i=new Date(t,r,n,a,o,s)}const n=new Date(e.sendTime),a=fa(e,t),o=i.getTime(),s=n.getTime(),l=Math.abs(s-o);r.ok=l<a,r.confidence=Ia(l,a)}else r.ok=!1,r.confidence=1}catch(e){r.msg=JSON.stringify(e)}return r})(n,t,!!e.ok);i.push(r);const{batteryPercentage:a}=n;if(void 0!==a){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})(n);i.push(e)}}return i},ba=e=>{const{logger:t,deviceStatus:i,withConnectionStatusInfo:r,withOnlineStatus:n}=e;try{if(i?.device?.deviceType?.readOnly)return;if(r&&(i.data.connectionStatus=Ca(i.data,i.device)),n&&(i.data.isOnline=(e=>{let t=126e5;ha.some((t=>t==e.deviceTypeId))&&(t=9e7),e?.restFrequency&&1e3*e?.restFrequency>t&&(t=1e3*e.restFrequency+va);const i=new Date(e.sendTime);return`${(new Date).getTime()-i.getTime()<t}`})(i.data),"false"===i.data.isOnline&&null!=i?.data?.created)){const e=(new Date).getTime(),t=new Date(i.data.created),r=Math.abs(e-t.getTime());i.data.isSyncing=r<3e5}}catch(e){t.error(e,"Error while extending device status properties")}};const Sa=["deviceTypeId","featureKey"],Aa=["deviceTypeId","featureKey"];const Da=async(e,t,i)=>0===t?.length||oa(t,Yi)?(i.warn({paramsArray:t},"EntityTagsRepository::bulkCreateEntityTag missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(pi),r=t.map((e=>({...e,userId:e.userId?$n(e.userId):null,createdAt:ma()})));return await i.save(r)??[]}),"EntityTagsRepository::bulkCreateEntityTag error"),Ra=async(e,t,i)=>aa(t,tr)||sa(t,ir)?(i.warn({params:t},"EntityTagsRepository::bulkDeleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{let i=e.getRepository(pi).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 wa=["key","name"];const Ta=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(vi).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:$n(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",fe,"device","firmwareUpgradeTask.imei = device.imei"),e?.projectionOptions?.deviceWithDeviceType&&(t=t.leftJoinAndMapOne("device.deviceType",Ie,"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)},Na=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(vi).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:$n(e.filters.taskId)})),t))(t,r);return await r.getCount()}),"FirmwaresRepository::getFirmwareUpgradeTasksCount",r)};const Ba=async(e,t,i)=>{if(!t?.id||!t?.imei)return!1;const r=e.getRepository(zr);try{const{id:e,deleted:i,...n}=t,a=r.createQueryBuilder();if((await a.insert().into(zr).values({...n,positionId:e}).orIgnore().execute()).raw.affectedRows>0)return!0;return(await a.update(zr).set({...n,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}},Ua=e=>({imei:e.imei,createdAt:e.createdAt,actualDate:e.actualDate,sendTime:e.sendTime,messageId:Xn(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 Ea=["name","description","type","startDate","status"],Pa=["filters.id"],Oa=["values.name","values.description","values.type","values.discount","values.discountBillingCycles","values.freeServiceMonths","values.startDate","values.endDate","values.status","values.bannerText","values.trackerText"],xa=["filters.id","filters.marketplaceId","filters.asin","filters.imei","filters.deviceTypeId","filters.status"],ka=["marketplaceId","promotionId"],Ma=["deviceTypeId","promotionId"],Fa=["promotionId","marketplaceId"],La=["promotionId","deviceTypeId"],Qa=["filters.promotionId","filters.deviceTypeId"],qa=["filters.promotionId","filters.marketplaceId"],_a=["imei","promotionId","promotionType","appliedAt"],Wa=(e,t)=>{const i=e,r=e,n=i.type??r.values.type;if(n===P.Discount){return(i.discount??r.values.discount)<=0}if(n===P.FreeService){return(i.freeServiceMonths??r.values.freeServiceMonths)<=0}return t.warn({params:e},"PromotionRepository::invalidPromotion incorrect promotion type"),!1};const ja=(e,t,i)=>{const r=[];let n=[];for(const a of e)n.push(i(a)),n.length===t&&(r.push(n),n=[]);return n.length>0&&r.push(n),r};const za=async(e,t,i)=>{if(sa(t,Er))return i.warn({params:t},"UsersRepository::getUserById - missing required parameters"),null;const r=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,r)=>{let n=e.getRepository(xe).createQueryBuilder("user");if(r&&(n=n.setQueryRunner(r)),t.filters.id){const e=$n(t?.filters?.id);if(!e?.length)return i.warn({params:t},"UsersRepository::getUserById - user id should be a valid UUID"),null;n=n.where("user.id = :id",{id:e})}t.filters.numberId&&(n=n.andWhere("user.numberId = :numberId",{numberId:t.filters.numberId})),t.projectionOptions?.withSecurityRole&&(n=n.leftJoinAndSelect("user.userSecurityRoles","userSecurityRoles").leftJoinAndSelect("userSecurityRoles.securityRole","securityRole"));return await n.getOne()}),"UsersRepository::getUserById",r)},Va=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(Va(i))return!0}}return!1};const Ga=(e,t,i,r)=>{if(!e||!t)return e;for(const n of i){const i=t[n.filterName],a=n.targetFieldName;if(void 0!==i&&a&&n.comparisonOperator)if(null!==i)switch(n.comparisonOperator){case"RANGE":const t=i.minValue,o=i.maxValue;null!=t&&(e=e.andWhere(`${r}.${a} >= :${a}MinValue`,{[`${a}MinValue`]:t})),null!=o&&(e=e.andWhere(`${r}.${a} <= :${a}MaxValue`,{[`${a}MaxValue`]:o}));break;case"LIKE":e=e.andWhere(`LOWER(${r}.${a}) LIKE LOWER(:${a})`,{[a]:`%${i}%`});break;case"=":e=e.andWhere(`${r}.${a} = :${a}`,{[a]:i});break;case"IN":e=e.andWhere(`${r}.${a} IN (:...${a})`,{[a]:i});break;default:throw new Error(`Unknown comparison operator: ${n.comparisonOperator}`)}else e=e.andWhere(`${r}.${a} IS NULL`)}return e},Ja=[{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"}],Ha=[{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"}],Ka=[{targetFieldName:"title",filterName:"title",comparisonOperator:"LIKE"},{targetFieldName:"description",filterName:"description",comparisonOperator:"LIKE"}],$a=async(e,t,i)=>{if(!Va(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(si).createQueryBuilder("taskSchedule");i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(li,"dt","taskSchedule.id = dt.taskScheduleId").andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Ga(r,t.filters,Ja,"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 n=t.sortOptions?.sortField??"id",a=t.sortOptions?.sortOrder??"DESC";r=r.orderBy(`taskSchedule.${n}`,a);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}))),n=i.getRepository(li),a=n.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 a.getMany(),s=n.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 Xa=async(e,t,i)=>{const r=e.getRepository(Oe).createQueryBuilder("userSecurityRole");i&&r.setQueryRunner(i);return await r.innerJoin(xe,"user","user.id = userSecurityRole.userId and user.clientId = userSecurityRole.clientId").where("userId = :userId",{userId:t}).getMany()},Ya=async(e,t,i,r)=>{const n=e.getRepository(Be).createQueryBuilder();r&&n.setQueryRunner(r);return await n.where("userId = :userId and clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{userId:t,clientAlertConfigurationIds:i.map((e=>e.id))}).getMany()},Za=async(e,t,i,r)=>{let n=e.getRepository(we).createQueryBuilder("clientAlertConfiguration").distinct(!0);r&&n.setQueryRunner(r),n=n.innerJoin(xe,"user","user.clientId = clientAlertConfiguration.clientId and user.id = :userId",{userId:t}).leftJoin(Re,"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&&n.orWhere("clientAlertRecipient.roleId IS NOT NULL and clientAlertRecipient.roleId IN (:...roleIds)",{roleIds:i.map((e=>e.securityRoleId))});return await n.getMany()},eo=async(e,t,i)=>{if(!t.length)return[];const r=e.getRepository(Re).createQueryBuilder();i&&r.setQueryRunner(i);return await r.where("clientAlertConfigurationId IN (:...clientAlertConfigurationIds)",{clientAlertConfigurationIds:t}).getMany()};const to=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(xe).createQueryBuilder("user").innerJoin(Oe,"userSecurityRole","userSecurityRole.userId = user.id").innerJoin(Ee,"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 n=new RegExp(`^${t}`),a=r.replace(n,"");i[a]=e[r]})),i})(e,"user_")))}),"UsersRepository::getUsersWithRoles",r)},io=async(e,t,i)=>{let r=await la(t,{filters:{alpha2Code:e}},i);return r||(r=await la(t,{filters:{alpha2Code:"US"}},i)),r?.id};var ro=Object.freeze({__proto__:null,AcumaticaRepository:class extends Hn{async getAcumaticaImeiIccidData(e){this.logger.trace(e,"AcumaticaRepository::getAcumaticaImeiIccidData started with params");const t=new Gn(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(o).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 Gn(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(d).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 Gn(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(o).createQueryBuilder("acumaticaImeiIccidData").innerJoin(fe,"device","device.imei = acumaticaImeiIccidData.imei").where("device.clientId = :clientId",{clientId:t.filters.clientId}).orderBy("acumaticaImeiIccidData.shipDate","DESC").limit(1);i&&r.setQueryRunner(i);const n=await r.getOne();return n?{imei:n.imei,iccid:n.iccid,shipmentDate:new Date(n.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 Gn(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(s),n=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(),l=e.getRepository(o).createQueryBuilder("acumaticaImeiIccidData").leftJoin(a,"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=[...n[1],...l[1]],u=`(${n[0]}) UNION (${l[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 Gn(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(Yr).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 Hn{async getAempTokens(e){this.logger.trace(e,"AempTokenRepository::getAempTokens started with params");const t=new Gn(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=$n(t?.filters?.token);if(t?.filters?.token&&!r?.length)return i.warn({params:t},"AempTokenRepository::getClientIdForToken - token should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(u).createQueryBuilder("AempToken");return i&&(n=n.setQueryRunner(i)),t?.filters?.clientId&&(n=n.andWhere("AempToken.clientId = :clientId",{clientId:t?.filters?.clientId})),t?.filters?.token&&(n=n.andWhere("AempToken.token = :token",{token:r})),await n.getMany()}),"AempTokenRepository::getAempTokens",n)})(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 Gn(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=$n(t?.token);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(u),n=new Date,a={id:t?.id,clientId:t?.clientId,token:r,createdAt:n,updatedAt:n,expiresAt:t?.expiresAt};return await i.save(a)}),"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 Gn(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=$n(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(u).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}},AppFeaturesRepository:class extends Hn{async createAppFeatureType(e){this.logger.trace("AppFeaturesRepository::createAppFeatureType started with params");const t=new Gn(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 Gn(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(bt),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 Gn(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(bt).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}},BillingRepository:class extends Hn{async getBillings(e){this.logger.trace(e,"BillingRepository::getBillings started with params");const t=new Gn(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(Je).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 Gn(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(Je),r=new Date,n={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(n)}),"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 Gn(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(Je),r=new Date;return(await i.createQueryBuilder().update(Je).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 Gn(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(Je).createQueryBuilder("billing").innerJoin(ct,"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 n=await r.getRawOne();return n?.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 Gn(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(Xe).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 Gn(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(Xe),r=new Date;return(await i.createQueryBuilder().update(Xe).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 Gn(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(Xe),r=await i.findOne({where:{id:t.id}}),n=new Date,a={id:t.id,firstName:t.firstName,lastName:t.lastName,company:t.company,email:t.email,phone:t.phone,churnStatus:r?.churnStatus,createdAt:r?.createdAt??n,updatedAt:n},o=await i.upsert(a,{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 Gn(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(dt),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)),n=[];for(const e of t.subscriptionHistories)r.find((t=>t===e.timestamp))||n.push({...e,subscriptionId:t.subscriptionId});return await i.save(n)}),"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 Gn(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(Ze),r=new Date,n={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(n)}),"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 Gn(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(xe).createQueryBuilder("user").innerJoin(Xe,"billingCustomerBraintree","LOWER(TRIM(billingCustomerBraintree.email)) = LOWER(TRIM(user.email))").innerJoin(ct,"billingSubscriptionBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoin(Je,"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 Gn(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(ct).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(Je,"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 Gn(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(Je).createQueryBuilder("billing").where("billing.clientId = :clientId",{clientId:t.filters.clientId}).innerJoinAndSelect(ct,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoinAndSelect(Xe,"billingCustomerBraintree","billingCustomerBraintree.id = billingSubscriptionBraintree.customerId").innerJoinAndSelect(dt,"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.subscriptionId?e.safeQuery((async e=>{const i=e.getRepository(ct),r=new Date,n={...t,createdAt:t.createdAt??r},a=await i.upsert(n,{conflictPaths:["subscriptionId"]});return a?.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 Gn(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(Je).createQueryBuilder("billing").innerJoin(ct,"billingSubscriptionBraintree","billingSubscriptionBraintree.subscriptionId = billing.subscriptionId").innerJoin(fi,"imeiIccidCarrier","imeiIccidCarrier.imei = billing.imei").innerJoin(fe,"device","device.imei = billing.imei").innerJoin(Se,"client","client.id = device.clientId").leftJoin(ge,"customerAttribute","client.id = customerAttribute.clientId").innerJoin(Ii,"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 AND client.clientTypeId != :demoClientTypeId",{testClientTypeId:C.test,demoClientTypeId:C.demo})),(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 Gn(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(Je);let n="";switch(t.filters.canceledIn){case"carrier":n=" AND iccidStatus.status = 'active' ";break;case"device":n=" AND device.status = 'A' ";break;default:n=" AND (iccidStatus.status = 'active' OR device.status = 'A') "}const a=`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 ${n}\n ${t.filters.excludeB2B?"AND customerAttribute.enterprise != true ":""}\n ${t.filters.excludeTest?`AND client.clientTypeId != ${C.test} AND client.clientTypeId != ${C.demo} `:""}\n ORDER BY billingSubscriptionBraintree.updatedAt ASC\n LIMIT ?`;return(i?await i.query(a,[t.filters.minCancellationDate,t.filters.maxCancellationDate,new Date,t.pagingOptions.pageSize??100]):await r.query(a,[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 Gn(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($r).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.amountPaid?e.safeQuery((async e=>{const i=e.getRepository(at),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 getBraintreePastDueSubscriptions(e){this.logger.trace(e,"BillingRepository::getBraintreePastDueSubscriptions started with params");const t=new Gn(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 Hn{async getBlacklists(e){this.logger.trace(e,"BlacklistRepository::getBlacklists started with params");const t=new Gn(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(mt).createQueryBuilder("blacklist").innerJoin(yt,"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 Gn(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(mt),r=await i.findOne({where:{blacklistTypeId:t.blacklistTypeId,value:t.value}}),n=new Date,a={...r,blacklistTypeId:t.blacklistTypeId,value:t.value,notes:t.notes,createdBy:r?r.createdBy:t.createdBy,createdAt:r?r.createdAt:n,modifiedBy:r?t.createdBy:null,modifiedAt:r?n:null},o=await i.upsert(a,{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 Gn(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(mt),r=new Date;return(await i.createQueryBuilder().update(mt).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 Gn(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(mt);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 Hn{async getBoundariesByClientId(e){this.logger.trace(e,"BoundariesRepository::getBoundariesByClientId started with params");const t=new Gn(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(vt),n=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},a=r.createQueryBuilder("boundary").where(n);i&&a.setQueryRunner(i),t.filters.tagIdList?.length&&a.innerJoin(pi,"entityTag","entityTag.entityId = boundary.id \n AND entityTag.entityType = 'Boundary'\n AND entityTag.tagId IN (:...tagIdList)",{tagIdList:t.filters.tagIdList});let o=await a.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(pi);o=await Promise.all(o.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Boundary"}).innerJoin(cn,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}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 Gn(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(vt),n=t.filters.status?{clientId:t.filters.clientId,status:t.filters.status}:{clientId:t.filters.clientId},a=r.createQueryBuilder("boundary").where(n);return i&&a.setQueryRunner(i),(await a.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 Gn(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(vt).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 Gn(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(vt),r=new Date;let n=parseFloat(t.buffer);Number.isNaN(n)&&(n=0);const a=Math.max(n,50),o=t.radiusDisplayUnit||"m",s=t.color||"#e74c3c",l=t.status>0&&t.status<4?t.status:h.Active,d={id:t.boundaryId,name:t.name,type:t.type,buffer:`${a}`,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 Gn(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 n=t?.values?.buffer;if(n){const e=parseFloat(t.values.buffer);Number.isNaN(e)&&(n=void 0)}return t?.values?.name||t?.values?.type||t?.values?.location||n||t?.values?.radiusDisplayUnit||t?.values?.color||t?.values?.geometry||r||t?.values?.area?e.safeQuery((async e=>{const i=e.getRepository(vt),a=new Date;return(await i.createQueryBuilder().update(vt).set({name:t.values.name,type:t.values.type,modifiedBy:t.values.modifiedBy,location:t.values.location,buffer:n,radiusDisplayUnit:t.values.radiusDisplayUnit,color:t.values.color,geometry:t.values.geometry,status:r,modifiedAt:a}).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.boundaryId?e.safeQuery((async e=>{const i=e.getRepository(vt),r=new Date;return(await i.createQueryBuilder().update(vt).set({status:h.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 Gn(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=$n(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"BoundariesRepository::getBoundariesReport - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(ht).createQueryBuilder("boundaryEvent").innerJoin(fe,"device","device.id = boundaryEvent.deviceId").innerJoin(vt,"boundary","boundary.id = boundaryEvent.boundaryId").where("boundaryEvent.userId = :userId",{userId:r}).andWhere("device.status = :deviceStatus",{deviceStatus:v.Active}).andWhere("boundaryEvent.deleted = 0");i&&n.setQueryRunner(i),t.filters.boundaryId&&n.andWhere("boundaryEvent.boundaryId = :boundaryId",{boundaryId:t.filters.boundaryId}),t.filters.boundaryName&&n.andWhere("boundary.name LIKE :boundaryName",{boundaryName:`%${t.filters.boundaryName}%`}),t.filters.imeis?.length&&n.andWhere("device.imei IN (:...imeis)",{imeis:t.filters.imeis}),t.filters.boundaryInStartDate&&n.andWhere("boundaryEvent.inDate >= :boundaryInStartDate",{boundaryInStartDate:t.filters.boundaryInStartDate}),t.filters.boundaryInEndDate&&n.andWhere("boundaryEvent.inDate <= :boundaryInEndDate",{boundaryInEndDate:t.filters.boundaryInEndDate}),t.filters.boundaryOutStartDate&&n.andWhere("boundaryEvent.outDate >= :boundaryOutStartDate",{boundaryOutStartDate:t.filters.boundaryOutStartDate}),t.filters.boundaryOutEndDate&&n.andWhere("boundaryEvent.outDate <= :boundaryOutEndDate",{boundaryOutEndDate:t.filters.boundaryOutEndDate}),t.filters.minDuration&&n.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&&n.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 a=n.clone().select("COUNT(boundaryEvent.id)","totalCount");if(n.innerJoin(`(${a.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"}n.orderBy(e||"boundaryEvent.inDate",t.sortOptions.sortOrder||"DESC")}return(await n.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",n)})(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await ea(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 Gn(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=$n(t.userId);return e.safeQuery((async e=>{const i=e.getRepository(ht),n=new Date,a={...t,userId:r,createdAt:t.createdAt??n,modifiedAt:t.modifiedAt??n},o=await i.upsert(a,{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 Hn{async getClientAlertConfigurations(e){this.logger.trace(e,"ClientAlertConfigurationRepository::getClientAlertConfigurations started with params");const t=new Gn(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(we).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(pi,"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 Gn(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(we),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 Gn(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(we).createQueryBuilder().update(we).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 Gn(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(we).createQueryBuilder().update(we).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 Gn(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:[]},n=e.getRepository(Re).createQueryBuilder("clientAlertRecipient").innerJoin(we,"clientAlertConfiguration","clientAlertConfiguration.id = clientAlertRecipient.clientAlertConfigurationId").where("clientAlertConfiguration.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("clientAlertConfiguration.id = :clientAlertConfigurationId",{clientAlertConfigurationId:t.filters.clientAlertConfigurationId});i&&n.setQueryRunner(i);const a=await n.getMany();r.internalRecipients=a;const o=e.getRepository(Te),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 Gn(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(we);return!!await i.findOne({where:{id:t.filters.clientAlertConfigurationId,clientId:t.filters.clientId}})&&(!!await ta(e,t.filters.clientAlertConfigurationId,t.filters.clientId,t.values.globalAccountConfig,t.values.userIdRecipients,t.values.roleIdRecipients)&&await ia(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 Gn(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=$n(t?.userId);return r?e.safeQuery((async e=>{const i=e.getRepository(Re),n=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!n?.length)return!1;const a=n?.find((e=>null==e.userId&&null==e.roleId));if(a)return!0;const o=n?.filter((e=>null!=e.userId)),s=o?.find((e=>e.userId.equals(r)));if(s)return!0;const l=n.filter((e=>null!=e.roleId)).map((e=>e.roleId));if(l.length>0){const t=e.getRepository(Oe),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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientAlertConfigurationId&&t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(Re),r=await i.createQueryBuilder("clientAlertRecipient").where("clientAlertRecipient.clientAlertConfigurationId = :clientAlertConfigurationId",{clientAlertConfigurationId:t.clientAlertConfigurationId}).getMany();if(!r?.length)return[];const n=r?.find((e=>null==e.userId&&null==e.roleId));if(n)return(await e.getRepository(xe).createQueryBuilder("user").where("user.clientId = :clientId and user.status = 'A'",{clientId:t.clientId}).getMany()).map((e=>({userId:Xn(e.id),email:e.email,phone:e.telephone})));const a=new Set;r.filter((e=>null!=e.userId)).forEach((e=>{a.add(e.userId)}));const o=r.filter((e=>null!=e.roleId));o.length>0&&(await e.getRepository(Oe).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=>{a.add(e)}));const s=[],l=Array.from(a);if(l?.length){const i=await e.getRepository(xe).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:Xn(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 Hn{async getClient(e){this.logger.trace(e,"ClientsRepository::getClient started with params");const t=new Gn(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(Se).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 Gn(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(Se).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 Gn(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(Se),r=new Date,n={id:t.clientId,name:t.name,email:t.email,clientTypeId:t.clientTypeId??C.b2c,createdAt:r,modifiedAt:r,createdBy:t.createdBy,uuid:$n(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(n)}),"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 Gn(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(Se),r=new Date;return(await i.createQueryBuilder().update(Se).set({name:t.values.name,uuid:t.values.uuid?$n(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 Gn(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(St,t.filters.clientId);const e=await r.manager.delete(Se,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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(sa(t,Oi))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(St).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?e.safeQuery((async e=>{const i=e.getRepository(St),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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,xi)||sa(t,ki)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(St);return(await i.createQueryBuilder().update(St).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,assetProfileStatusLabelsEnabled:t.values.assetProfileStatusLabelsEnabled}).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Mi)||sa(t,Fi)?(i.warn({params:t},"ClientsRepository::createCustomerAttribute - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(ge),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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Li)||sa(t,Qi)?(i.warn({params:t},"ClientsRepository::updateClientConfiguration - missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(St);return(await i.createQueryBuilder().update(ge).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 Gn(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(ge).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 Gn(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(Dt).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,qi)?(i.warn({params:t},"ClientsRepository::createClientIngestorConfiguration - missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(Dt),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 Hn{async getCountry(e){this.logger.trace(e,"CountriesRepository::getCountry started with params");const t=new Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await la(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 Gn(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(Ae).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}},DeactivationsRepository:class extends Hn{async getDeactivationReasons(e){this.logger.trace(e,"DeactivationsRepository::getDeactivationReasons started with params");const t=new Gn(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(kt).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 Gn(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(xt).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 Gn(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(xt),r=new Date,n={...t,createdAt:r};return await i.save(n)}),"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 Hn{async getDeviceBehaviors(e){this.logger.trace(e,"DeviceBehaviorsRepository::getDeviceBehaviors started with params");const t=new Gn(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(zt).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 Gn(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(zt).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 Gn(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(Pn).createQueryBuilder("userDeviceBehaviorTask");if(i&&r.setQueryRunner(i),t.filters.taskId){const e=$n(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 Gn(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=$n(t?.taskId);if(!r?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - taskId should be a valid UUID"),null;const n=$n(t?.userId);if(!n?.length)return i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - user id should be a valid UUID"),null;const a=$n(t?.commandTaskId);return t.commandTaskId&&!a?(i.warn({params:t},"DeviceBehaviorsRepository::createDeviceBehaviorTask - command task id should be a valid UUID"),null):e.safeQuery((async e=>{const i=e.getRepository(Pn),o=new Date,s={id:r,deviceBehaviorId:t.deviceBehaviorId,clientId:t.clientId,userId:n,imei:t.imei,behaviorName:t.behaviorName,behaviorParams:t.behaviorParams,status:t.status,extraParams:t.extraParams,commandTaskId:a,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 Gn(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=$n(t?.filters.taskId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Pn),n=new Date;let a=i.createQueryBuilder().update(Pn).set({status:t.values.status,modifiedAt:n});return a=a.where("id = :id",{id:r}),(await a.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 Gn(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(zt),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 Hn{async getDevicePairings(e){this.logger.trace(e,"DevicePairingsRepository::getDevicePairings started with params");const t=new Gn(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(ni).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 Gn(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(ni).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 Gn(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(ni).createQueryBuilder("devicePairing").innerJoin(fe,"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 Gn(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(ni),r=new Date,n={...t,createdAt:r,modifiedAt:r};return await i.save(n)}),"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 Gn(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(ni),r=new Date,n=i.createQueryBuilder().update(ni).set({...t.values,modifiedAt:r}).where("id = :id",{id:t.filters.id});return(await n.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(ni).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 Kn{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),n=await e.safeQuery2((async(e,i)=>{let r=e.getRepository(oi).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",fe,"device","deviceStatus.imei = device.imei and deviceStatus.clientId = device.clientId"),t.projectionOptions?.withOnlineStatus&&(r=r.leftJoinAndMapOne("device.deviceType",Ie,"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 n.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]})),n})(this.dataSource,e,this.logger);return t?.forEach((t=>ba({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(oi).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(fe,"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(oi),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})),n=r.map((()=>"(?, ?, ?, ?, ?)")).join(", "),a=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 ${n}\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,a);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 Hn{async bulkCreateDeviceTypeFeature(e){this.logger.trace(e,"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature started with params");const t=new Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t.items,Sa)?(i.warn({params:t},"DeviceTypeFeatureRepository::bulkCreateDeviceTypeFeature missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(di),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 Gn(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(di).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 n=await r.getMany();return n?.length?n:[]}),"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>sa(t.filters,Aa)?(i.warn({params:t},"DeviceTypeFeatureRepository::deleteDeviceTypeFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(di);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 Kn{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(fe).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",fi,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",nn,"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",he,"customIcon","device.customIconId = customIcon.id")),t.projectionOptions.withAssetProfile&&(r=r.leftJoinAndMapOne("device.assetProfile",Le,"assetProfile","device.id = assetProfile.deviceId").leftJoinAndMapOne("assetProfile.customStatus",Qe,"assetProfileCustomStatus","assetProfile.clientId = assetProfileCustomStatus.clientId and assetProfile.status = assetProfileCustomStatus.status")),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(fe).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(pi,"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",fi,"iccidCarrier","device.imei = iccidCarrier.imei"),r=r.leftJoinAndMapOne("iccidCarrier.serviceProvider",nn,"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",he,"customIcon","device.customIconId = customIcon.id")),t.projectionOptions?.withAssetProfile&&(r=r.leftJoinAndMapOne("device.assetProfile",Le,"assetProfile","device.id = assetProfile.deviceId").leftJoinAndMapOne("assetProfile.customStatus",Qe,"assetProfileCustomStatus","assetProfile.clientId = assetProfileCustomStatus.clientId and assetProfile.status = assetProfileCustomStatus.status")),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 n=await r.getMany();if(t.projectionOptions?.withDevicePairing){const t=e.getRepository(ni).createQueryBuilder("devicePairing");i&&t.setQueryRunner(i),t.where("devicePairing.imeiMain IN (:...imeiList) OR devicePairing.imeiSecondary IN (:...imeiList)",{imeiList:n.map((e=>e.imei))});const r=await t.getMany();n=n.map((e=>{const t=r.find((t=>t.imeiMain===e.imei||t.imeiSecondary===e.imei));return{...e,devicePairing:t}}))}if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(pi);n=await Promise.all(n.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.id,entityType:"Device"}).innerJoin(cn,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}return n}),"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(fe).createQueryBuilder("device").where("device.imei IN (:...imeiList)",{imeiList:t.imeiList}).andWhere("device.clientId = :clientId",{clientId:t.clientId}).andWhere("device.status = :status",{status:v.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(fe).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,n=await ya(e,{deviceTypeId:t.deviceTypeId,deviceIdentifier:r},i);return n?e.safeQuery2((async e=>{const i=e.getRepository(fe),a=new Date,o={...t,identifier:r,identifierKey:n,modifiedBy:t.createdBy,createdAt:a,modifiedAt:a};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(sa(t.values,Ji))return i.warn({params:t},"DevicesRepository::updateDevice missing required parameters"),!1;let r;if(t.values.deviceTypeId){const n=t.filters.imei;if(r=await ya(e,{deviceTypeId:t.values.deviceTypeId,deviceIdentifier:n},i),!r)return!1}return e.safeQuery2((async e=>{const i=e.getRepository(fe),n=new Date;let a=i.createQueryBuilder().update(fe).set({...t.values,identifierKey:r,modifiedAt:n}).where("imei = :imei",{imei:t.filters.imei});return t.filters.status&&(a=a.andWhere("status = :status",{status:t.filters.status})),(await a.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(fe);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 ya(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(Ie).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(fi,"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(fi).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",Ie,"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(Ie).createQueryBuilder("deviceType").innerJoin(fi,"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(fi).createQueryBuilder("imeiIccidCarrier").where("imeiIccidCarrier.imei IN (:...imeiList)",{imeiList:t.filters.imeiList});return i&&r.setQueryRunner(i),t?.projectionOptions?.withDeviceType&&r.leftJoinAndMapOne("imeiIccidCarrier.deviceType",Ie,"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(fi),r=new Date;let n=i.createQueryBuilder().update(fi).set({...t.values,modifiedAt:r});return t.filters.imei&&(n=n.where("imei = :imei",{imei:t.filters.imei})),t.filters.iccid&&(n=n.andWhere("iccid = :iccid",{iccid:t.filters.iccid})),(await n.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(Ie).createQueryBuilder("dt").leftJoin(fe,"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=$n(t?.userId);return r?.length?e.safeQuery2((async e=>{const i=e.getRepository(ai),n={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(n)}),"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(Ii).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(Ii).createQueryBuilder("iccidStatus").update(Ii).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(nn).createQueryBuilder("serviceProvider");i&&r.setQueryRunner(i);const n=await r.getMany(),a=e.getRepository(fe).createQueryBuilder("device").innerJoin(Ii,"iccidStatus","device.iccid = iccidStatus.iccid").innerJoin(fi,"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&&a.setQueryRunner(i),(await a.getRawMany()).map((e=>({imei:e.imei,iccid:e.iccid,clientId:e.clientId,carrier:n?.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(Ii).createQueryBuilder("iccidStatus").innerJoin(fi,"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(Ii),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},n=await i.upsert(r,{conflictPaths:["iccid"]});return n?.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(fe).createQueryBuilder("device").innerJoin(fi,"iccidCarrier","device.imei = iccidCarrier.imei").innerJoin(xe,"user","device.clientId = user.clientId").innerJoin(Oe,"userSecurityRole","user.id = userSecurityRole.userId").innerJoin(Ee,"securityRole","userSecurityRole.securityRoleId = securityRole.id").leftJoin(Je,"billing","device.imei = billing.imei").leftJoin(fn,"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(oi,"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(Ie),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(Ie).createQueryBuilder("deviceType").update(Ie).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(fe).createQueryBuilder("device").where("device.clientId = :clientId",{clientId:t.filters.clientId});return t.filters.tagIdList?.length&&r.innerJoin(pi,"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(an).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)=>aa(t,Hi)?(i.warn({params:t},"DevicesRepository::createImeiIccidCarrier missing required parameters"),null):e.safeQuery2((async e=>e.getRepository(fi).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(ei).createQueryBuilder("deviceChangesHistory").where("deviceChangesHistory.clientId = :clientId",{clientId:t.filters.clientId}).select("DISTINCT deviceChangesHistory.assignedTo");i&&r.setQueryRunner(i);const n=await r.getRawMany();return n?n.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(ei).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)=>aa(t,Ki)?(i.warn({params:t},"DevicesRepository::addDeviceChangesHistory missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(ei),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=ma(),await i.save(e))}const n={clientId:t.clientId,imei:t.imei,assignedTo:t.assignedTo,startDate:ma()};return await i.save(n)}),"DevicesRepository::addDeviceChangesHistory"))(this.dataSource,e,this.logger);return this.logger.trace(t,"DevicesRepository::addDeviceChangesHistory result"),t}},EntityTagsRepository:class extends Hn{async createEntityTag(e){this.logger.trace(e,"EntityTagsRepository::createEntityTag started with params");const t=new Gn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>aa(t,Yi)?(i.warn({params:t},"EntityTagsRepository::createEntityTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(pi),r={...t,userId:t.userId?$n(t.userId):null,createdAt:ma()};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 Gn(this.novaDataSourceConfig,this.logger),i=await Da(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 Gn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>aa(t,Zi)?(i.warn({params:t},"EntityTagsRepository::deleteEntityTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(pi);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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(aa(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(pi),{filters:n,pagingOptions:a}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:n.clientId});i&&o.setQueryRunner(i),n.entityIds?.length&&(o=o.andWhere("entityId IN (:...entityIds)",{entityIds:n.entityIds})),n.tagIds?.length&&(o=o.andWhere("tagId IN (:...tagIds)",{tagIds:n.tagIds})),n.entityTypes?.length&&(o=o.andWhere("entityType IN (:...entityTypes)",{entityTypes:n.entityTypes}));const s=await o.getCount(),l=a?.pageSize??50;o.limit(l);const d=(a?.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 Gn(this.novaDataSourceConfig,this.logger),i=await Ra(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 Gn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(aa(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 Ra(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}))),n=await Da(e,r,i);return i.trace(n,"EntityTagsRepository::enforceEntityTagsByEntity result"),{entitiesTags:n,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 Gn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>t?e.safeQuery((async e=>{const i=e.getRepository(pi);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 Gn(this.novaDataSourceConfig,this.logger),i=await(async(e,t,i)=>{if(aa(t,nr))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(pi).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 Hn{async createFeature(e){this.logger.trace(e,"FeatureRepository::createFeature started with params");const t=new Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,wa)?(i.warn({params:t},"FeatureRepository::createFeature missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(yi),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 Gn(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(yi).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 n=await r.getMany();return n?.length?n:[]}),"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,wa)?(i.warn({params:t},"FeatureRepository::upsertFeature missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(yi),r={key:t.key,name:t.name,description:t.description,tags:t.tags},n=await i.upsert(r,{conflictPaths:["key"]});return n?.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.key?e.safeQuery((async e=>{const i=e.getRepository(yi);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 Hn{async getDeviceFirmwares(e){this.logger.trace("FirmwaresRepository::getDeviceFirmwares started");const t=new Gn(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(ui).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 Gn(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(ui),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 Gn(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(vi),r=new Date,n={id:$n(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(n)}),"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Ta(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await Na(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 Gn(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(vi),r=new Date,n=i.createQueryBuilder("firmwareUpgradeTask").update(vi).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:$n(t.id)});return(await n.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 Gn(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(ui);return(await i.createQueryBuilder().update(ui).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.clientId?await e.safeQuery((async e=>{const i=e.getRepository(gi),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 Gn(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(gi).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}},NotificationRecipientsRepository:class extends Hn{async createNotificationRecipient(e){this.logger.trace(e,"NotificationRecipientsRepository::createNotificationRecipient started with params");const t=new Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Te),n=new Date,a={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:n,modifiedAt:n,userAlertConfigurationId:t.userAlertConfigurationId};return await i.save(a)}),"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 Gn(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=$n(t?.filters?.userId);if(null!=t?.filters?.userId&&null==r)return i.warn({params:t},"NotificationRecipientsRepository::getNotificationRecipients - userId should be a valid uuid"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Te).createQueryBuilder("notificationRecipient");return i&&n.setQueryRunner(i),n=n.where("notificationRecipient.clientId = :clientId",{clientId:t.filters.clientId}),null!=r&&(n=n.andWhere("notificationRecipient.userId = :userId",{userId:r})),t?.projectionOptions?.withUserAlertConfiguration&&(n=n.leftJoinAndSelect("notificationRecipient.userAlertConfiguration","userAlertConfiguration")),await n.getMany()}),"NotificationRecipientsRepository::getNotificationRecipients",n)})(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 Gn(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(Te),r=new Date;let n=i.createQueryBuilder().update(Te).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 n=n.where("id = :id",{id:t?.filters?.id}),(await n.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 Gn(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(Te),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,T.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>!t?.filters?.recipient||t?.filters?.notificationType==T.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(Te),n=new Date;let a,o,s,l;switch(t?.filters?.notificationType){case T.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=[T.Phone,t.filters.recipient,t.filters.countryCode],a="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,n,T.Phone,t.filters.recipient,t.filters.countryCode];break;case T.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=[T.Email,t.filters.recipient,t.filters.recipient],a="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,n,T.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(a,s),d.map((e=>Xn(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 Gn(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=$n(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(Te).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 Gn(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(Te).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 Hn{async createPosition(e){this.logger.trace(e,"PositionsRepository::this.createPosition started with params");const t=new Gn(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(Zr),n=new Date,a={id:t.id,imei:t.imei,lat:t.lat,lon:t.lon,actualDate:t.actualDate,speed:t.speed,odometer:t.odometer,createdAt:t.createdAt??n,messageId:$n(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(a);return o?(await Ba(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{try{await e.connect();const r=e.getRepository(Zr),n=[];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:$n(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};n.push(i)})),await r.upsert(n,{conflictPaths:["messageId"]});const a=await r.createQueryBuilder("p").where("p.messageId IN (:messageIds)",{messageIds:n.map((e=>e.messageId))}).orderBy("p.id","ASC").getMany();for(const t of a)await Ba(e,t,i);return a?.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 Gn(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(Zr),n=await i.createQueryBuilder("position").setQueryRunner(r).where("position.imei = :imei",{imei:t.filters.imei}).andWhere("position.deleted = 0").getMany();return n?.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 Gn(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(Zr).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 n=i.clone().select("COUNT(p.id)","totalCount");return t.filters.imeis?.length?(i.useIndex("ixPositionClientId_Imei_ActualDate"),n.useIndex("ixPositionClientId_Imei_ActualDate")):(i.useIndex("ixPositionClientId_ActualDate"),n.useIndex("ixPositionClientId_ActualDate")),i.innerJoin(`(${n.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(Ua)}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 Gn(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(zr),n=await i.createQueryBuilder("latestPosition").setQueryRunner(r).where("latestPosition.imei = :imei",{imei:t.filters.imei}).getOne();return n?{...n,positionId:Number(n.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 Gn(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(Zr).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 n=t?.pagingOptions?.pageSize??100,a=t?.pagingOptions?.pageIndex??1;return i=i.groupBy("DATE(p.actualDate)").orderBy("DATE(p.actualDate)","DESC").limit(n).offset(n*(a-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 Hn{async createPromotion(e){this.logger.trace(e,"PromotionRepository::this.createPromotion started with params");const t=new Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Ea)||Wa(t,i)?(i.warn({params:t},"PromotionRepository::createPromotion missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(le),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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Pa)||sa(t,Oa)||Wa(t,i)?(i.warn({params:t},"PromotionRepository::updatePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(le),{filters:r,values:n}=t;return(await i.createQueryBuilder().update(le).set({bannerText:n.bannerText,description:n.description,discount:n.discount,discountBillingCycles:n.discountBillingCycles,endDate:n.endDate,freeServiceMonths:n.freeServiceMonths,name:n.name,startDate:n.startDate,status:n.status,trackerText:n.trackerText,type:n.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(sa(t,xa))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(le).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",se,"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",de,"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",ae,"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",oe,"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t.items,ka)?(i.warn({params:t},"PromotionRepository::createMarketplacePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(se);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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>oa(t.items,Ma)?(i.warn({params:t},"PromotionRepository::createDeviceTypePromotion missing required parameters"),[]):e.safeQuery((async e=>{const i=e.getRepository(oe);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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>sa(t,Fa)?(i.warn({params:t},"PromotionRepository::deleteMarketplacePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(se).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>sa(t,La)?(i.warn({params:t},"PromotionRepository::deleteDeviceTypePromotion missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(oe).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(sa(t,Qa))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(oe).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(sa(t,qa))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(se).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,_a)?(i.warn({params:t},"PromotionRepository::createPromotionHistory missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(en),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 Kn{async getAllRoles(){this.logger.trace("SecurityRepository::getAllRoles started");const e=await(async e=>e.safeQuery3(Ee,"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(Oe,"userSecurityRole",(e=>e.select().where("userId = :userId",{userId:$n(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(Oe,"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(Oe,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:$n(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(Oe,"userSecurityRole",(async e=>e.select().where("userId = :userId",{userId:$n(t.filters.userId)}).andWhere("securityRoleId IN (:...roles)",{roles:[g.Admin,g.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(Oe),r=await i.findOne({where:{userId:$n(t.userId)}});if(!r){const e={userId:$n(t.userId),clientId:t.clientId,securityRoleId:t.roleId,devicesAccess:t.devicesAccess,boundariesAccess:t.boundariesAccess,minAccessDate:t.minAccessDate,tasksAccess:t.tasksAccess};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(sa(t,vr))return i.warn({params:t},"SecurityRepository::updateUserRole - missing required parameters"),!1;const r=$n(t.filters.userId);return(await e.safeQuery3(Oe,"userSecurityRole",(async e=>{const i=e.update().where("userId = :userId",{userId:r}).andWhere("securityRoleId <> :roleId",{roleId:t.values.roleId}),n={};return t.values.roleId&&(n.securityRoleId=t.values.roleId),t.values.devicesAccess&&(n.devicesAccess=t.values.devicesAccess),t.values.boundariesAccess&&(n.boundariesAccess=t.values.boundariesAccess),t.values.minAccessDate&&(n.minAccessDate=t.values.minAccessDate),t.values.tasksAccess&&(n.tasksAccess=t.values.tasksAccess),i.set(n).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(Oe),r=await i.find({where:{userId:$n(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})=>oa(t,hr)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedDevices - missing required parameters"),!1):e.safeQuery2((async e=>{const i=e.getRepository(wn),n=ja(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:$n(e.userId),imei:e.imei})));let a=0;for(const e of n)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,a+=t}return a===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?.clientId&&t?.filters?.userId?e.safeQuery3(Tn,"uadsv",(e=>e.select().where("uadsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("BIN_TO_UUID(uadsv.userId) = :userId",{userId:t.filters.userId}).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})=>oa(t,Ir)?(i.warn({params:t},"UserAuthorizedRepository::bulkCreateUserAuthorizedBoundaries - missing required parameters"),null):e.safeQuery2((async e=>{const i=e.getRepository(Dn),n=ja(t,r.batchSize,(e=>({clientId:Number(e.clientId),userId:$n(e.userId),boundaryId:Number(e.boundaryId)})));let a=0;for(const e of n)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,a+=t}return a===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?.clientId&&t?.filters?.userId?e.safeQuery3(Rn,"uabsv",(e=>e.select().where("uabsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("BIN_TO_UUID(uabsv.userId) = :userId",{userId:t.filters.userId}).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(wn,"userAuthorizedDevice",(e=>e.delete().where("userAuthorizedDevice.userId = :userId",{userId:$n(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(Dn,"userAuthorizedBoundary",(e=>e.delete().where("userAuthorizedBoundary.userId = :userId",{userId:$n(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(sa(t,fr)||!t.filters.imeisList.length)return i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedDevices - missing required parameters"),[];const r=await e.safeQuery3(Tn,"uadsv",(e=>e.select("BIN_TO_UUID(uadsv.userId) as userId").distinct(!0).where("uadsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("uadsv.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)=>aa(t,Cr)||!t.filters.boundaryIdList.length?(i.warn({params:t},"UserAuthorizedRepository::getUserIdsByClientIdAndAuthorizedBoundaries - missing required parameters"),[]):(await e.safeQuery3(Rn,"uabsv",(e=>e.select("BIN_TO_UUID(uabsv.userId) as userId").distinct(!0).where("uabsv.clientId = :clientId",{clientId:t.filters.clientId}).andWhere("uabsv.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 Hn{async createTag(e){this.logger.trace(e,"TagRepository::this.createTrip started with params");const t=new Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Sr)?(i.warn({params:t},"TagsRepository::createTag missing required parameters"),null):e.safeQuery((async e=>{const i=e.getRepository(cn),r={...t,name:t.name.trim().toLowerCase(),isSecurityGroup:t.metadata?.isSecurityGroup??!1,createdAt:ma()};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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Dr)||!Va({...t?.values,modifiedBy:void 0})?(i.warn({params:t},"TagRepository::updateTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(cn),{filters:r,values:n}=t;return(await i.createQueryBuilder().update(cn).set({modifiedBy:n.modifiedBy,modifiedAt:ma(),color:n.color,description:n.description,name:n.name,metadata:n.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Rr)?(i.warn({params:t},"TagsRepository::deleteTag missing required parameters"),!1):e.safeQuery((async e=>{const i=e.getRepository(cn);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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(aa(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(cn),{filters:n,pagingOptions:a}=t;let o=r.createQueryBuilder().where("clientId = :clientId",{clientId:n.clientId});i&&o.setQueryRunner(i),n.names?.length&&(o=o.andWhere("name IN (:...names)",{names:n.names})),n.tagIds?.length&&(o=o.andWhere("id IN (:...tagIds)",{tagIds:n.tagIds})),n.metadata&&(o=o.andWhere("JSON_CONTAINS(metadata, :metadata)",{metadata:JSON.stringify(n.metadata)}));const s=await o.getCount(),l=a?.pageSize??50;o.limit(l);const d=(a?.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>aa(t,Ar)||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(cn),r=t.tags.map((e=>({...e,name:e.name.trim().toLowerCase(),clientId:t.clientId,createdBy:t.createdBy,isSecurityGroup:e.metadata?.isSecurityGroup??!1,createdAt:ma()})));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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(aa(t,Tr)||sa(t,Nr))return i.warn({params:t},"TagsRepository::searchTags missing required parameters"),{tags:[],totalCount:0};const r=e.createQueryRunnerFromParams(t),{filters:n,pagingOptions:a}=t;let o=n.userNumberId;if(!n.userNumberId){const t=await za(e,{filters:{id:n.userId}},i);o=t?.numberId}return e.safeQuery((async(e,t)=>{let i=e.getRepository(cn).createQueryBuilder("tag").where("tag.clientId = :clientId",{clientId:n.clientId});t&&i.setQueryRunner(t),i.innerJoin(pi,"entityTag","entityTag.tagId = tag.id AND entityTag.entityType = 'User' AND entityTag.entityId = :userId",{userId:o}),n.metadata&&(i=i.andWhere("JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify(n.metadata)}));const r=await i.getCount(),s=a?.pageSize??50;i.limit(s);const l=(a?.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 Hn{async createTaskSchedule(e){this.logger.trace(e,"TasksRepository::createTaskSchedule started with params");const t=new Gn(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(si),r=new Date,n={...t,createdAt:r,status:"active"};return await i.save(n)}),"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 Gn(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(si).createQueryBuilder("taskSchedule");i&&r.setQueryRunner(i);const n=await r.where("taskSchedule.id = :id",{id:t.filters.id}).getOne();if(t.projectionOptions?.numberOfDevicesToGet>0&&n){const r=e.getRepository(li),a=r.createQueryBuilder("deviceTask");i&&a.setQueryRunner(i);const o=await a.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:n.id}).limit(t.projectionOptions.numberOfDevicesToGet).getMany();n.deviceTasks=o;const s=r.createQueryBuilder("deviceTask");i&&s.setQueryRunner(i);const l=await s.where("deviceTask.taskScheduleId = :taskScheduleId",{taskScheduleId:n.id}).select("COUNT(taskScheduleId)","deviceCount").groupBy("deviceTask.taskScheduleId").getRawOne();n.totalDevicesCount=l?l.deviceCount:0}return n}),"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 Gn(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(si),r=new Date;return(await i.createQueryBuilder().update(si).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(si),r=new Date;return(await i.createQueryBuilder().update(si).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await $a(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Va(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(si).createQueryBuilder("taskSchedule");return i&&(r=r.setQueryRunner(i)),t.filters.imeiList?.length&&(r=r.innerJoin(li,"dt","taskSchedule.id = dt.taskScheduleId")),t.filters.imeiList?.length&&(r=r.andWhere("dt.imei IN (:imeiList)",{imeiList:t.filters.imeiList})),r=Ga(r,t.filters,Ja,"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 Gn(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(li).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.taskScheduleId?e.safeQuery((async e=>{const i=e.getRepository(si),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const n=e.getRepository(li);if(await n.createQueryBuilder().delete().where("taskScheduleId = :taskScheduleId",{taskScheduleId:t.taskScheduleId}).execute(),!t?.imeis?.length)return!0;const a=[];for(let e=0;e<t.imeis.length;e+=50)a.push(t.imeis.slice(e,e+50));for(const e of a){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),a=await n.insert(i);if(!a?.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 Gn(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(si),r=await i.findOne({where:{id:t.taskScheduleId}});if(!r)return!1;const n=e.getRepository(li),a=[];for(let e=0;e<t.imeis.length;e+=50)a.push(t.imeis.slice(e,e+50));for(const e of a){const i=e.map((e=>({taskScheduleId:t.taskScheduleId,imei:e,clientId:r.clientId}))),a=await n.upsert(i,{conflictPaths:["taskScheduleId","imei"]});if(!a?.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 Gn(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(li),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 Gn(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(pn),r=new Date,n={...t,createdAt:r,status:"pending"};return await i.save(n)}),"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Va(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(pn).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=Ga(r,t.filters,Ha,"task"),r=Ga(r,t.filters,Ka,"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 n=t.sortingOptions?.length?t.sortingOptions:[{sortField:t.sortOptions?.sortField??"id",sortOrder:t.sortOptions?.sortOrder??"DESC"}];for(const e of n){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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{if(!Va(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(pn).createQueryBuilder("task");return i&&(r=r.setQueryRunner(i)),(t.filters.title||t.filters.description)&&(r=r.innerJoin("task.taskSchedule","taskSchedule")),r=Ga(r,t.filters,Ha,"task"),r=Ga(r,t.filters,Ka,"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 Gn(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(pn),r=new Date;return(await i.createQueryBuilder().update(pn).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.modifiedBy?e.safeQuery((async e=>{const i=e.getRepository(pn),r=new Date;return(await i.createQueryBuilder().update(pn).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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id?e.safeQuery((async e=>{const i=e.getRepository(pn),r=new Date,n=t.includeTimeInCompletedAt??!1,a=t.completedAt??r;return n||a.setHours(0,0,0,0),(await i.createQueryBuilder().update(pn).set({status:"completed",completedBy:t.completedBy,completedAt:a,completionNotes:t.completionNotes,completionOdometer:t.completionOdometer,completionActiveHours:t.completionActiveHours,completionMetadata:t.completionMetadata,includeTimeInCompletedAt:n,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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.id&&t?.deletedBy?e.safeQuery((async e=>{const i=e.getRepository(pn),r=new Date;return(await i.createQueryBuilder().update(pn).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}},UserActivationsRepository:class extends Hn{async createUserActivation(e){this.logger.trace(e,"UserActivationsRepository::createUserActivation started with params");const t=new Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(In),n=new Date,a={id:t?.id,userId:r,clientId:t?.clientId,createdAt:n,legacyCreatedAt:n,status:t?.status??"A"};return await i.save(a)}),"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 Gn(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=$n(t?.filters?.userId);if(t?.filters?.userId&&!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(In).createQueryBuilder("userActivation");return i&&n.setQueryRunner(i),t.filters.userId&&(n=n.where("userActivation.userId = :userId",{userId:r})),t.filters.clientId&&(n=n.andWhere("userActivation.clientId = :clientId",{clientId:t.filters.clientId})),await n.getMany()}),"UserActivationsRepository::getUserActivations",n)})(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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(In);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 Gn(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(fn).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 Gn(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(fn),n="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(n,[t.filters.clientId]):r.query(n,[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 Gn(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(fn),r=new Date,n={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(n)}),"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 Gn(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(fn).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 n=t.sortOptions?.sortField?`userActivationDevice.${t.sortOptions.sortField}`:"userActivationDevice.id";return r=r.orderBy(n,"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 Gn(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(fn),r=new Date;let n=i.createQueryBuilder().update(fn).set({...t.values,modifiedAt:r});return t.filters.imei&&(n=n.where("imei = :imei",{imei:t.filters.imei})),t.filters.id&&(n=n.andWhere("id = :id",{id:t.filters.id})),(await n.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 Gn(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=$n(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::getUserActivationMetrics - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(bn).createQueryBuilder("userActivationMetric");return i&&n.setQueryRunner(i),t.filters.userId&&(n=n.where("userActivationMetric.userId = :userId",{userId:r})),await n.getOne()}),"UserActivationsRepository::getUserActivationMetrics",n)})(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=$n(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(bn),n=new Date;let a=i.createQueryBuilder().update(bn).set({...t.values,modifiedAt:n});return r&&(a=a.andWhere("userId = :userId",{userId:r})),(await a.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 Gn(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=$n(t?.userId);if(!r?.length)return i.warn({params:t},"UserActivationsRepository::createUserActivationEvent - user id should be a valid UUID"),null;const n=$n(t?.eventId);return n?.length?e.safeQuery((async e=>{const i=e.getRepository(Cn),a=new Date,o={userId:r,eventId:n,eventName:t?.eventName,eventValue:t?.eventValue,eventMetadata:t?.eventMetadata,platform:t?.platform,ip:t?.ip,userAgent:t?.userAgent,createdAt:t?.createdAt??a};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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(bn),n=new Date,a={id:t?.id,userId:r,firstName:t?.firstName,lastName:t?.lastName,email:t?.email,phone:t?.phone,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Gn(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(In).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 Hn{async createUserAppFeedback(e){this.logger.trace(e,"UserAppFeedbackRepository::createUserAppFeedback started with params");const t=new Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Sn),n={id:t.id,userId:r,platform:t.platform,appVersion:t.appVersion,feedback:t.feedback,amazonReviewDate:t.amazonReviewDate,createdAt:new Date};return await i.save(n)}),"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 Hn{async getUserAppIncidents(e){this.logger.trace(e,"UserAppIncidentsRepository::getUserAppIncidents started with params");const t=new Gn(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=$n(t.filters.userId);if(!r?.length)return i.warn({params:t},"UserAppIncidentsRepository::getUserAppIncidents - userId is not a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(An).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&&n.setQueryRunner(i),await n.getMany()}),"UserAppIncidentsRepository::getUserAppIncidents",n)})(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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(An),n=new Date,a={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:n},o=await i.upsert(a,{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 Hn{async getUserConfigurations(e){this.logger.trace(e,"UserConfigurationsRepository::getUserConfigurations started with params");const t=new Gn(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=$n(t?.filters?.userId);if(t?.filters?.userId&&!r)return i.warn({params:t},"UserConfigurationsRepository::getUserConfigurations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Ue).createQueryBuilder("userConfiguration");return i&&n.setQueryRunner(i),t.filters.clientId&&(n=n.innerJoin("userConfiguration.user","user"),n=n.andWhere("user.clientId = :clientId",{clientId:t.filters.clientId})),r&&(n=n.andWhere("userConfiguration.userId = :userId",{userId:r})),await n.getMany()}),"UserConfigurationsRepository::getUserConfigurations",n)})(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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Ue),n=new Date,a={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,assetProfileStatusLabelsEnabled:t?.assetProfileStatusLabelsEnabled,trackerClusteringEnabled:t?.trackerClusteringEnabled,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Gn(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=$n(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||null!=t?.values?.assetProfileStatusLabelsEnabled||null!=t?.values?.trackerClusteringEnabled?e.safeQuery((async e=>{const i=e.getRepository(Ue),n=new Date,a=i.createQueryBuilder().update(Ue).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:n,addressFormat:t.values.addressFormat,assetProfileStatusLabelsEnabled:t.values.assetProfileStatusLabelsEnabled,trackerClusteringEnabled:t.values.trackerClusteringEnabled}).where("userId = :userId",{userId:r});return(await a.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 Gn(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=$n(t?.filters?.userId);return r?e.safeQuery((async e=>{const t=e.getRepository(Ue).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 Gn(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=$n(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertConfigurations - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Ne).createQueryBuilder("userAlertConfiguration");return i&&n.setQueryRunner(i),n=n.innerJoinAndSelect("userAlertConfiguration.alertType","alertType",t.filters.includeBeta?void 0:"alertType.stage = 'prod'"),n=n.where("userAlertConfiguration.userId = :userId",{userId:r}),t?.projectionOptions?.withNotificationRecipients&&(n=n.leftJoinAndSelect("userAlertConfiguration.notificationRecipients","notificationRecipient")),n=n.orderBy("userAlertConfiguration.alertTypeId"),await n.getMany()}),"UserConfigurationsRepository::getUserAlertConfigurations",n)})(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.alertConfigurations?.length?e.safeQuery((async e=>{const r=e.getRepository(Ne),n=[];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=$n(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};n.push(r)}return n.length?await r.save(n):[]}),"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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.alertTypeId?e.safeQuery((async e=>{const r=e.getRepository(Ne),n=$n(t?.userId);if(!n?.length)return i.warn(t,"UserConfigurationsRepository::createUserAlertConfiguration - User alert configuration could not be created: user id should be a valid UUID"),null;const a={id:t?.id,userId:n,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(a)}),"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 Gn(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=$n(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(Ne).createQueryBuilder().update(Ne).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 Gn(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=$n(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(Ne).createQueryBuilder().update(Ne).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 Gn(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=$n(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(Ne).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 Gn(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=$n(t?.filters?.userId);if(!r)return i.warn({params:t},"UserConfigurationsRepository::getUserAlertNotificationsConfig - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,n)=>{const a=await Xa(e,r,n),o=await Za(e,r,a,n),s=o?.length?await Ya(e,r,o,n):[],l=o.filter((e=>!s?.find((t=>t.clientAlertConfigurationId===e.id)))),d=await eo(e,l?.map((e=>e.id)),n);return o.map((e=>{const n=s.find((t=>t.clientAlertConfigurationId===e.id));if(n)return i.trace({userNotificationId:n.id},"Existing notification override found"),n;const o=d.find((i=>i.clientAlertConfigurationId===e.id&&Xn(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&&a.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",n)})(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.userId&&t?.clientAlertConfigurationId?e.safeQuery((async e=>{const r=e.getRepository(Be),n=$n(t?.userId);if(!n?.length)return i.warn(t,"UserConfigurationsRepository::upsertUserAlertNotificationsConfig - User alert configuration could not be created: user id should be a valid UUID"),null;const a={id:t?.id,userId:n,clientAlertConfigurationId:t?.clientAlertConfigurationId,smsNotification:t?.smsNotification??!1,emailNotification:t?.emailNotification??!1,appNotification:t?.appNotification??!1,pushNotification:t?.pushNotification??!1},o=await r.upsert(a,{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 Gn(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=$n(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(Be).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 Hn{async getUserDataDeletionRequest(e){this.logger.trace(e,"UserDataDeletionRequestsRepository::getUserDataDeletionRequest started with params");const t=new Gn(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=$n(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 n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(En).createQueryBuilder("userDataDeletionRequest");return i&&n.setQueryRunner(i),t?.filters?.id&&(n=n.andWhere("userDataDeletionRequest.id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(n=n.andWhere("userDataDeletionRequest.userId = :userId",{userId:r})),await n.getOne()}),"UserDataDeletionRequestsRepository::getUserDataDeletionRequest",n)})(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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(En),n=new Date,a={id:t?.id,userId:r,clientId:t.clientId,email:t.email,userSecurityRoleName:t.userSecurityRoleName,status:t.status,createdAt:n,modifiedAt:n};return await i.save(a)}),"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 Gn(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=$n(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(En),n=new Date;let a=i.createQueryBuilder().update(En).set({status:t?.values?.status,modifiedAt:n});return t?.filters?.id&&(a=a.where("id = :id",{id:t?.filters?.id})),t?.filters?.userId&&(a=a.andWhere("userId = :userId",{userId:r})),(await a.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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>t?.filters?.id?e.safeQuery((async e=>{const i=e.getRepository(En).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 Hn{async getUserInvitationById(e){this.logger.trace(e,"UserInvitationsRepository::getUserInvitationById started with params");const t=new Gn(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=$n(t?.filters?.id);if(!r?.length)return i.warn({params:t},"UserInvitationsRepository::getUserInvitationById - user invitation id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(Mn).createQueryBuilder("userInvitation");return t&&i.setQueryRunner(t),i=i.where("userInvitation.id = :id",{id:r}),await i.getOne()}),"UserInvitationsRepository::getUserInvitationById",n)})(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 Gn(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(Mn).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(xe,"user","user.id = userInvitation.inviterUserId").innerJoin(pi,"entityTagUser","entityTagUser.entityId = user.numberId \n AND entityTagUser.entityType = 'User'\n AND entityTagUser.tagId IN (:...userTagIdList)",{userTagIdList:e}),i?.length&&r.innerJoin(pi,"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 Gn(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=$n(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(Mn),n=new Date;let a=i.createQueryBuilder().update(Mn).set({statusId:t?.values?.statusId,inviteeUserId:t?.values?.inviteeUserId,inviteeEmail:t?.values?.inviteeEmail,inviteeSecurityRoleId:t?.values?.inviteeSecurityRoleId,trackerImeis:t?.values?.trackerImeis?.split(",")??void 0,trackerAccess:t?.values?.trackerAccess,minAccessDate:t?.values?.minAccessDate,boundaries:t?.values?.boundaries?.split(",")?.map(Number)??void 0,boundaryAccess:t?.values?.boundaryAccess,tasksAccess:t?.values?.tasksAccess,modifiedAt:n});return a=a.where("id = :id",{id:r}),(await a.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 Gn(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(Mn),r=new Date,n={...t,boundaries:t?.boundaries?.split(",")?.map(Number)??null,trackerImeis:t?.trackerImeis?.split(",")??null,createdAt:r,modifiedAt:r};return i.save(n)}),"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 Hn{async getUserRatingRequests(e){this.logger.trace(e,"UserRatingRequestsRepository::getUserRatingRequests started with params");const t=new Gn(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=$n(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UserRatingRequestsRepository::getUserRatingRequests - user id should be a valid UUID"),[];const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,t)=>{let i=e.getRepository(Fn).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",n)})(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 Gn(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=$n(t?.userId);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(Fn),n={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(n)}),"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 Hn{async getUserRegistrationAttempts(e){this.logger.trace(e,"UserRegistrationAttemptsRepository::getUserRegistrationAttempts started with params");const t=new Gn(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=$n(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 n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{let n=e.getRepository(Ln).createQueryBuilder("userRegistrationAttempt");return i&&n.setQueryRunner(i),t?.filters?.id&&(n=n.andWhere("userRegistrationAttempt.id = :id",{id:t?.filters?.id})),t?.filters?.tempUserId&&(n=n.andWhere("userRegistrationAttempt.tempUserId = :tempUserId",{tempUserId:r})),await n.getMany()}),"UserRegistrationAttemptsRepository::getUserRegistrationAttempts",n)})(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 Gn(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=$n(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(Ln),n={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(n)}),"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 Gn(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(Ln).createQueryBuilder().update(Ln).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 Hn{async getUserById(e){this.logger.trace(e,"UsersRepository::getUserById started with params");const t=new Gn(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 Gn(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(xe).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=$n(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(pi,"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 n=await r.getMany();if(t.projectionOptions?.withSecurityGroupTag){const t=e.getRepository(pi);n=await Promise.all(n.map((async e=>{const r=t.createQueryBuilder("entityTag");i&&r.setQueryRunner(i);const n=await r.where("entityTag.entityId = :entityId AND entityTag.entityType = :entityType",{entityId:e.numberId,entityType:"User"}).innerJoin(cn,"tag","tag.id = entityTag.tagId AND JSON_CONTAINS(tag.metadata, :metadata)",{metadata:JSON.stringify({isSecurityGroup:!0})}).getMany();return{...e,securityGroupEntityTags:n}})))}return n}),"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 Gn(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(xe).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 Gn(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(xe).createQueryBuilder("user").innerJoin(Ae,"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 n=await r.getRawMany();return n?.map((e=>Xn(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await to(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 Gn(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=$n(t?.id);return r?.length?e.safeQuery((async e=>{const i=e.getRepository(xe),n=new Date,a={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,userAgreementAcceptedAt:t.userAgreementAcceptedAt,createdAt:n,modifiedAt:n,fullPhoneNumber:t.fullPhoneNumber};return await i.save(a)}),"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 Gn(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=$n(t?.id);return r?.length?e.safeQuery((async e=>{const t=e.getRepository(xe);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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{const r=$n(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||t?.values?.userAgreementAcceptedAt||t?.values?.fullPhoneNumber))return i.warn({params:t},"UsersRepository::updateUser - missing required parameters"),!1;let n=t.values.countryId;!n&&t.values.countryCode&&(n=await io(t.values.countryCode,e,i));let a=t.values.telephoneCountryId;return!a&&t.values.telephoneCountryCode&&(a=await io(t.values.telephoneCountryCode,e,i)),e.safeQuery((async e=>{const i=e.getRepository(xe),o=new Date;let s=i.createQueryBuilder().update(xe).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:n,telephoneCountryId:a,dataSourceTypeId:t.values.dataSourceTypeId,emailVerified:t.values.emailVerified,modifiedAt:o,lat:t.values.latitude,lon:t.values.longitude,lastLoginAt:t.values.lastLoginAt,userAgreementAcceptedAt:t.values.userAgreementAcceptedAt,fullPhoneNumber:t.values.fullPhoneNumber});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 Gn(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:Xn(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 Gn(this.novaDataSourceConfig,this.logger,this.replicaNovaDataSourceConfig),i=await(async(e,t,i)=>{let r=$n(t?.filters?.userId);await e.connect();const n=e.createQueryRunner();try{if(!r&&t?.filters?.email){const i=e.getRepository(xe),n=await i.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();n&&(r=n.id)}let i=t.filters.clientId;if(!i&&t.filters.email){const r=e.getRepository(Se),n=await r.createQueryBuilder().where("email = :email",{email:t.filters.email}).select("id").getRawOne();n&&(i=n.id)}await n.startTransaction();let a=!1;if(i){await n.manager.delete(Te,{clientId:i}),await n.manager.delete(Oe,{clientId:i}),await n.manager.delete(Mn,{inviterClientId:i});const e=await n.manager.createQueryBuilder().select("boundary.id").from(vt,"boundary").where("boundary.clientId = :clientId",{clientId:i}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(ht,"boundaryEvent").where("boundaryEvent.boundaryId IN (:ids)",{ids:e.map((e=>e.id))}).execute(),await n.manager.delete(vt,{clientId:i})),await n.manager.delete(yn,{clientId:i}),await n.manager.delete(St,{clientId:i}),await n.manager.delete(xt,{clientId:i}),a=(await n.manager.delete(Se,i)).affected>0}let o=!1;if(r){await n.manager.delete(Ue,{userId:r}),await n.manager.delete(Ne,{userId:r});const e=await n.manager.createQueryBuilder().select("userActivation.id").from(In,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(fn,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await n.manager.delete(In,{userId:r})),await n.manager.delete(Fn,{userId:r}),await n.manager.delete(Sn,{userId:r}),o=(await n.manager.delete(xe,{id:r})).affected>0}return await n.commitTransaction(),a||o}catch(e){throw await n.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteAccount error"),e}finally{await n.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 Gn(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=$n(t?.filters?.userId);if(!r?.length)return i.warn({params:t},"UsersRepository::getUserClientRelatedEntitiesCount - user id should be a valid UUID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(Se).createQueryBuilder("client").select("client.id","clientId");return i&&n.setQueryRunner(i),t.projectionOptions?.withDevicesCount&&n.addSelect((e=>e.select("COUNT(*)","devicesCount").from("device","d").where("client.id = d.clientId").andWhere("d.status = :deviceStatus",{deviceStatus:v.Active})),"devicesCount"),t.projectionOptions?.withBoundariesCount&&n.addSelect((e=>e.select("COUNT(*)","boundariesCount").from("boundary","b").where("client.id = b.clientId").andWhere("b.status = :boundaryStatus",{boundaryStatus:h.Active})),"boundariesCount"),t.projectionOptions?.withUsersCount&&n.addSelect((e=>e.select("COUNT(*)","usersCount").from("user","u").where("client.id = u.clientId").andWhere("u.status = :userStatus",{userStatus:I.Active})),"usersCount"),n.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 n.getRawOne()}),"UsersRepository::getUserClientRelatedEntitiesCount",n)})(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 Gn(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(xe).createQueryBuilder("user").innerJoin(fe,"device","device.clientId = user.clientId and device.status = :status",{status:v.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 n=await r.getRawMany(),a=[],o=[];return n.forEach((e=>{const t=Xn(e.userId);o.includes(t)||(o.push(t),a.push({userId:t,firstName:e.firstName,lastName:e.lastName,email:e.email,userName:e.userName,devices:[]}));const i=a.findIndex((e=>e.userId===t));a[i].devices.push({imei:e.imei,name:e.deviceName})})),a}),"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 Gn(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=$n(t.filters.userId);if(!r)return i.warn({params:t},"UsersRepository::getUserInfoWithAmazonDevicesInfo - invalid user ID"),null;const n=e.createQueryRunnerFromParams(t);return e.safeQuery((async(e,i)=>{const n=e.getRepository(xe).createQueryBuilder("user").innerJoin(Se,"client","client.id = user.clientId").innerJoin(fe,"device","device.clientId = user.clientId and device.status = :deviceStatus",{deviceStatus:v.Active}).innerJoin(Ie,"deviceType","device.deviceTypeId = deviceType.id").leftJoin(o,"acumaticaImeiIccidData","device.imei = acumaticaImeiIccidData.imei").leftJoin(l,"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 a;return i&&n.setQueryRunner(i),(await n.getRawMany()).forEach((e=>{a||(a={userId:t.filters.userId,email:e.email,clientId:e.clientId,useType:e.useType,clientTypeId:e.clientTypeId,devices:[]}),a.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}})})),a}),"UsersRepository::getUserInfoWithAmazonDevicesInfo",n)})(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 Gn(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=$n(t?.id);if(!r?.length)return i.warn({params:t},"UsersRepository::deleteUserData - user id should be a valid UUID"),!1;await e.connect();const n=e.createQueryRunner();try{await n.startTransaction(),await n.manager.delete(Te,{userId:r}),await n.manager.delete(Oe,{userId:r}),await n.manager.delete(Mn,{inviteeUserId:t.id}),await n.manager.delete(Ue,{userId:r}),await n.manager.delete(Ne,{userId:r});const e=await n.manager.createQueryBuilder().select("userActivation.id").from(In,"userActivation").where("userActivation.userId = :userId",{userId:r}).getMany();e?.length&&(await n.manager.createQueryBuilder().delete().from(fn,"userActivationDevice").where(`userActivationDevice.userActivationId IN (${e?.map((e=>e.id)).join(",")})`).execute(),await n.manager.delete(In,{userId:r})),await n.manager.delete(Fn,{userId:r}),await n.manager.delete(Sn,{userId:r});const i=await n.manager.delete(xe,{id:r});return await n.commitTransaction(),i.affected>0}catch(e){throw await n.rollbackTransaction(),i.error({error:e},"UsersRepository::deleteUserData error"),e}finally{await n.release(),await e.disconnect()}})(t,e,this.logger);return this.logger.trace({result:i},"UsersRepository::deleteUserData result"),i}}});const no={uuidStringToBinaryBuffer:$n,binaryBufferToUuidString:Xn,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 n=i.getTime()+Math.random()*(r.getTime()-i.getTime());return new Date(n)},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:sa,anyAttributeInArrayIsNull:oa,anyAttributeIsNull:aa,now:ma,addMonthsToNow:e=>pa.utc().add(e,"month").toDate()};Object.defineProperty(exports,"Repository",{enumerable:!0,get:function(){return e.Repository}}),exports.ConsoleLogger=Jn,exports.Entities=qn,exports.Enums=ne,exports.NovaDataSource=Gn,exports.Repositories=ro,exports.Types=_r,exports.Utils=no;
2
2
  //# sourceMappingURL=index.js.map