@revojs/billing 0.2.45 → 0.2.47
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.d.ts +133 -0
- package/dist/index.js +133 -0
- package/dist/module/index.d.ts +2 -0
- package/dist/module/index.js +26 -0
- package/dist/plugins/index.server.d.ts +4 -0
- package/dist/plugins/index.server.js +17 -0
- package/dist/providers/stripe.d.ts +68 -0
- package/dist/providers/stripe.js +194 -0
- package/dist/routes/billing/[provider]/post.d.ts +4 -0
- package/dist/routes/billing/[provider]/post.js +13 -0
- package/dist/storage/mysql.d.ts +131 -0
- package/dist/storage/mysql.js +59 -0
- package/dist/storage/postgresql.d.ts +131 -0
- package/dist/storage/postgresql.js +59 -0
- package/dist/storage/sqlite.d.ts +131 -0
- package/dist/storage/sqlite.js +59 -0
- package/dist/types/index.d.ts +8 -0
- package/package.json +55 -55
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type InferInsertModel, type InferSelectModel } from "@revojs/storage";
|
|
2
|
+
import type { Scope } from "revojs";
|
|
3
|
+
import type { BillingStorage, SubscriptionStatus } from "../index";
|
|
4
|
+
export type Customer = InferSelectModel<typeof customers>;
|
|
5
|
+
export type Subscription = InferSelectModel<typeof subscriptions>;
|
|
6
|
+
export type CustomerInsert = InferInsertModel<typeof customers>;
|
|
7
|
+
export type SubscriptionInsert = InferInsertModel<typeof subscriptions>;
|
|
8
|
+
export declare function useBillingStorage(scope: Scope, database?: import("@revojs/storage").Database<{
|
|
9
|
+
customers: import("@revojs/storage/protocols/mysql").MysqlTable<"Customers", {
|
|
10
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
11
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
12
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
13
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
14
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
15
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
16
|
+
}> & {
|
|
17
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
18
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
19
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
20
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
21
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
22
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
23
|
+
};
|
|
24
|
+
subscriptions: import("@revojs/storage/protocols/mysql").MysqlTable<"Subscriptions", {
|
|
25
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
26
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
27
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
28
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
29
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
30
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
31
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
32
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
33
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
34
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
35
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
36
|
+
}> & {
|
|
37
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
38
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
39
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
40
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
41
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
42
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
43
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
44
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
45
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
46
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
47
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
48
|
+
};
|
|
49
|
+
}>): BillingStorage;
|
|
50
|
+
export declare const customers: import("@revojs/storage/protocols/mysql").MysqlTable<"Customers", {
|
|
51
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
52
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
53
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
54
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
55
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
56
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
57
|
+
}> & {
|
|
58
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
59
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
60
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
61
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
62
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
63
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
64
|
+
};
|
|
65
|
+
export declare const subscriptions: import("@revojs/storage/protocols/mysql").MysqlTable<"Subscriptions", {
|
|
66
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
67
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
68
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
69
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
70
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
71
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
72
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
73
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
74
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
75
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
76
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
77
|
+
}> & {
|
|
78
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
79
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
80
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
81
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
82
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
83
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
84
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
85
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
86
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
87
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
88
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
89
|
+
};
|
|
90
|
+
export declare const billingSchema: {
|
|
91
|
+
customers: import("@revojs/storage/protocols/mysql").MysqlTable<"Customers", {
|
|
92
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
93
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
94
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
95
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
96
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
97
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
98
|
+
}> & {
|
|
99
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
100
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
101
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
102
|
+
reference: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
103
|
+
email: import("@revojs/storage/protocols/mysql").TextColumn & Record<"notNull", never>;
|
|
104
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
105
|
+
};
|
|
106
|
+
subscriptions: import("@revojs/storage/protocols/mysql").MysqlTable<"Subscriptions", {
|
|
107
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
108
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
109
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
110
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
111
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
112
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
113
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
114
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
115
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
116
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
117
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
118
|
+
}> & {
|
|
119
|
+
id: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
120
|
+
provider: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
121
|
+
externalId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
122
|
+
status: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
123
|
+
price: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never>;
|
|
124
|
+
quantity: import("@revojs/storage/protocols/mysql").IntColumn & Record<"notNull", never>;
|
|
125
|
+
currentPeriodEnd: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never>;
|
|
126
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/mysql").BooleanColumn & Record<"notNull", never>;
|
|
127
|
+
updatedAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
128
|
+
createdAt: import("@revojs/storage/protocols/mysql").DatetimeColumn & Record<"notNull", never> & Record<"default", never>;
|
|
129
|
+
customerId: import("@revojs/storage/protocols/mysql").VarcharColumn & Record<"notNull", never> & Record<"references", never>;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { and, asc, equals, useReferenceStorage } from "@revojs/storage";
|
|
2
|
+
import { boolean, datetime, index, int, table, text, unique, varchar } from "@revojs/storage/protocols/mysql";
|
|
3
|
+
//#region src/storage/mysql.ts
|
|
4
|
+
function useBillingStorage(scope, database = useReferenceStorage(scope, billingSchema)) {
|
|
5
|
+
const schema = database.$schema;
|
|
6
|
+
return {
|
|
7
|
+
async getCustomerByReference(provider, reference) {
|
|
8
|
+
return database.select(schema.customers).from(schema.customers).where(and(equals(schema.customers.provider, provider), equals(schema.customers.reference, reference))).first();
|
|
9
|
+
},
|
|
10
|
+
async getCustomerByExternalId(provider, externalId) {
|
|
11
|
+
return database.select(schema.customers).from(schema.customers).where(and(equals(schema.customers.provider, provider), equals(schema.customers.externalId, externalId))).first();
|
|
12
|
+
},
|
|
13
|
+
async createCustomer(customer) {
|
|
14
|
+
await database.insert(schema.customers).values(customer).run();
|
|
15
|
+
},
|
|
16
|
+
async getSubscriptionByExternalId(provider, externalId) {
|
|
17
|
+
return database.select(schema.subscriptions).from(schema.subscriptions).where(and(equals(schema.subscriptions.provider, provider), equals(schema.subscriptions.externalId, externalId))).first();
|
|
18
|
+
},
|
|
19
|
+
async getSubscriptions(customerId) {
|
|
20
|
+
return database.select(schema.subscriptions).from(schema.subscriptions).where(equals(schema.subscriptions.customerId, customerId)).orderBy(asc(schema.subscriptions.createdAt), asc(schema.subscriptions.id));
|
|
21
|
+
},
|
|
22
|
+
async createSubscription(subscription) {
|
|
23
|
+
await database.insert(schema.subscriptions).values(subscription).run();
|
|
24
|
+
},
|
|
25
|
+
async updateSubscription(id, values) {
|
|
26
|
+
await database.update(schema.subscriptions).set({
|
|
27
|
+
...values,
|
|
28
|
+
updatedAt: /* @__PURE__ */ new Date()
|
|
29
|
+
}).where(equals(schema.subscriptions.id, id)).run();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
var customers = table("Customers", {
|
|
34
|
+
id: varchar("Id", { length: 36 }).primaryKey().default(() => crypto.randomUUID()),
|
|
35
|
+
provider: varchar("Provider", { length: 64 }).notNull(),
|
|
36
|
+
externalId: varchar("ExternalId", { length: 255 }).notNull(),
|
|
37
|
+
reference: varchar("Reference", { length: 255 }).notNull(),
|
|
38
|
+
email: text("Email").notNull(),
|
|
39
|
+
createdAt: datetime("CreatedAt").notNull().default(() => /* @__PURE__ */ new Date())
|
|
40
|
+
}, (columns) => [unique(columns.provider, columns.externalId), unique(columns.provider, columns.reference)]);
|
|
41
|
+
var subscriptions = table("Subscriptions", {
|
|
42
|
+
id: varchar("Id", { length: 36 }).primaryKey().default(() => crypto.randomUUID()),
|
|
43
|
+
provider: varchar("Provider", { length: 64 }).notNull(),
|
|
44
|
+
externalId: varchar("ExternalId", { length: 255 }).notNull(),
|
|
45
|
+
status: varchar("Status", { length: 32 }).notNull().type(),
|
|
46
|
+
price: varchar("Price", { length: 255 }).notNull(),
|
|
47
|
+
quantity: int("Quantity").notNull(),
|
|
48
|
+
currentPeriodEnd: datetime("CurrentPeriodEnd").notNull(),
|
|
49
|
+
cancelAtPeriodEnd: boolean("CancelAtPeriodEnd").notNull(),
|
|
50
|
+
updatedAt: datetime("UpdatedAt").notNull().default(() => /* @__PURE__ */ new Date()),
|
|
51
|
+
createdAt: datetime("CreatedAt").notNull().default(() => /* @__PURE__ */ new Date()),
|
|
52
|
+
customerId: varchar("CustomerId", { length: 36 }).notNull().references(() => customers.id, { onDelete: "cascade" })
|
|
53
|
+
}, (columns) => [unique(columns.provider, columns.externalId), index(columns.customerId)]);
|
|
54
|
+
var billingSchema = {
|
|
55
|
+
customers,
|
|
56
|
+
subscriptions
|
|
57
|
+
};
|
|
58
|
+
//#endregion
|
|
59
|
+
export { billingSchema, customers, subscriptions, useBillingStorage };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type InferInsertModel, type InferSelectModel } from "@revojs/storage";
|
|
2
|
+
import type { Scope } from "revojs";
|
|
3
|
+
import type { BillingStorage, SubscriptionStatus } from "../index";
|
|
4
|
+
export type Customer = InferSelectModel<typeof customers>;
|
|
5
|
+
export type Subscription = InferSelectModel<typeof subscriptions>;
|
|
6
|
+
export type CustomerInsert = InferInsertModel<typeof customers>;
|
|
7
|
+
export type SubscriptionInsert = InferInsertModel<typeof subscriptions>;
|
|
8
|
+
export declare function useBillingStorage(scope: Scope, database?: import("@revojs/storage").Database<{
|
|
9
|
+
customers: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Customers", {
|
|
10
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
11
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
12
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
13
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
14
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
15
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
16
|
+
}> & {
|
|
17
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
18
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
19
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
20
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
21
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
22
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
23
|
+
};
|
|
24
|
+
subscriptions: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Subscriptions", {
|
|
25
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
26
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
27
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
28
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
29
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
30
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
31
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
32
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
33
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
34
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
35
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
36
|
+
}> & {
|
|
37
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
38
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
39
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
40
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
41
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
42
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
43
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
44
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
45
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
46
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
47
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
48
|
+
};
|
|
49
|
+
}>): BillingStorage;
|
|
50
|
+
export declare const customers: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Customers", {
|
|
51
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
52
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
53
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
54
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
55
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
56
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
57
|
+
}> & {
|
|
58
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
59
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
60
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
61
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
62
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
63
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
64
|
+
};
|
|
65
|
+
export declare const subscriptions: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Subscriptions", {
|
|
66
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
67
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
68
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
69
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
70
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
71
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
72
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
73
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
74
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
75
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
76
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
77
|
+
}> & {
|
|
78
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
79
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
80
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
81
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
82
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
83
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
84
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
85
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
86
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
87
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
88
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
89
|
+
};
|
|
90
|
+
export declare const billingSchema: {
|
|
91
|
+
customers: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Customers", {
|
|
92
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
93
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
94
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
95
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
96
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
97
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
98
|
+
}> & {
|
|
99
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
100
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
101
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
102
|
+
reference: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
103
|
+
email: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
104
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
105
|
+
};
|
|
106
|
+
subscriptions: import("@revojs/storage/protocols/postgresql").PostgresqlTable<"Subscriptions", {
|
|
107
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
108
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
109
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
110
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
111
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
112
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
113
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
114
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
115
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
116
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
117
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
118
|
+
}> & {
|
|
119
|
+
id: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"primaryKey", never> & Record<"default", never>;
|
|
120
|
+
provider: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
121
|
+
externalId: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
122
|
+
status: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
123
|
+
price: import("@revojs/storage/protocols/postgresql").TextColumn & Record<"notNull", never>;
|
|
124
|
+
quantity: import("@revojs/storage/protocols/postgresql").IntegerColumn & Record<"notNull", never>;
|
|
125
|
+
currentPeriodEnd: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never>;
|
|
126
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/postgresql").BooleanColumn & Record<"notNull", never>;
|
|
127
|
+
updatedAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
128
|
+
createdAt: import("@revojs/storage/protocols/postgresql").TimestampColumn & Record<"notNull", never> & Record<"default", never>;
|
|
129
|
+
customerId: import("@revojs/storage/protocols/postgresql").UuidColumn & Record<"notNull", never> & Record<"references", never>;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { and, asc, equals, useReferenceStorage } from "@revojs/storage";
|
|
2
|
+
import { boolean, index, integer, table, text, timestamp, unique, uuid } from "@revojs/storage/protocols/postgresql";
|
|
3
|
+
//#region src/storage/postgresql.ts
|
|
4
|
+
function useBillingStorage(scope, database = useReferenceStorage(scope, billingSchema)) {
|
|
5
|
+
const schema = database.$schema;
|
|
6
|
+
return {
|
|
7
|
+
async getCustomerByReference(provider, reference) {
|
|
8
|
+
return database.select(schema.customers).from(schema.customers).where(and(equals(schema.customers.provider, provider), equals(schema.customers.reference, reference))).first();
|
|
9
|
+
},
|
|
10
|
+
async getCustomerByExternalId(provider, externalId) {
|
|
11
|
+
return database.select(schema.customers).from(schema.customers).where(and(equals(schema.customers.provider, provider), equals(schema.customers.externalId, externalId))).first();
|
|
12
|
+
},
|
|
13
|
+
async createCustomer(customer) {
|
|
14
|
+
await database.insert(schema.customers).values(customer).run();
|
|
15
|
+
},
|
|
16
|
+
async getSubscriptionByExternalId(provider, externalId) {
|
|
17
|
+
return database.select(schema.subscriptions).from(schema.subscriptions).where(and(equals(schema.subscriptions.provider, provider), equals(schema.subscriptions.externalId, externalId))).first();
|
|
18
|
+
},
|
|
19
|
+
async getSubscriptions(customerId) {
|
|
20
|
+
return database.select(schema.subscriptions).from(schema.subscriptions).where(equals(schema.subscriptions.customerId, customerId)).orderBy(asc(schema.subscriptions.createdAt), asc(schema.subscriptions.id));
|
|
21
|
+
},
|
|
22
|
+
async createSubscription(subscription) {
|
|
23
|
+
await database.insert(schema.subscriptions).values(subscription).run();
|
|
24
|
+
},
|
|
25
|
+
async updateSubscription(id, values) {
|
|
26
|
+
await database.update(schema.subscriptions).set({
|
|
27
|
+
...values,
|
|
28
|
+
updatedAt: /* @__PURE__ */ new Date()
|
|
29
|
+
}).where(equals(schema.subscriptions.id, id)).run();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
var customers = table("Customers", {
|
|
34
|
+
id: uuid("Id").primaryKey().default(() => crypto.randomUUID()),
|
|
35
|
+
provider: text("Provider").notNull(),
|
|
36
|
+
externalId: text("ExternalId").notNull(),
|
|
37
|
+
reference: text("Reference").notNull(),
|
|
38
|
+
email: text("Email").notNull(),
|
|
39
|
+
createdAt: timestamp("CreatedAt").notNull().default(() => /* @__PURE__ */ new Date())
|
|
40
|
+
}, (columns) => [unique(columns.provider, columns.externalId), unique(columns.provider, columns.reference)]);
|
|
41
|
+
var subscriptions = table("Subscriptions", {
|
|
42
|
+
id: uuid("Id").primaryKey().default(() => crypto.randomUUID()),
|
|
43
|
+
provider: text("Provider").notNull(),
|
|
44
|
+
externalId: text("ExternalId").notNull(),
|
|
45
|
+
status: text("Status").notNull().type(),
|
|
46
|
+
price: text("Price").notNull(),
|
|
47
|
+
quantity: integer("Quantity").notNull(),
|
|
48
|
+
currentPeriodEnd: timestamp("CurrentPeriodEnd").notNull(),
|
|
49
|
+
cancelAtPeriodEnd: boolean("CancelAtPeriodEnd").notNull(),
|
|
50
|
+
updatedAt: timestamp("UpdatedAt").notNull().default(() => /* @__PURE__ */ new Date()),
|
|
51
|
+
createdAt: timestamp("CreatedAt").notNull().default(() => /* @__PURE__ */ new Date()),
|
|
52
|
+
customerId: uuid("CustomerId").notNull().references(() => customers.id, { onDelete: "cascade" })
|
|
53
|
+
}, (columns) => [unique(columns.provider, columns.externalId), index(columns.customerId)]);
|
|
54
|
+
var billingSchema = {
|
|
55
|
+
customers,
|
|
56
|
+
subscriptions
|
|
57
|
+
};
|
|
58
|
+
//#endregion
|
|
59
|
+
export { billingSchema, customers, subscriptions, useBillingStorage };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type InferInsertModel, type InferSelectModel } from "@revojs/storage";
|
|
2
|
+
import type { Scope } from "revojs";
|
|
3
|
+
import type { BillingStorage, SubscriptionStatus } from "../index";
|
|
4
|
+
export type Customer = InferSelectModel<typeof customers>;
|
|
5
|
+
export type Subscription = InferSelectModel<typeof subscriptions>;
|
|
6
|
+
export type CustomerInsert = InferInsertModel<typeof customers>;
|
|
7
|
+
export type SubscriptionInsert = InferInsertModel<typeof subscriptions>;
|
|
8
|
+
export declare function useBillingStorage(scope: Scope, database?: import("@revojs/storage").Database<{
|
|
9
|
+
customers: import("@revojs/storage/protocols/sqlite").SqliteTable<"Customers", {
|
|
10
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
11
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
12
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
13
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
14
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
15
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
16
|
+
}> & {
|
|
17
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
18
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
19
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
20
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
21
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
22
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
23
|
+
};
|
|
24
|
+
subscriptions: import("@revojs/storage/protocols/sqlite").SqliteTable<"Subscriptions", {
|
|
25
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
26
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
27
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
28
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
29
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
30
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
31
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
32
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
33
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
34
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
35
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
36
|
+
}> & {
|
|
37
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
38
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
39
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
40
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
41
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
42
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
43
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
44
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
45
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
46
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
47
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
48
|
+
};
|
|
49
|
+
}>): BillingStorage;
|
|
50
|
+
export declare const customers: import("@revojs/storage/protocols/sqlite").SqliteTable<"Customers", {
|
|
51
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
52
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
53
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
54
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
55
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
56
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
57
|
+
}> & {
|
|
58
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
59
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
60
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
61
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
62
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
63
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
64
|
+
};
|
|
65
|
+
export declare const subscriptions: import("@revojs/storage/protocols/sqlite").SqliteTable<"Subscriptions", {
|
|
66
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
67
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
68
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
69
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
70
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
71
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
72
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
73
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
74
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
75
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
76
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
77
|
+
}> & {
|
|
78
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
79
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
80
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
81
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
82
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
83
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
84
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
85
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
86
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
87
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
88
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
89
|
+
};
|
|
90
|
+
export declare const billingSchema: {
|
|
91
|
+
customers: import("@revojs/storage/protocols/sqlite").SqliteTable<"Customers", {
|
|
92
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
93
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
94
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
95
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
96
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
97
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
98
|
+
}> & {
|
|
99
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
100
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
101
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
102
|
+
reference: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
103
|
+
email: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
104
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
105
|
+
};
|
|
106
|
+
subscriptions: import("@revojs/storage/protocols/sqlite").SqliteTable<"Subscriptions", {
|
|
107
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
108
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
109
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
110
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
111
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
112
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
113
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
114
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
115
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
116
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
117
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
118
|
+
}> & {
|
|
119
|
+
id: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"primaryKey", never> & Record<"default", never>;
|
|
120
|
+
provider: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
121
|
+
externalId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
122
|
+
status: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"$type", SubscriptionStatus>;
|
|
123
|
+
price: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never>;
|
|
124
|
+
quantity: import("@revojs/storage/protocols/sqlite").IntegerColumn<"number"> & Record<"notNull", never>;
|
|
125
|
+
currentPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never>;
|
|
126
|
+
cancelAtPeriodEnd: import("@revojs/storage/protocols/sqlite").IntegerColumn<"boolean"> & Record<"notNull", never>;
|
|
127
|
+
updatedAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
128
|
+
createdAt: import("@revojs/storage/protocols/sqlite").IntegerColumn<"timestamp_ms"> & Record<"notNull", never> & Record<"default", never>;
|
|
129
|
+
customerId: import("@revojs/storage/protocols/sqlite").TextColumn<"text"> & Record<"notNull", never> & Record<"references", never>;
|
|
130
|
+
};
|
|
131
|
+
};
|