@antelopejs/interface-dms-saas 0.0.1
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/LICENSE +190 -0
- package/README.md +51 -0
- package/dist/billing.d.ts +25 -0
- package/dist/billing.js +15 -0
- package/dist/billing.js.map +1 -0
- package/dist/data-api.d.ts +1 -0
- package/dist/data-api.js +6 -0
- package/dist/data-api.js.map +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.js +19 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/models/billingSettings.model.d.ts +22 -0
- package/dist/db/models/billingSettings.model.js +9 -0
- package/dist/db/models/billingSettings.model.js.map +1 -0
- package/dist/db/models/creditNotes.model.d.ts +25 -0
- package/dist/db/models/creditNotes.model.js +26 -0
- package/dist/db/models/creditNotes.model.js.map +1 -0
- package/dist/db/models/features.model.d.ts +22 -0
- package/dist/db/models/features.model.js +9 -0
- package/dist/db/models/features.model.js.map +1 -0
- package/dist/db/models/index.d.ts +19 -0
- package/dist/db/models/index.js +36 -0
- package/dist/db/models/index.js.map +1 -0
- package/dist/db/models/invoices.model.d.ts +29 -0
- package/dist/db/models/invoices.model.js +60 -0
- package/dist/db/models/invoices.model.js.map +1 -0
- package/dist/db/models/legalDocuments.model.d.ts +22 -0
- package/dist/db/models/legalDocuments.model.js +9 -0
- package/dist/db/models/legalDocuments.model.js.map +1 -0
- package/dist/db/models/planMigrations.model.d.ts +29 -0
- package/dist/db/models/planMigrations.model.js +70 -0
- package/dist/db/models/planMigrations.model.js.map +1 -0
- package/dist/db/models/plans.model.d.ts +31 -0
- package/dist/db/models/plans.model.js +74 -0
- package/dist/db/models/plans.model.js.map +1 -0
- package/dist/db/models/platformNotes.model.d.ts +33 -0
- package/dist/db/models/platformNotes.model.js +27 -0
- package/dist/db/models/platformNotes.model.js.map +1 -0
- package/dist/db/models/refunds.model.d.ts +23 -0
- package/dist/db/models/refunds.model.js +17 -0
- package/dist/db/models/refunds.model.js.map +1 -0
- package/dist/db/models/revision.d.ts +1 -0
- package/dist/db/models/revision.js +14 -0
- package/dist/db/models/revision.js.map +1 -0
- package/dist/db/models/segments.model.d.ts +29 -0
- package/dist/db/models/segments.model.js +81 -0
- package/dist/db/models/segments.model.js.map +1 -0
- package/dist/db/models/stripeWebhookEvents.model.d.ts +26 -0
- package/dist/db/models/stripeWebhookEvents.model.js +70 -0
- package/dist/db/models/stripeWebhookEvents.model.js.map +1 -0
- package/dist/db/models/supportMessages.model.d.ts +23 -0
- package/dist/db/models/supportMessages.model.js +17 -0
- package/dist/db/models/supportMessages.model.js.map +1 -0
- package/dist/db/models/supportTicketEvents.model.d.ts +22 -0
- package/dist/db/models/supportTicketEvents.model.js +9 -0
- package/dist/db/models/supportTicketEvents.model.js.map +1 -0
- package/dist/db/models/supportTickets.model.d.ts +25 -0
- package/dist/db/models/supportTickets.model.js +32 -0
- package/dist/db/models/supportTickets.model.js.map +1 -0
- package/dist/db/models/tenantBillingInfo.model.d.ts +24 -0
- package/dist/db/models/tenantBillingInfo.model.js +20 -0
- package/dist/db/models/tenantBillingInfo.model.js.map +1 -0
- package/dist/db/models/tenantBillingState.model.d.ts +28 -0
- package/dist/db/models/tenantBillingState.model.js +72 -0
- package/dist/db/models/tenantBillingState.model.js.map +1 -0
- package/dist/db/models/tenantSubscriptions.model.d.ts +51 -0
- package/dist/db/models/tenantSubscriptions.model.js +305 -0
- package/dist/db/models/tenantSubscriptions.model.js.map +1 -0
- package/dist/db/models/trialConsumptions.model.d.ts +24 -0
- package/dist/db/models/trialConsumptions.model.js +30 -0
- package/dist/db/models/trialConsumptions.model.js.map +1 -0
- package/dist/db/models/update-result.d.ts +1 -0
- package/dist/db/models/update-result.js +13 -0
- package/dist/db/models/update-result.js.map +1 -0
- package/dist/db/models/userSegments.model.d.ts +30 -0
- package/dist/db/models/userSegments.model.js +97 -0
- package/dist/db/models/userSegments.model.js.map +1 -0
- package/dist/db/tables/billingSettings.table.d.ts +22 -0
- package/dist/db/tables/billingSettings.table.js +73 -0
- package/dist/db/tables/billingSettings.table.js.map +1 -0
- package/dist/db/tables/creditNotes.table.d.ts +26 -0
- package/dist/db/tables/creditNotes.table.js +110 -0
- package/dist/db/tables/creditNotes.table.js.map +1 -0
- package/dist/db/tables/features.table.d.ts +18 -0
- package/dist/db/tables/features.table.js +70 -0
- package/dist/db/tables/features.table.js.map +1 -0
- package/dist/db/tables/index.d.ts +19 -0
- package/dist/db/tables/index.js +36 -0
- package/dist/db/tables/index.js.map +1 -0
- package/dist/db/tables/invoices.table.d.ts +47 -0
- package/dist/db/tables/invoices.table.js +140 -0
- package/dist/db/tables/invoices.table.js.map +1 -0
- package/dist/db/tables/legalDocuments.table.d.ts +10 -0
- package/dist/db/tables/legalDocuments.table.js +44 -0
- package/dist/db/tables/legalDocuments.table.js.map +1 -0
- package/dist/db/tables/planMigrations.table.d.ts +61 -0
- package/dist/db/tables/planMigrations.table.js +114 -0
- package/dist/db/tables/planMigrations.table.js.map +1 -0
- package/dist/db/tables/plans.table.d.ts +41 -0
- package/dist/db/tables/plans.table.js +125 -0
- package/dist/db/tables/plans.table.js.map +1 -0
- package/dist/db/tables/platformNotes.table.d.ts +13 -0
- package/dist/db/tables/platformNotes.table.js +58 -0
- package/dist/db/tables/platformNotes.table.js.map +1 -0
- package/dist/db/tables/refunds.table.d.ts +15 -0
- package/dist/db/tables/refunds.table.js +70 -0
- package/dist/db/tables/refunds.table.js.map +1 -0
- package/dist/db/tables/segments.table.d.ts +37 -0
- package/dist/db/tables/segments.table.js +79 -0
- package/dist/db/tables/segments.table.js.map +1 -0
- package/dist/db/tables/stripeWebhookEvents.table.d.ts +12 -0
- package/dist/db/tables/stripeWebhookEvents.table.js +54 -0
- package/dist/db/tables/stripeWebhookEvents.table.js.map +1 -0
- package/dist/db/tables/supportMessages.table.d.ts +14 -0
- package/dist/db/tables/supportMessages.table.js +62 -0
- package/dist/db/tables/supportMessages.table.js.map +1 -0
- package/dist/db/tables/supportTicketEvents.table.d.ts +14 -0
- package/dist/db/tables/supportTicketEvents.table.js +61 -0
- package/dist/db/tables/supportTicketEvents.table.js.map +1 -0
- package/dist/db/tables/supportTickets.table.d.ts +25 -0
- package/dist/db/tables/supportTickets.table.js +109 -0
- package/dist/db/tables/supportTickets.table.js.map +1 -0
- package/dist/db/tables/tenantBillingInfo.table.d.ts +24 -0
- package/dist/db/tables/tenantBillingInfo.table.js +62 -0
- package/dist/db/tables/tenantBillingInfo.table.js.map +1 -0
- package/dist/db/tables/tenantBillingState.table.d.ts +12 -0
- package/dist/db/tables/tenantBillingState.table.js +59 -0
- package/dist/db/tables/tenantBillingState.table.js.map +1 -0
- package/dist/db/tables/tenantSubscriptions.table.d.ts +46 -0
- package/dist/db/tables/tenantSubscriptions.table.js +157 -0
- package/dist/db/tables/tenantSubscriptions.table.js.map +1 -0
- package/dist/db/tables/trialConsumptions.table.d.ts +10 -0
- package/dist/db/tables/trialConsumptions.table.js +55 -0
- package/dist/db/tables/trialConsumptions.table.js.map +1 -0
- package/dist/db/tables/userSegments.table.d.ts +11 -0
- package/dist/db/tables/userSegments.table.js +56 -0
- package/dist/db/tables/userSegments.table.js.map +1 -0
- package/dist/hidden-filter.d.ts +1 -0
- package/dist/hidden-filter.js +10 -0
- package/dist/hidden-filter.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/invoice-line-items.d.ts +42 -0
- package/dist/invoice-line-items.js +83 -0
- package/dist/invoice-line-items.js.map +1 -0
- package/dist/page-definitions.d.ts +17 -0
- package/dist/page-definitions.js +60 -0
- package/dist/page-definitions.js.map +1 -0
- package/dist/pages.d.ts +59 -0
- package/dist/pages.js +88 -0
- package/dist/pages.js.map +1 -0
- package/dist/plans.d.ts +27 -0
- package/dist/plans.js +60 -0
- package/dist/plans.js.map +1 -0
- package/dist/provisioning.d.ts +5 -0
- package/dist/provisioning.js +3 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/registration.d.ts +6 -0
- package/dist/registration.js +9 -0
- package/dist/registration.js.map +1 -0
- package/dist/workspace-lifecycle.d.ts +27 -0
- package/dist/workspace-lifecycle.js +30 -0
- package/dist/workspace-lifecycle.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SupportMessage } from "../tables/supportMessages.table";
|
|
2
|
+
declare const SupportMessageModel_base: {
|
|
3
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
4
|
+
readonly table: import("@antelopejs/interface-database").Table<SupportMessage>;
|
|
5
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
6
|
+
get(id: string): PromiseLike<SupportMessage | undefined>;
|
|
7
|
+
getBy(index: keyof SupportMessage, ...keys: any[]): PromiseLike<SupportMessage[]>;
|
|
8
|
+
getAll(): PromiseLike<SupportMessage[]>;
|
|
9
|
+
insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportMessage> | import("@antelopejs/interface-database-decorators").DeepPartial<SupportMessage>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
|
|
10
|
+
update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportMessage>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
11
|
+
update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportMessage>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
12
|
+
delete(id: string): Promise<number>;
|
|
13
|
+
};
|
|
14
|
+
readonly schemaName: string;
|
|
15
|
+
fromPlainData(obj: any): SupportMessage;
|
|
16
|
+
fromDatabase(obj: any): SupportMessage | undefined;
|
|
17
|
+
toDatabase(obj: any): Record<string, any>;
|
|
18
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
19
|
+
};
|
|
20
|
+
export declare class SupportMessageModel extends SupportMessageModel_base {
|
|
21
|
+
hasAttachment(ticketId: string, resourceKey: string): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SupportMessageModel = void 0;
|
|
4
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
|
+
const supportMessages_table_1 = require("../tables/supportMessages.table");
|
|
6
|
+
class SupportMessageModel extends (0, interface_database_decorators_1.BasicDataModel)(supportMessages_table_1.SupportMessage, supportMessages_table_1.supportMessagesTableName) {
|
|
7
|
+
async hasAttachment(ticketId, resourceKey) {
|
|
8
|
+
const count = await this.table
|
|
9
|
+
.getAll(ticketId, "ticketId")
|
|
10
|
+
.filter((row) => row.key("attachments").includes(resourceKey))
|
|
11
|
+
.count()
|
|
12
|
+
.run();
|
|
13
|
+
return count > 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.SupportMessageModel = SupportMessageModel;
|
|
17
|
+
//# sourceMappingURL=supportMessages.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportMessages.model.js","sourceRoot":"","sources":["../../../src/db/models/supportMessages.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,2EAGyC;AAGzC,MAAa,mBAAoB,SAAQ,IAAA,8CAAc,EACrD,sCAAc,EACd,gDAAwB,CACzB;IAEC,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,WAAmB;QACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK;aAC3B,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;aAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;aAC7D,KAAK,EAAE;aACP,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACF;AAbD,kDAaC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SupportTicketEvent } from "../tables/supportTicketEvents.table";
|
|
2
|
+
declare const SupportTicketEventModel_base: {
|
|
3
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
4
|
+
readonly table: import("@antelopejs/interface-database").Table<SupportTicketEvent>;
|
|
5
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
6
|
+
get(id: string): PromiseLike<SupportTicketEvent | undefined>;
|
|
7
|
+
getBy(index: keyof SupportTicketEvent, ...keys: any[]): PromiseLike<SupportTicketEvent[]>;
|
|
8
|
+
getAll(): PromiseLike<SupportTicketEvent[]>;
|
|
9
|
+
insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicketEvent> | import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicketEvent>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
|
|
10
|
+
update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicketEvent>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
11
|
+
update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicketEvent>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
12
|
+
delete(id: string): Promise<number>;
|
|
13
|
+
};
|
|
14
|
+
readonly schemaName: string;
|
|
15
|
+
fromPlainData(obj: any): SupportTicketEvent;
|
|
16
|
+
fromDatabase(obj: any): SupportTicketEvent | undefined;
|
|
17
|
+
toDatabase(obj: any): Record<string, any>;
|
|
18
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
19
|
+
};
|
|
20
|
+
export declare class SupportTicketEventModel extends SupportTicketEventModel_base {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SupportTicketEventModel = void 0;
|
|
4
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
|
+
const supportTicketEvents_table_1 = require("../tables/supportTicketEvents.table");
|
|
6
|
+
class SupportTicketEventModel extends (0, interface_database_decorators_1.BasicDataModel)(supportTicketEvents_table_1.SupportTicketEvent, supportTicketEvents_table_1.supportTicketEventsTableName) {
|
|
7
|
+
}
|
|
8
|
+
exports.SupportTicketEventModel = SupportTicketEventModel;
|
|
9
|
+
//# sourceMappingURL=supportTicketEvents.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportTicketEvents.model.js","sourceRoot":"","sources":["../../../src/db/models/supportTicketEvents.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,mFAG6C;AAG7C,MAAa,uBAAwB,SAAQ,IAAA,8CAAc,EACzD,8CAAkB,EAClB,wDAA4B,CAC7B;CAAG;AAHJ,0DAGI"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AtomicMutationOutcome } from "@antelopejs/interface-database";
|
|
2
|
+
import { SupportTicket } from "../tables/supportTickets.table";
|
|
3
|
+
declare const SupportTicketModel_base: {
|
|
4
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
5
|
+
readonly table: import("@antelopejs/interface-database").Table<SupportTicket>;
|
|
6
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
7
|
+
get(id: string): PromiseLike<SupportTicket | undefined>;
|
|
8
|
+
getBy(index: keyof SupportTicket, ...keys: any[]): PromiseLike<SupportTicket[]>;
|
|
9
|
+
getAll(): PromiseLike<SupportTicket[]>;
|
|
10
|
+
insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicket> | import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicket>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
|
|
11
|
+
update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicket>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
12
|
+
update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<SupportTicket>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
13
|
+
delete(id: string): Promise<number>;
|
|
14
|
+
};
|
|
15
|
+
readonly schemaName: string;
|
|
16
|
+
fromPlainData(obj: any): SupportTicket;
|
|
17
|
+
fromDatabase(obj: any): SupportTicket | undefined;
|
|
18
|
+
toDatabase(obj: any): Record<string, any>;
|
|
19
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
20
|
+
};
|
|
21
|
+
export declare class SupportTicketModel extends SupportTicketModel_base {
|
|
22
|
+
publish(ticket: SupportTicket, expectedMutationId: string): Promise<AtomicMutationOutcome>;
|
|
23
|
+
settlePublication(id: string, operationId: string): Promise<AtomicMutationOutcome>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SupportTicketModel = void 0;
|
|
4
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
|
+
const supportTickets_table_1 = require("../tables/supportTickets.table");
|
|
6
|
+
class SupportTicketModel extends (0, interface_database_decorators_1.BasicDataModel)(supportTickets_table_1.SupportTicket, supportTickets_table_1.supportTicketsTableName) {
|
|
7
|
+
publish(ticket, expectedMutationId) {
|
|
8
|
+
const { _id, mutationId, ...patch } = ticket;
|
|
9
|
+
return this.table
|
|
10
|
+
.atomicMutation(_id, {
|
|
11
|
+
type: "update",
|
|
12
|
+
revisionField: "mutationId",
|
|
13
|
+
expectedRevision: expectedMutationId,
|
|
14
|
+
nextRevision: mutationId,
|
|
15
|
+
patch,
|
|
16
|
+
})
|
|
17
|
+
.run();
|
|
18
|
+
}
|
|
19
|
+
settlePublication(id, operationId) {
|
|
20
|
+
return this.table
|
|
21
|
+
.atomicMutation(id, {
|
|
22
|
+
type: "update",
|
|
23
|
+
revisionField: "mutationId",
|
|
24
|
+
expectedRevision: operationId,
|
|
25
|
+
nextRevision: `${operationId}:settled`,
|
|
26
|
+
patch: { publicationId: null },
|
|
27
|
+
})
|
|
28
|
+
.run();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.SupportTicketModel = SupportTicketModel;
|
|
32
|
+
//# sourceMappingURL=supportTickets.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportTickets.model.js","sourceRoot":"","sources":["../../../src/db/models/supportTickets.model.ts"],"names":[],"mappings":";;;AACA,6FAA2E;AAC3E,yEAGwC;AAMxC,MAAa,kBAAmB,SAAQ,IAAA,8CAAc,EACpD,oCAAa,EACb,8CAAuB,CACxB;IAEC,OAAO,CACL,MAAqB,EACrB,kBAA0B;QAE1B,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK;aACd,cAAc,CAAC,GAAG,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,YAAY;YAC3B,gBAAgB,EAAE,kBAAkB;YACpC,YAAY,EAAE,UAAU;YACxB,KAAK;SACN,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;IAGD,iBAAiB,CACf,EAAU,EACV,WAAmB;QAEnB,OAAO,IAAI,CAAC,KAAK;aACd,cAAc,CAAC,EAAE,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,YAAY;YAC3B,gBAAgB,EAAE,WAAW;YAC7B,YAAY,EAAE,GAAG,WAAW,UAAU;YACtC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;SAC/B,CAAC;aACD,GAAG,EAAE,CAAC;IACX,CAAC;CACF;AApCD,gDAoCC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TenantBillingInfo } from "../tables/tenantBillingInfo.table";
|
|
2
|
+
declare const TenantBillingInfoModel_base: {
|
|
3
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
4
|
+
readonly table: import("@antelopejs/interface-database").Table<TenantBillingInfo>;
|
|
5
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
6
|
+
get(id: string): PromiseLike<TenantBillingInfo | undefined>;
|
|
7
|
+
getBy(index: keyof TenantBillingInfo, ...keys: any[]): PromiseLike<TenantBillingInfo[]>;
|
|
8
|
+
getAll(): PromiseLike<TenantBillingInfo[]>;
|
|
9
|
+
insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingInfo> | import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingInfo>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
|
|
10
|
+
update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingInfo>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
11
|
+
update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingInfo>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
12
|
+
delete(id: string): Promise<number>;
|
|
13
|
+
};
|
|
14
|
+
readonly schemaName: string;
|
|
15
|
+
fromPlainData(obj: any): TenantBillingInfo;
|
|
16
|
+
fromDatabase(obj: any): TenantBillingInfo | undefined;
|
|
17
|
+
toDatabase(obj: any): Record<string, any>;
|
|
18
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
19
|
+
};
|
|
20
|
+
export declare class TenantBillingInfoModel extends TenantBillingInfoModel_base {
|
|
21
|
+
findOne(): Promise<TenantBillingInfo | undefined>;
|
|
22
|
+
deleteAll(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantBillingInfoModel = void 0;
|
|
4
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
|
+
const tenantBillingInfo_table_1 = require("../tables/tenantBillingInfo.table");
|
|
6
|
+
class TenantBillingInfoModel extends (0, interface_database_decorators_1.BasicDataModel)(tenantBillingInfo_table_1.TenantBillingInfo, tenantBillingInfo_table_1.tenantBillingInfoTableName) {
|
|
7
|
+
async findOne() {
|
|
8
|
+
const row = await this.table
|
|
9
|
+
.orderBy("updatedAt", "desc")
|
|
10
|
+
.nth(0)
|
|
11
|
+
.default(undefined)
|
|
12
|
+
.run();
|
|
13
|
+
return row ? TenantBillingInfoModel.fromDatabase(row) : undefined;
|
|
14
|
+
}
|
|
15
|
+
async deleteAll() {
|
|
16
|
+
await this.table.delete().run();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TenantBillingInfoModel = TenantBillingInfoModel;
|
|
20
|
+
//# sourceMappingURL=tenantBillingInfo.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenantBillingInfo.model.js","sourceRoot":"","sources":["../../../src/db/models/tenantBillingInfo.model.ts"],"names":[],"mappings":";;;AAAA,6FAA2E;AAC3E,+EAG2C;AAG3C,MAAa,sBAAuB,SAAQ,IAAA,8CAAc,EACxD,2CAAiB,EACjB,oDAA0B,CAC3B;IACC,KAAK,CAAC,OAAO;QACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK;aACzB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,SAAS,CAAC;aAClB,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAClC,CAAC;CACF;AAhBD,wDAgBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type BillingState, TenantBillingState } from "../tables/tenantBillingState.table";
|
|
2
|
+
declare const TenantBillingStateModel_base: {
|
|
3
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
4
|
+
readonly table: import("@antelopejs/interface-database").Table<TenantBillingState>;
|
|
5
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
6
|
+
get(id: string): PromiseLike<TenantBillingState | undefined>;
|
|
7
|
+
getBy(index: keyof TenantBillingState, ...keys: any[]): PromiseLike<TenantBillingState[]>;
|
|
8
|
+
getAll(): PromiseLike<TenantBillingState[]>;
|
|
9
|
+
insert(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingState> | import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingState>[], options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<string[]>;
|
|
10
|
+
update(id: string, obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingState>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
11
|
+
update(obj: import("@antelopejs/interface-database-decorators").DeepPartial<TenantBillingState>, options?: import("@antelopejs/interface-database-decorators").ValidateOptions): Promise<number>;
|
|
12
|
+
delete(id: string): Promise<number>;
|
|
13
|
+
};
|
|
14
|
+
readonly schemaName: string;
|
|
15
|
+
fromPlainData(obj: any): TenantBillingState;
|
|
16
|
+
fromDatabase(obj: any): TenantBillingState | undefined;
|
|
17
|
+
toDatabase(obj: any): Record<string, any>;
|
|
18
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
19
|
+
};
|
|
20
|
+
export declare class TenantBillingStateModel extends TenantBillingStateModel_base {
|
|
21
|
+
findByTenant(tenantId: string): Promise<TenantBillingState | undefined>;
|
|
22
|
+
upsertForTenant(tenantId: string, billingState: BillingState, existing: TenantBillingState | undefined): Promise<boolean>;
|
|
23
|
+
private publish;
|
|
24
|
+
private insertPublication;
|
|
25
|
+
countByState(billingState: BillingState): Promise<number>;
|
|
26
|
+
deleteForTenant(tenantId: string): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TenantBillingStateModel = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
6
|
+
const tenantBillingState_table_1 = require("../tables/tenantBillingState.table");
|
|
7
|
+
const DELETE_ATTEMPTS = 3;
|
|
8
|
+
class TenantBillingStateModel extends (0, interface_database_decorators_1.BasicDataModel)(tenantBillingState_table_1.TenantBillingState, tenantBillingState_table_1.tenantBillingStateTableName) {
|
|
9
|
+
async findByTenant(tenantId) {
|
|
10
|
+
return this.get(tenantId);
|
|
11
|
+
}
|
|
12
|
+
async upsertForTenant(tenantId, billingState, existing) {
|
|
13
|
+
if (existing?.deletedAt)
|
|
14
|
+
return true;
|
|
15
|
+
return this.publish(tenantId, existing, billingState, null);
|
|
16
|
+
}
|
|
17
|
+
async publish(tenantId, existing, billingState, deletedAt) {
|
|
18
|
+
const revision = (0, node_crypto_1.randomUUID)();
|
|
19
|
+
const patch = { tenantId, billingState, updatedAt: new Date(), deletedAt };
|
|
20
|
+
if (!existing)
|
|
21
|
+
return this.insertPublication({ _id: tenantId, ...patch, revision });
|
|
22
|
+
const outcome = await this.table
|
|
23
|
+
.atomicMutation(tenantId, {
|
|
24
|
+
type: "update",
|
|
25
|
+
revisionField: "revision",
|
|
26
|
+
expectedRevision: existing.revision,
|
|
27
|
+
nextRevision: revision,
|
|
28
|
+
patch,
|
|
29
|
+
})
|
|
30
|
+
.run();
|
|
31
|
+
if (outcome === "unknown")
|
|
32
|
+
throw new Error("Billing publication outcome is unknown");
|
|
33
|
+
return outcome === "applied";
|
|
34
|
+
}
|
|
35
|
+
async insertPublication(row) {
|
|
36
|
+
try {
|
|
37
|
+
await this.insert(row);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const current = await this.get(row._id);
|
|
41
|
+
if (!current)
|
|
42
|
+
throw error;
|
|
43
|
+
return current.revision === row.revision;
|
|
44
|
+
}
|
|
45
|
+
const current = await this.get(row._id);
|
|
46
|
+
if (!current)
|
|
47
|
+
throw new Error("Billing publication was not persisted");
|
|
48
|
+
return current.revision === row.revision;
|
|
49
|
+
}
|
|
50
|
+
async countByState(billingState) {
|
|
51
|
+
return this.table
|
|
52
|
+
.getAll(billingState, "billingState")
|
|
53
|
+
.filter((row) => row
|
|
54
|
+
.key("deletedAt")
|
|
55
|
+
.eq(null)
|
|
56
|
+
.and(row.key("_id").eq(row.key("tenantId"))))
|
|
57
|
+
.count()
|
|
58
|
+
.run();
|
|
59
|
+
}
|
|
60
|
+
async deleteForTenant(tenantId) {
|
|
61
|
+
for (let attempt = 0; attempt < DELETE_ATTEMPTS; attempt++) {
|
|
62
|
+
const existing = await this.get(tenantId);
|
|
63
|
+
if (existing?.deletedAt)
|
|
64
|
+
return;
|
|
65
|
+
if (await this.publish(tenantId, existing, "cancelled", new Date()))
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
throw new Error("Billing deletion conflicted with a concurrent publication");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.TenantBillingStateModel = TenantBillingStateModel;
|
|
72
|
+
//# sourceMappingURL=tenantBillingState.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenantBillingState.model.js","sourceRoot":"","sources":["../../../src/db/models/tenantBillingState.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { AtomicMutationOutcome } from "@antelopejs/interface-database";
|
|
2
|
+
import { type DeepPartial, type ValidateOptions } from "@antelopejs/interface-database-decorators";
|
|
3
|
+
import { TenantSubscription, type SubscriptionCronNotification, type SubscriptionTransition, type TenantSubscriptionStatus } from "../tables/tenantSubscriptions.table";
|
|
4
|
+
declare const TenantSubscriptionModel_base: {
|
|
5
|
+
new (database: import("@antelopejs/interface-database").SchemaInstance<any>): {
|
|
6
|
+
readonly table: import("@antelopejs/interface-database").Table<TenantSubscription>;
|
|
7
|
+
readonly database: import("@antelopejs/interface-database").SchemaInstance<any>;
|
|
8
|
+
get(id: string): PromiseLike<TenantSubscription | undefined>;
|
|
9
|
+
getBy(index: keyof TenantSubscription, ...keys: any[]): PromiseLike<TenantSubscription[]>;
|
|
10
|
+
getAll(): PromiseLike<TenantSubscription[]>;
|
|
11
|
+
insert(obj: DeepPartial<TenantSubscription> | DeepPartial<TenantSubscription>[], options?: ValidateOptions): Promise<string[]>;
|
|
12
|
+
update(id: string, obj: DeepPartial<TenantSubscription>, options?: ValidateOptions): Promise<number>;
|
|
13
|
+
update(obj: DeepPartial<TenantSubscription>, options?: ValidateOptions): Promise<number>;
|
|
14
|
+
delete(id: string): Promise<number>;
|
|
15
|
+
};
|
|
16
|
+
readonly schemaName: string;
|
|
17
|
+
fromPlainData(obj: any): TenantSubscription;
|
|
18
|
+
fromDatabase(obj: any): TenantSubscription | undefined;
|
|
19
|
+
toDatabase(obj: any): Record<string, any>;
|
|
20
|
+
validate(obj: unknown, options?: import("@antelopejs/interface-database-decorators").ValidateInputOptions): import("@antelopejs/interface-database-decorators").ValidationResult;
|
|
21
|
+
};
|
|
22
|
+
export declare class TenantSubscriptionModel extends TenantSubscriptionModel_base {
|
|
23
|
+
insert(rows: DeepPartial<TenantSubscription> | DeepPartial<TenantSubscription>[], options?: ValidateOptions): Promise<string[]>;
|
|
24
|
+
mutateRevision(current: TenantSubscription, patch: DeepPartial<TenantSubscription>): Promise<AtomicMutationOutcome>;
|
|
25
|
+
update(id: string, patch: DeepPartial<TenantSubscription>, options?: ValidateOptions): Promise<number>;
|
|
26
|
+
update(patch: DeepPartial<TenantSubscription>, options?: ValidateOptions): Promise<number>;
|
|
27
|
+
beginTransition(current: TenantSubscription, intent: SubscriptionTransition): Promise<void>;
|
|
28
|
+
updateDuringTransition(id: string, operationId: string, patch: DeepPartial<TenantSubscription>): Promise<void>;
|
|
29
|
+
completeTransition(id: string, operationId: string, patch: DeepPartial<TenantSubscription>): Promise<void>;
|
|
30
|
+
findOne(): Promise<TenantSubscription | undefined>;
|
|
31
|
+
findOneByStripeCustomer(stripeCustomerId: string): Promise<TenantSubscription | undefined>;
|
|
32
|
+
findByCardFingerprint(cardFingerprint: string): Promise<TenantSubscription[]>;
|
|
33
|
+
findByPlan(planId: string): Promise<TenantSubscription[]>;
|
|
34
|
+
countByPlan(planId: string): Promise<number>;
|
|
35
|
+
claimSelfRefund(subscriptionId: string): Promise<boolean>;
|
|
36
|
+
releaseSelfRefund(subscriptionId: string): Promise<void>;
|
|
37
|
+
findByStatus(status: TenantSubscriptionStatus): Promise<TenantSubscription[]>;
|
|
38
|
+
findCancelledOrPastDue(): Promise<TenantSubscription[]>;
|
|
39
|
+
findCancelledUpdatedBefore(cutoff: Date): Promise<TenantSubscription[]>;
|
|
40
|
+
findPastDueSinceBefore(cutoff: Date): Promise<TenantSubscription[]>;
|
|
41
|
+
suspendPastDue(subscriptionId: string, cutoff: Date): Promise<void>;
|
|
42
|
+
findExpiredFreeBefore(cutoff: Date): Promise<TenantSubscription[]>;
|
|
43
|
+
findFreeEndingBetween(start: Date, end: Date): Promise<TenantSubscription[]>;
|
|
44
|
+
expireFree(subscriptionId: string, cutoff: Date): Promise<void>;
|
|
45
|
+
findCronNotifications(kind: SubscriptionCronNotification["kind"]): Promise<TenantSubscription[]>;
|
|
46
|
+
completeCronNotification(subscription: TenantSubscription): Promise<void>;
|
|
47
|
+
beginCancelledDeletion(subscriptionId: string, cutoff: Date): Promise<TenantSubscription | undefined>;
|
|
48
|
+
finishDeletion(subscription: TenantSubscription): Promise<void>;
|
|
49
|
+
deleteAll(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|