@spytecgps/nova-orm 1.4.189 → 1.4.191
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/entities/clientConfiguration.js +1 -1
- package/dist/entities/retailDepartmentType.js +1 -1
- package/dist/migration/_virtual/_virtual_multi-entry.js +2 -2
- package/dist/novaDataSource.js +1 -1
- package/dist/src/entities/clientConfiguration.d.ts +10 -0
- package/dist/src/entities/retailDepartmentType.d.ts +1 -1
- package/dist/src/types/enums.d.ts +4 -0
- package/dist/types/enums.js +1 -1
- package/package.json +1 -1
- package/schema.sql +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("../utils/boolToNumberTransformer.js");exports.ClientConfiguration=class ClientConfiguration{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled},e.__decorate([t.Column("int",{primary:!0,name:"clientId"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"clientId",void 0),e.__decorate([t.Column("double",{name:"movementTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"movementTripThreshold",void 0),e.__decorate([t.Column("double",{name:"stopTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"stopTripThreshold",void 0),e.__decorate([t.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"mapUpdateMode",void 0),e.__decorate([t.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"maxUsersAllowed",void 0),e.__decorate([t.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"ssoDomain",void 0),e.__decorate([t.Column("json",{name:"ssoMetadata",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"ssoMetadata",void 0),e.__decorate([t.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"assetProfileStatusLabels",void 0),e.__decorate([t.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"apiKeyId",void 0),e.__decorate([t.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new
|
|
1
|
+
"use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),o=require("../types/enums.js"),a=require("../utils/boolToNumberTransformer.js");exports.ClientConfiguration=class ClientConfiguration{clientId;movementTripThreshold;stopTripThreshold;mapUpdateMode;maxUsersAllowed;ssoDomain;ssoMetadata;assetProfileStatusLabels;apiKeyId;assetProfileStatusLabelsEnabled;usagePlanTier;businessHoursEnabled;businessHours},e.__decorate([t.Column("int",{primary:!0,name:"clientId"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"clientId",void 0),e.__decorate([t.Column("double",{name:"movementTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"movementTripThreshold",void 0),e.__decorate([t.Column("double",{name:"stopTripThreshold",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"stopTripThreshold",void 0),e.__decorate([t.Column("tinyint",{name:"mapUpdateMode",nullable:!0}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"mapUpdateMode",void 0),e.__decorate([t.Column("smallint",{name:"maxUsersAllowed",default:()=>"'10'"}),e.__metadata("design:type",Number)],exports.ClientConfiguration.prototype,"maxUsersAllowed",void 0),e.__decorate([t.Column("varchar",{name:"ssoDomain",nullable:!0,length:250}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"ssoDomain",void 0),e.__decorate([t.Column("json",{name:"ssoMetadata",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"ssoMetadata",void 0),e.__decorate([t.Column("json",{name:"assetProfileStatusLabels",nullable:!0}),e.__metadata("design:type",Object)],exports.ClientConfiguration.prototype,"assetProfileStatusLabels",void 0),e.__decorate([t.Column("varchar",{name:"apiKeyId",length:64,nullable:!0}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"apiKeyId",void 0),e.__decorate([t.Column("tinyint",{name:"assetProfileStatusLabelsEnabled",width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'1'"}),e.__metadata("design:type",Boolean)],exports.ClientConfiguration.prototype,"assetProfileStatusLabelsEnabled",void 0),e.__decorate([t.Column("enum",{name:"usagePlanTier",enum:o.UsagePlanTier,default:o.UsagePlanTier.Standard}),e.__metadata("design:type",String)],exports.ClientConfiguration.prototype,"usagePlanTier",void 0),e.__decorate([t.Column("tinyint",{name:"businessHoursEnabled",nullable:!0,width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'0'"}),e.__metadata("design:type",Boolean)],exports.ClientConfiguration.prototype,"businessHoursEnabled",void 0),e.__decorate([t.Column("json",{name:"businessHours",nullable:!0}),e.__metadata("design:type",Array)],exports.ClientConfiguration.prototype,"businessHours",void 0),exports.ClientConfiguration=e.__decorate([t.Entity("clientConfiguration",{schema:"nova"}),t.Index("ssoDomain",["ssoDomain"],{unique:!0})],exports.ClientConfiguration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),a=require("../utils/boolToNumberTransformer.js"),r=require("../utils/uuidTransformer.js");exports.RetailDepartmentType=class RetailDepartmentType{id;clientId;name;code;color;sortOrder;isActive;createdAt;updatedAt},e.__decorate([t.PrimaryColumn("binary",{name:"id",length:16,transformer:r.UUIDTransformer}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.RetailDepartmentType.prototype,"clientId",void 0),e.__decorate([t.Column("varchar",{name:"name",length:100}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"code",length:50}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"code",void 0),e.__decorate([t.Column("varchar",{name:"color",nullable:!0,length:25}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"color",void 0),e.__decorate([t.Column("int",{name:"sortOrder",default:0}),e.__metadata("design:type",Number)],exports.RetailDepartmentType.prototype,"sortOrder",void 0),e.__decorate([t.Column("tinyint",{name:"isActive",
|
|
1
|
+
"use strict";var e=require("../node_modules/tslib/tslib.es6.js"),t=require("typeorm"),a=require("../utils/boolToNumberTransformer.js"),r=require("../utils/uuidTransformer.js");exports.RetailDepartmentType=class RetailDepartmentType{id;clientId;name;code;color;sortOrder;isActive;createdAt;updatedAt},e.__decorate([t.PrimaryColumn("binary",{name:"id",length:16,transformer:r.UUIDTransformer}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"id",void 0),e.__decorate([t.Column("int",{name:"clientId"}),e.__metadata("design:type",Number)],exports.RetailDepartmentType.prototype,"clientId",void 0),e.__decorate([t.Column("varchar",{name:"name",length:100}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"name",void 0),e.__decorate([t.Column("varchar",{name:"code",length:50}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"code",void 0),e.__decorate([t.Column("varchar",{name:"color",nullable:!0,length:25}),e.__metadata("design:type",String)],exports.RetailDepartmentType.prototype,"color",void 0),e.__decorate([t.Column("int",{name:"sortOrder",default:0}),e.__metadata("design:type",Number)],exports.RetailDepartmentType.prototype,"sortOrder",void 0),e.__decorate([t.Column("tinyint",{name:"isActive",width:1,transformer:new a.BoolToNumberTransformer,default:()=>"'1'"}),e.__metadata("design:type",Boolean)],exports.RetailDepartmentType.prototype,"isActive",void 0),e.__decorate([t.CreateDateColumn({name:"createdAt",precision:6}),e.__metadata("design:type",Date)],exports.RetailDepartmentType.prototype,"createdAt",void 0),e.__decorate([t.UpdateDateColumn({name:"updatedAt",precision:6}),e.__metadata("design:type",Date)],exports.RetailDepartmentType.prototype,"updatedAt",void 0),exports.RetailDepartmentType=e.__decorate([t.Index("ux_clientId_code",["clientId","code"],{unique:!0}),t.Index("ix_clientId_isActive",["clientId","isActive"],{}),t.Entity("retailDepartmentType",{schema:"nova"})],exports.RetailDepartmentType);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var _1684483705001UpdateSecurityUserViewsV1 = require('../1684483705001-updateSecurityUserViewsV1.js');
|
|
3
4
|
var _1684483704434AddLowerCaseIndex = require('../1684483704434-addLowerCaseIndex.js');
|
|
4
5
|
var _1684483705002UpdateSecurityUserViewsV2 = require('../1684483705002-updateSecurityUserViewsV2.js');
|
|
5
|
-
var _1684483705001UpdateSecurityUserViewsV1 = require('../1684483705001-updateSecurityUserViewsV1.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
exports.updateSecurityUserViewsV11684483705001 = _1684483705001UpdateSecurityUserViewsV1.updateSecurityUserViewsV11684483705001;
|
|
9
10
|
exports.addLowerCaseIndex1684483704434 = _1684483704434AddLowerCaseIndex.addLowerCaseIndex1684483704434;
|
|
10
11
|
exports.updateSecurityUserViewsV21684483705002 = _1684483705002UpdateSecurityUserViewsV2.updateSecurityUserViewsV21684483705002;
|
|
11
|
-
exports.updateSecurityUserViewsV11684483705001 = _1684483705001UpdateSecurityUserViewsV1.updateSecurityUserViewsV11684483705001;
|
package/dist/novaDataSource.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("typeorm"),r=require("./entities/index.js"),t=require("./subscribers/index.js"),a=require("./utils/queryLogger.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(i,o,s){this.logger=o;const n=[];for(const e in r){const t=r[e];n.push(t)}const c=[];for(const e in t){const r=t[e];c.push(r)}const u={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 a.QueryLogger(this.logger,i.logging),entities:n,subscribers:c,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...i,replication:{master:{...u,...i},slaves:s?[{...u,...s}]:[{...u,...i}],defaultMode:i.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,r){return this.dataSource.query(e,r,null)}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(e,r,t){try{this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release()}}async safeQuery3(e,r,t,{replicationMode:a,tag:i}={}){let o;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),o=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const
|
|
1
|
+
"use strict";var e=require("typeorm"),r=require("./entities/index.js"),t=require("./subscribers/index.js"),a=require("./utils/queryLogger.js");require("fs"),require("mysql2/promise"),require("path"),require("./types/enums.js"),require("./types/logger.js"),require("./entities/retailAlertExternalRecipient.js"),require("./utils/dateTool.js");exports.NovaDataSource=class NovaDataSource{dataSource;logger;constructor(i,o,s){this.logger=o;const n=[];for(const e in r){const t=r[e];n.push(t)}const c=[];for(const e in t){const r=t[e];c.push(r)}const u={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 a.QueryLogger(this.logger,i.logging),entities:n,subscribers:c,migrations:["node_modules/@spytecgps/nova-orm/dist/migration/*.js"],supportBigNumbers:!0,bigNumberStrings:!1,extra:{decimalNumbers:!0},...u,...i,replication:{master:{...u,...i},slaves:s?[{...u,...s}]:[{...u,...i}],defaultMode:i.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,r){return this.dataSource.query(e,r,null)}async createQueryBuilder(e,r){return this.dataSource.createQueryBuilder(e,r,null)}createQueryRunner(e){return this.dataSource.createQueryRunner(e)}createQueryRunnerFromParams(e){const r=e?.queryOptions?.forceUseReplica?"slave":"master";return this.logger.trace({replicationMode:r},"Creating query runner with replication mode"),this.dataSource.createQueryRunner(r)}async safeQuery(e,r,t){try{await this.connect();return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release(),await this.disconnect()}}async safeQuery2(e,r,t){try{this.dataSource.isInitialized||(this.logger.info("nova-orm new connection"),await this.connect());return await e(this,t)}catch(e){throw this.logger.error({error:e},r?r+" ":"Error while executing query"),e}finally{t&&await t.release()}}async safeQuery3(e,r,t,{replicationMode:a,tag:i}={}){let o;try{await this.connect(),a?(this.logger.trace({replicationMode:a},"Creating query runner with replication mode"),o=this.dataSource.createQueryRunner(a)):this.logger.trace({replicationMode:this.dataSource.defaultReplicationModeForReads},"Creating query builder with default replication mode for reads");const s=this.dataSource.createQueryBuilder(e,r,o);i&&s.comment(i);return await t(s)}catch(e){throw this.logger.error({error:e},i?i+" ":"Error while executing query"),e}finally{o&&await o.release()}}async syncSchema(e=!0){this.logger.warn("Initiating schema sync"),await this.connect(),await this.dataSource.synchronize(e),await this.dataSource.runMigrations()}async clearCache(){this.dataSource.queryResultCache?(this.logger.info("Clearing query result cache"),await this.dataSource.queryResultCache.clear()):this.logger.info("No query result cache to clear")}async invalidateCacheKey(e){this.dataSource.queryResultCache&&(this.logger.info("Invalidating cache key",{key:e}),await this.dataSource.queryResultCache.remove([e]))}};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { UsagePlanTier } from '../types/enums';
|
|
2
|
+
export interface BusinessHours {
|
|
3
|
+
name: string;
|
|
4
|
+
daysOfWeek: number;
|
|
5
|
+
startTime: string;
|
|
6
|
+
endTime: string;
|
|
7
|
+
}
|
|
1
8
|
export declare class ClientConfiguration {
|
|
2
9
|
clientId: number;
|
|
3
10
|
movementTripThreshold: number | null;
|
|
@@ -9,4 +16,7 @@ export declare class ClientConfiguration {
|
|
|
9
16
|
assetProfileStatusLabels: Record<string, any> | null;
|
|
10
17
|
apiKeyId?: string;
|
|
11
18
|
assetProfileStatusLabelsEnabled: boolean;
|
|
19
|
+
usagePlanTier: UsagePlanTier;
|
|
20
|
+
businessHoursEnabled: boolean;
|
|
21
|
+
businessHours: BusinessHours[] | null;
|
|
12
22
|
}
|
|
@@ -320,6 +320,10 @@ export declare enum ChurnNotificationPhase {
|
|
|
320
320
|
prepaid_ending_soon = "prepaid_ending_soon",
|
|
321
321
|
add_backup_card = "add_backup_card"
|
|
322
322
|
}
|
|
323
|
+
export declare enum UsagePlanTier {
|
|
324
|
+
Standard = "STANDARD",
|
|
325
|
+
Extended = "EXTENDED"
|
|
326
|
+
}
|
|
323
327
|
export declare enum FirmwareUpgradeTaskStatus {
|
|
324
328
|
Queued = "Queued",
|
|
325
329
|
QueuedWaitingForConfig = "QueuedWaitingForConfig",
|
package/dist/types/enums.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t,i,r,a,o,s,p,n,d,c,l,u,v,_,x,m,C,E,T,g,y,S,D,b,A,P,f,M,h,B,I,V,U,R,L,w,N,k,G,F,O,H,z,X,Q,W;exports.HapnSecurityRole=void 0,(e=exports.HapnSecurityRole||(exports.HapnSecurityRole={}))[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner",exports.DeviceStatus=void 0,(t=exports.DeviceStatus||(exports.DeviceStatus={})).Active="A",t.Deleted="D",t.Terminated="T",t.Replaced="R",exports.BoundaryStatus=void 0,(i=exports.BoundaryStatus||(exports.BoundaryStatus={}))[i.Active=1]="Active",i[i.Inactive=2]="Inactive",i[i.Deleted=3]="Deleted",exports.UserStatus=void 0,(r=exports.UserStatus||(exports.UserStatus={})).Active="A",r.Deleted="D",exports.ClientStatus=void 0,(a=exports.ClientStatus||(exports.ClientStatus={})).Active="A",a.Deleted="D",a.Locked="L",exports.UserInvitationStatus=void 0,(o=exports.UserInvitationStatus||(exports.UserInvitationStatus={}))[o.Pending=1]="Pending",o[o.Redeemed=2]="Redeemed",o[o.Canceled=3]="Canceled",exports.HapnClientType=void 0,(s=exports.HapnClientType||(exports.HapnClientType={}))[s.b2c=1]="b2c",s[s.b2b=2]="b2b",s[s.test=3]="test",s[s.demo=4]="demo",exports.HapnClientTypeNames=void 0,(p=exports.HapnClientTypeNames||(exports.HapnClientTypeNames={})).b2c="b2c",p.b2b="b2b",p.test="test",p.demo="demo",exports.HapnUseType=void 0,(n=exports.HapnUseType||(exports.HapnUseType={})).Personal="personal",n.Business="business",exports.MaxUsersAllowed=void 0,(d=exports.MaxUsersAllowed||(exports.MaxUsersAllowed={}))[d.b2c=3]="b2c",d[d.b2b=50]="b2b",exports.DeviceBehaviorType=void 0,(c=exports.DeviceBehaviorType||(exports.DeviceBehaviorType={})).ReportingFrequency="ReportingFrequency",c.Advanced="Advanced",c.Query="Query",c.General="General",exports.DeviceBehaviorStatus=void 0,(l=exports.DeviceBehaviorStatus||(exports.DeviceBehaviorStatus={})).Active="active",l.Inactive="inactive",exports.DeviceBehaviorTaskStatus=void 0,(u=exports.DeviceBehaviorTaskStatus||(exports.DeviceBehaviorTaskStatus={})).InProgress="InProgress",u.Completed="Completed",u.Canceled="Canceled",u.Failed="Failed",exports.NotificationRecipientType=void 0,(v=exports.NotificationRecipientType||(exports.NotificationRecipientType={}))[v.Email=1]="Email",v[v.Phone=2]="Phone",exports.BlacklistType=void 0,(_=exports.BlacklistType||(exports.BlacklistType={}))[_.CreditCard=1]="CreditCard",_[_.Email=2]="Email",_[_.Address=3]="Address",_[_.Ip=4]="Ip",_[_.Imei=5]="Imei",_[_.ClientId=6]="ClientId",exports.TripType=void 0,(x=exports.TripType||(exports.TripType={}))[x.Trip=1]="Trip",x[x.Stop=2]="Stop",exports.TripCompletionStatus=void 0,(m=exports.TripCompletionStatus||(exports.TripCompletionStatus={}))[m.Current=1]="Current",m[m.Completed=2]="Completed",m[m.Deleted=3]="Deleted",m[m.TempCurrent=10]="TempCurrent",m[m.TempCompleted=20]="TempCompleted",exports.BoundaryEventType=void 0,(C=exports.BoundaryEventType||(exports.BoundaryEventType={})).Enter="boundaryEnter",C.Exit="boundaryExit",exports.PromotionType=void 0,(E=exports.PromotionType||(exports.PromotionType={})).FreeService="freeService",E.Discount="discount",exports.DeviceBLEMeshStatus=void 0,(T=exports.DeviceBLEMeshStatus||(exports.DeviceBLEMeshStatus={})).PendingSync="pendingSync",T.InProgress="inProgress",T.Synced="synced",exports.DataExportType=void 0,(g=exports.DataExportType||(exports.DataExportType={})).Positions="positions",g.Alerts="alerts",g.Messages="messages",exports.DataExportStatus=void 0,(y=exports.DataExportStatus||(exports.DataExportStatus={})).Started="started",y.Completed="completed",y.Failed="failed",exports.M2SyncType=void 0,(S=exports.M2SyncType||(exports.M2SyncType={})).CREATE_CUSTOMER="CREATE_CUSTOMER",S.UPDATE_USER="UPDATE_USER",S.UPDATE_CLIENT="UPDATE_CLIENT",S.AVALARA_EXEMPT="AVALARA_EXEMPT",S.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",S.AVALARA_ITEM="AVALARA_ITEM",S.CREATE_DEVICE="CREATE_DEVICE",S.REMOVE_DEVICE="REMOVE_DEVICE",S.UPDATE_DEVICE="UPDATE_DEVICE",S.SUSPEND_DEVICE="SUSPEND_DEVICE",S.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",S.CANCEL_DEVICE="CANCEL_DEVICE",exports.MediaType=void 0,(D=exports.MediaType||(exports.MediaType={})).Image="image",D.Video="video",exports.CameraSource=void 0,(b=exports.CameraSource||(exports.CameraSource={})).Front="front",b.Interior="interior",exports.DeviceCameraMediaLocation=void 0,(A=exports.DeviceCameraMediaLocation||(exports.DeviceCameraMediaLocation={})).SDCard="sdCard",A.Server="server",exports.DeviceCameraEventBehaviorType=void 0,(P=exports.DeviceCameraEventBehaviorType||(exports.DeviceCameraEventBehaviorType={})).TakePicture="takePicture",P.TakeVideo="takeVideo",P.UploadPicture="uploadPicture",P.UploadVideo="uploadVideo",exports.StreamingStatus=void 0,(f=exports.StreamingStatus||(exports.StreamingStatus={})).Requested="requested",f.Streaming="streaming",f.Closed="closed",f.Failed="failed",f.Closing="closing",exports.DevicePlatform=void 0,(M=exports.DevicePlatform||(exports.DevicePlatform={})).shopify="shopify",M.braintree="braintree",M.acumatica="acumatica",M.klarna="klarna",M.amazon="amazon",M.braintree_amazon="braintree_amazon",M.demo="demo",M.stripe="stripe",M.stripe_amazon="stripe_amazon",exports.DeviceModels=void 0,(h=exports.DeviceModels||(exports.DeviceModels={})).UNKNOWN="UNKNOWN",h.GV50="GV50",h.GV500="GV500",h.GL501="GL501",h.GL300="GL300",h.GL500="GL500",h.GV350="GV350",h.PRIME="PRIME",h.GV620="GV620",h.GL50="GL50",h.GB100="GB100",h.GL31="GL31",h.GL30="GL30",h.MCX101="MCX101",h.MCX301="MCX301",h.FMM00A="FMM00A",h.CV200="CV200",h.FMM650="FMM650",h.GL32="GL32",h.MC5="MC5",h.GPT48X="GPT48X",h.DEMO="DEMO",exports.DeviceEventType=void 0,(B=exports.DeviceEventType||(exports.DeviceEventType={})).new_activation="new_activation",B.reactivation="reactivation",B.subscription_change="subscription_change",B.resumption="resumption",B.device_swap="device_swap",B.subscription_update="subscription_update",exports.DeviceActivationSource=void 0,(I=exports.DeviceActivationSource||(exports.DeviceActivationSource={}))[I.sieva=1]="sieva",I[I.manual=2]="manual",I[I.api=3]="api",I[I.web=4]="web",I[I.mobile=5]="mobile",I[I.ios=6]="ios",I[I.android=7]="android",I[I.activation_site=8]="activation_site",exports.SubscriptionStatus=void 0,(V=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).Active="Active",V.Pending="Pending",V.Canceled="Canceled",V.Expired="Expired",V.PastDue="Past Due",V.Incomplete="Incomplete",V.IncompleteExpired="Incomplete Expired",V.Trialing="Trialing",V.Unpaid="Unpaid",V.Paused="Paused",exports.DeactivationCode=void 0,(U=exports.DeactivationCode||(exports.DeactivationCode={})).temporary="temporary",U.too_expensive="too_expensive",U.no_need="no_need",U.missing_features="missing_features",U.too_difficult="too_difficult",U.no_value="no_value",U.tech_issues="tech_issues",U.missing_hardware="missing_hardware",U.customer_service="customer_service",U.biz_change="biz_change",U.device_paused="device_paused",U.removed_from_account="removed_from_account",U.device_swapped="device_swapped",U.churnbuster_campaign_lost="churnbuster_campaign_lost",U.system_auto="system_auto",U.canceled_sub_active_sim_or_device="canceled_sub_active_sim_or_device",U.klarna_billing_failed="klarna_billing_failed",U.prepaid_recurring_pending="prepaid_recurring_pending",U.expired_subscription="expired_subscription",U.unknown_reason="unknown_reason",exports.DeactivationCreatedBy=void 0,(R=exports.DeactivationCreatedBy||(exports.DeactivationCreatedBy={})).customer="customer",R.customer_support="customer_support",R.system="system",exports.Carriers=void 0,(L=exports.Carriers||(exports.Carriers={}))[L.Pod=1]="Pod",L[L.Verizon=2]="Verizon",L[L.Kore=3]="Kore",L[L.Twilio=4]="Twilio",L[L.Unknown=99]="Unknown",L[L.None=-1]="None",exports.CarrierDeactivationType=void 0,(w=exports.CarrierDeactivationType||(exports.CarrierDeactivationType={})).device_cancel="device_cancel",w.device_pause="device_pause",w.churnbuster_lost="churnbuster_lost",w.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",w.device_cancel_admin="device_cancel_admin",w.klarna_billing_failed="klarna_billing_failed",w.expired_subscription="expired_subscription",w.prepaid_recurring_pending="prepaid_recurring_pending",w.device_swap="device_swap",w.system_auto="system_auto",exports.CarrierReactivationType=void 0,(exports.CarrierReactivationType||(exports.CarrierReactivationType={})).device_pause_resume="device_pause_resume",exports.ChurnbusterEventType=void 0,(N=exports.ChurnbusterEventType||(exports.ChurnbusterEventType={})).campaign_started="campaign_started",N.email_bounced="email_bounced",N.campaign_recovered="campaign_recovered",N.campaign_lost="campaign_lost",N.campaign_won="campaign_won",exports.AvalaraBasePrice=void 0,(k=exports.AvalaraBasePrice||(exports.AvalaraBasePrice={})).original="original",k.calculated="calculated",exports.InvoiceStatus=void 0,(G=exports.InvoiceStatus||(exports.InvoiceStatus={})).Draft="draft",G.Open="open",G.Paid="paid",G.Uncollectible="uncollectible",G.Void="void",exports.BillingCampaignFreeTrialStatus=void 0,(F=exports.BillingCampaignFreeTrialStatus||(exports.BillingCampaignFreeTrialStatus={})).in_trial="in_trial",F.canceled="canceled",F.converted="converted",F.overdue="overdue",exports.BillingCampaignPrepaidStatus=void 0,(O=exports.BillingCampaignPrepaidStatus||(exports.BillingCampaignPrepaidStatus={})).prepaid_started="prepaid_started",O.prepaid_ending_soon="prepaid_ending_soon",O.prepaid_converted="prepaid_converted",O.canceled="canceled",O.overdue="overdue",exports.BillingCampaignFreeOfferStatus=void 0,(H=exports.BillingCampaignFreeOfferStatus||(exports.BillingCampaignFreeOfferStatus={})).applied="applied",H.completed="completed",H.canceled_before="canceled_before",H.canceled_during="canceled_during",exports.BillingCampaignType=void 0,(z=exports.BillingCampaignType||(exports.BillingCampaignType={})).free_trial="free_trial",z.free_offer="free_offer",z.prepaid="prepaid",exports.ChurnNotificationPriority=void 0,(X=exports.ChurnNotificationPriority||(exports.ChurnNotificationPriority={})).low="low",X.moderate="moderate",X.high="high",X.critical="critical",exports.ChurnNotificationPhase=void 0,(Q=exports.ChurnNotificationPhase||(exports.ChurnNotificationPhase={})).payment_failed="payment_failed",Q.past_due="past_due",Q.account_locked="account_locked",Q.prepaid_add_card="prepaid_add_card",Q.prepaid_ending_soon="prepaid_ending_soon",Q.add_backup_card="add_backup_card",exports.FirmwareUpgradeTaskStatus=void 0,(W=exports.FirmwareUpgradeTaskStatus||(exports.FirmwareUpgradeTaskStatus={})).Queued="Queued",W.QueuedWaitingForConfig="QueuedWaitingForConfig",W.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",W.InProgress="InProgress",W.Completed="Completed",W.Canceled="Canceled",W.Failed="Failed",W.Expired="Expired";
|
|
1
|
+
"use strict";var e,t,i,r,a,o,s,p,n,d,c,l,v,u,_,x,m,C,E,T,g,y,S,D,A,b,P,f,M,h,B,I,U,V,R,L,N,w,k,G,F,O,H,X,z,Q,W,q;exports.HapnSecurityRole=void 0,(e=exports.HapnSecurityRole||(exports.HapnSecurityRole={}))[e.Admin=1]="Admin",e[e.Collaborator=2]="Collaborator",e[e.Owner=3]="Owner",exports.DeviceStatus=void 0,(t=exports.DeviceStatus||(exports.DeviceStatus={})).Active="A",t.Deleted="D",t.Terminated="T",t.Replaced="R",exports.BoundaryStatus=void 0,(i=exports.BoundaryStatus||(exports.BoundaryStatus={}))[i.Active=1]="Active",i[i.Inactive=2]="Inactive",i[i.Deleted=3]="Deleted",exports.UserStatus=void 0,(r=exports.UserStatus||(exports.UserStatus={})).Active="A",r.Deleted="D",exports.ClientStatus=void 0,(a=exports.ClientStatus||(exports.ClientStatus={})).Active="A",a.Deleted="D",a.Locked="L",exports.UserInvitationStatus=void 0,(o=exports.UserInvitationStatus||(exports.UserInvitationStatus={}))[o.Pending=1]="Pending",o[o.Redeemed=2]="Redeemed",o[o.Canceled=3]="Canceled",exports.HapnClientType=void 0,(s=exports.HapnClientType||(exports.HapnClientType={}))[s.b2c=1]="b2c",s[s.b2b=2]="b2b",s[s.test=3]="test",s[s.demo=4]="demo",exports.HapnClientTypeNames=void 0,(p=exports.HapnClientTypeNames||(exports.HapnClientTypeNames={})).b2c="b2c",p.b2b="b2b",p.test="test",p.demo="demo",exports.HapnUseType=void 0,(n=exports.HapnUseType||(exports.HapnUseType={})).Personal="personal",n.Business="business",exports.MaxUsersAllowed=void 0,(d=exports.MaxUsersAllowed||(exports.MaxUsersAllowed={}))[d.b2c=3]="b2c",d[d.b2b=50]="b2b",exports.DeviceBehaviorType=void 0,(c=exports.DeviceBehaviorType||(exports.DeviceBehaviorType={})).ReportingFrequency="ReportingFrequency",c.Advanced="Advanced",c.Query="Query",c.General="General",exports.DeviceBehaviorStatus=void 0,(l=exports.DeviceBehaviorStatus||(exports.DeviceBehaviorStatus={})).Active="active",l.Inactive="inactive",exports.DeviceBehaviorTaskStatus=void 0,(v=exports.DeviceBehaviorTaskStatus||(exports.DeviceBehaviorTaskStatus={})).InProgress="InProgress",v.Completed="Completed",v.Canceled="Canceled",v.Failed="Failed",exports.NotificationRecipientType=void 0,(u=exports.NotificationRecipientType||(exports.NotificationRecipientType={}))[u.Email=1]="Email",u[u.Phone=2]="Phone",exports.BlacklistType=void 0,(_=exports.BlacklistType||(exports.BlacklistType={}))[_.CreditCard=1]="CreditCard",_[_.Email=2]="Email",_[_.Address=3]="Address",_[_.Ip=4]="Ip",_[_.Imei=5]="Imei",_[_.ClientId=6]="ClientId",exports.TripType=void 0,(x=exports.TripType||(exports.TripType={}))[x.Trip=1]="Trip",x[x.Stop=2]="Stop",exports.TripCompletionStatus=void 0,(m=exports.TripCompletionStatus||(exports.TripCompletionStatus={}))[m.Current=1]="Current",m[m.Completed=2]="Completed",m[m.Deleted=3]="Deleted",m[m.TempCurrent=10]="TempCurrent",m[m.TempCompleted=20]="TempCompleted",exports.BoundaryEventType=void 0,(C=exports.BoundaryEventType||(exports.BoundaryEventType={})).Enter="boundaryEnter",C.Exit="boundaryExit",exports.PromotionType=void 0,(E=exports.PromotionType||(exports.PromotionType={})).FreeService="freeService",E.Discount="discount",exports.DeviceBLEMeshStatus=void 0,(T=exports.DeviceBLEMeshStatus||(exports.DeviceBLEMeshStatus={})).PendingSync="pendingSync",T.InProgress="inProgress",T.Synced="synced",exports.DataExportType=void 0,(g=exports.DataExportType||(exports.DataExportType={})).Positions="positions",g.Alerts="alerts",g.Messages="messages",exports.DataExportStatus=void 0,(y=exports.DataExportStatus||(exports.DataExportStatus={})).Started="started",y.Completed="completed",y.Failed="failed",exports.M2SyncType=void 0,(S=exports.M2SyncType||(exports.M2SyncType={})).CREATE_CUSTOMER="CREATE_CUSTOMER",S.UPDATE_USER="UPDATE_USER",S.UPDATE_CLIENT="UPDATE_CLIENT",S.AVALARA_EXEMPT="AVALARA_EXEMPT",S.AVALARA_EXEMPT_REMOVE="AVALARA_EXEMPT_REMOVE",S.AVALARA_ITEM="AVALARA_ITEM",S.CREATE_DEVICE="CREATE_DEVICE",S.REMOVE_DEVICE="REMOVE_DEVICE",S.UPDATE_DEVICE="UPDATE_DEVICE",S.SUSPEND_DEVICE="SUSPEND_DEVICE",S.UNSUSPEND_DEVICE="UNSUSPEND_DEVICE",S.CANCEL_DEVICE="CANCEL_DEVICE",exports.MediaType=void 0,(D=exports.MediaType||(exports.MediaType={})).Image="image",D.Video="video",exports.CameraSource=void 0,(A=exports.CameraSource||(exports.CameraSource={})).Front="front",A.Interior="interior",exports.DeviceCameraMediaLocation=void 0,(b=exports.DeviceCameraMediaLocation||(exports.DeviceCameraMediaLocation={})).SDCard="sdCard",b.Server="server",exports.DeviceCameraEventBehaviorType=void 0,(P=exports.DeviceCameraEventBehaviorType||(exports.DeviceCameraEventBehaviorType={})).TakePicture="takePicture",P.TakeVideo="takeVideo",P.UploadPicture="uploadPicture",P.UploadVideo="uploadVideo",exports.StreamingStatus=void 0,(f=exports.StreamingStatus||(exports.StreamingStatus={})).Requested="requested",f.Streaming="streaming",f.Closed="closed",f.Failed="failed",f.Closing="closing",exports.DevicePlatform=void 0,(M=exports.DevicePlatform||(exports.DevicePlatform={})).shopify="shopify",M.braintree="braintree",M.acumatica="acumatica",M.klarna="klarna",M.amazon="amazon",M.braintree_amazon="braintree_amazon",M.demo="demo",M.stripe="stripe",M.stripe_amazon="stripe_amazon",exports.DeviceModels=void 0,(h=exports.DeviceModels||(exports.DeviceModels={})).UNKNOWN="UNKNOWN",h.GV50="GV50",h.GV500="GV500",h.GL501="GL501",h.GL300="GL300",h.GL500="GL500",h.GV350="GV350",h.PRIME="PRIME",h.GV620="GV620",h.GL50="GL50",h.GB100="GB100",h.GL31="GL31",h.GL30="GL30",h.MCX101="MCX101",h.MCX301="MCX301",h.FMM00A="FMM00A",h.CV200="CV200",h.FMM650="FMM650",h.GL32="GL32",h.MC5="MC5",h.GPT48X="GPT48X",h.DEMO="DEMO",exports.DeviceEventType=void 0,(B=exports.DeviceEventType||(exports.DeviceEventType={})).new_activation="new_activation",B.reactivation="reactivation",B.subscription_change="subscription_change",B.resumption="resumption",B.device_swap="device_swap",B.subscription_update="subscription_update",exports.DeviceActivationSource=void 0,(I=exports.DeviceActivationSource||(exports.DeviceActivationSource={}))[I.sieva=1]="sieva",I[I.manual=2]="manual",I[I.api=3]="api",I[I.web=4]="web",I[I.mobile=5]="mobile",I[I.ios=6]="ios",I[I.android=7]="android",I[I.activation_site=8]="activation_site",exports.SubscriptionStatus=void 0,(U=exports.SubscriptionStatus||(exports.SubscriptionStatus={})).Active="Active",U.Pending="Pending",U.Canceled="Canceled",U.Expired="Expired",U.PastDue="Past Due",U.Incomplete="Incomplete",U.IncompleteExpired="Incomplete Expired",U.Trialing="Trialing",U.Unpaid="Unpaid",U.Paused="Paused",exports.DeactivationCode=void 0,(V=exports.DeactivationCode||(exports.DeactivationCode={})).temporary="temporary",V.too_expensive="too_expensive",V.no_need="no_need",V.missing_features="missing_features",V.too_difficult="too_difficult",V.no_value="no_value",V.tech_issues="tech_issues",V.missing_hardware="missing_hardware",V.customer_service="customer_service",V.biz_change="biz_change",V.device_paused="device_paused",V.removed_from_account="removed_from_account",V.device_swapped="device_swapped",V.churnbuster_campaign_lost="churnbuster_campaign_lost",V.system_auto="system_auto",V.canceled_sub_active_sim_or_device="canceled_sub_active_sim_or_device",V.klarna_billing_failed="klarna_billing_failed",V.prepaid_recurring_pending="prepaid_recurring_pending",V.expired_subscription="expired_subscription",V.unknown_reason="unknown_reason",exports.DeactivationCreatedBy=void 0,(R=exports.DeactivationCreatedBy||(exports.DeactivationCreatedBy={})).customer="customer",R.customer_support="customer_support",R.system="system",exports.Carriers=void 0,(L=exports.Carriers||(exports.Carriers={}))[L.Pod=1]="Pod",L[L.Verizon=2]="Verizon",L[L.Kore=3]="Kore",L[L.Twilio=4]="Twilio",L[L.Unknown=99]="Unknown",L[L.None=-1]="None",exports.CarrierDeactivationType=void 0,(N=exports.CarrierDeactivationType||(exports.CarrierDeactivationType={})).device_cancel="device_cancel",N.device_pause="device_pause",N.churnbuster_lost="churnbuster_lost",N.device_cancel_admin_due_to_remove="device_cancel_admin_due_to_remove",N.device_cancel_admin="device_cancel_admin",N.klarna_billing_failed="klarna_billing_failed",N.expired_subscription="expired_subscription",N.prepaid_recurring_pending="prepaid_recurring_pending",N.device_swap="device_swap",N.system_auto="system_auto",exports.CarrierReactivationType=void 0,(exports.CarrierReactivationType||(exports.CarrierReactivationType={})).device_pause_resume="device_pause_resume",exports.ChurnbusterEventType=void 0,(w=exports.ChurnbusterEventType||(exports.ChurnbusterEventType={})).campaign_started="campaign_started",w.email_bounced="email_bounced",w.campaign_recovered="campaign_recovered",w.campaign_lost="campaign_lost",w.campaign_won="campaign_won",exports.AvalaraBasePrice=void 0,(k=exports.AvalaraBasePrice||(exports.AvalaraBasePrice={})).original="original",k.calculated="calculated",exports.InvoiceStatus=void 0,(G=exports.InvoiceStatus||(exports.InvoiceStatus={})).Draft="draft",G.Open="open",G.Paid="paid",G.Uncollectible="uncollectible",G.Void="void",exports.BillingCampaignFreeTrialStatus=void 0,(F=exports.BillingCampaignFreeTrialStatus||(exports.BillingCampaignFreeTrialStatus={})).in_trial="in_trial",F.canceled="canceled",F.converted="converted",F.overdue="overdue",exports.BillingCampaignPrepaidStatus=void 0,(O=exports.BillingCampaignPrepaidStatus||(exports.BillingCampaignPrepaidStatus={})).prepaid_started="prepaid_started",O.prepaid_ending_soon="prepaid_ending_soon",O.prepaid_converted="prepaid_converted",O.canceled="canceled",O.overdue="overdue",exports.BillingCampaignFreeOfferStatus=void 0,(H=exports.BillingCampaignFreeOfferStatus||(exports.BillingCampaignFreeOfferStatus={})).applied="applied",H.completed="completed",H.canceled_before="canceled_before",H.canceled_during="canceled_during",exports.BillingCampaignType=void 0,(X=exports.BillingCampaignType||(exports.BillingCampaignType={})).free_trial="free_trial",X.free_offer="free_offer",X.prepaid="prepaid",exports.ChurnNotificationPriority=void 0,(z=exports.ChurnNotificationPriority||(exports.ChurnNotificationPriority={})).low="low",z.moderate="moderate",z.high="high",z.critical="critical",exports.ChurnNotificationPhase=void 0,(Q=exports.ChurnNotificationPhase||(exports.ChurnNotificationPhase={})).payment_failed="payment_failed",Q.past_due="past_due",Q.account_locked="account_locked",Q.prepaid_add_card="prepaid_add_card",Q.prepaid_ending_soon="prepaid_ending_soon",Q.add_backup_card="add_backup_card",exports.UsagePlanTier=void 0,(W=exports.UsagePlanTier||(exports.UsagePlanTier={})).Standard="STANDARD",W.Extended="EXTENDED",exports.FirmwareUpgradeTaskStatus=void 0,(q=exports.FirmwareUpgradeTaskStatus||(exports.FirmwareUpgradeTaskStatus={})).Queued="Queued",q.QueuedWaitingForConfig="QueuedWaitingForConfig",q.QueuedWaitingForVersionMessage="QueuedWaitingForVersionMessage",q.InProgress="InProgress",q.Completed="Completed",q.Canceled="Canceled",q.Failed="Failed",q.Expired="Expired";
|
package/package.json
CHANGED
package/schema.sql
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
-- nova-orm-schema-checksum:
|
|
1
|
+
-- nova-orm-schema-checksum: 1e96c9e06ca5fce279afc415a246de3e
|
|
2
2
|
-- Nova ORM Schema Dump
|
|
3
|
-
-- Generated at: 2026-03-
|
|
3
|
+
-- Generated at: 2026-03-08T15:41:26.584Z
|
|
4
4
|
|
|
5
5
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
6
6
|
|
|
@@ -1089,6 +1089,9 @@ CREATE TABLE `clientConfiguration` (
|
|
|
1089
1089
|
`assetProfileStatusLabels` json DEFAULT NULL,
|
|
1090
1090
|
`apiKeyId` varchar(64) DEFAULT NULL,
|
|
1091
1091
|
`assetProfileStatusLabelsEnabled` tinyint(1) NOT NULL DEFAULT '1',
|
|
1092
|
+
`usagePlanTier` enum('STANDARD','EXTENDED') NOT NULL DEFAULT 'STANDARD',
|
|
1093
|
+
`businessHoursEnabled` tinyint(1) DEFAULT '0',
|
|
1094
|
+
`businessHours` json DEFAULT NULL,
|
|
1092
1095
|
PRIMARY KEY (`clientId`),
|
|
1093
1096
|
UNIQUE KEY `ssoDomain` (`ssoDomain`)
|
|
1094
1097
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@@ -2572,7 +2575,7 @@ CREATE TABLE `retailDepartmentType` (
|
|
|
2572
2575
|
`code` varchar(50) NOT NULL,
|
|
2573
2576
|
`color` varchar(25) DEFAULT NULL,
|
|
2574
2577
|
`sortOrder` int NOT NULL DEFAULT '0',
|
|
2575
|
-
`isActive` tinyint(1) DEFAULT '1',
|
|
2578
|
+
`isActive` tinyint(1) NOT NULL DEFAULT '1',
|
|
2576
2579
|
`createdAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
2577
2580
|
`updatedAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
2578
2581
|
PRIMARY KEY (`id`),
|