@porulle/plugin-giftcards 0.63.0 → 0.65.0
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/services/gift-card-repository.d.ts +0 -4
- package/dist/services/gift-card-repository.d.ts.map +1 -1
- package/dist/services/gift-card-repository.js +0 -15
- package/dist/services/gift-card-service.d.ts +0 -1
- package/dist/services/gift-card-service.d.ts.map +1 -1
- package/dist/services/gift-card-service.js +0 -6
- package/package.json +4 -4
- package/src/services/gift-card-repository.ts +0 -25
- package/src/services/gift-card-service.ts +0 -6
|
@@ -24,7 +24,6 @@ export declare class GiftCardRepository {
|
|
|
24
24
|
findByCodeForUpdate(orgId: string, code: string, tx: Db): Promise<GiftCard | undefined>;
|
|
25
25
|
findByIdForUpdate(orgId: string, id: string, tx: Db): Promise<GiftCard | undefined>;
|
|
26
26
|
updateBalance(orgId: string, id: string, balance: number, status: GiftCardStatus, currentVersion: number, tx: Db): Promise<GiftCard>;
|
|
27
|
-
adjustBalance(orgId: string, id: string, delta: number, tx: Db): Promise<GiftCard>;
|
|
28
27
|
recordTransaction(data: {
|
|
29
28
|
giftCardId: string;
|
|
30
29
|
type: TransactionType;
|
|
@@ -38,8 +37,5 @@ export declare class GiftCardRepository {
|
|
|
38
37
|
listTransactions(giftCardId: string, ctx?: {
|
|
39
38
|
tx?: Db;
|
|
40
39
|
}): Promise<GiftCardTransaction[]>;
|
|
41
|
-
findTransactionsByOrderId(orderId: string, ctx?: {
|
|
42
|
-
tx?: Db;
|
|
43
|
-
}): Promise<GiftCardTransaction[]>;
|
|
44
40
|
}
|
|
45
41
|
//# sourceMappingURL=gift-card-repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gift-card-repository.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE1B,OAAO,CAAC,KAAK;IAMP,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQlE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAYzF,IAAI,CACR,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYhB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWpF,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASnF,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"gift-card-repository.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-repository.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAE1B,OAAO,CAAC,KAAK;IAMP,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQlE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAYzF,IAAI,CACR,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAYhB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAWpF,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASvF,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IASnF,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,MAAM,EACtB,EAAE,EAAE,EAAE,GACL,OAAO,CAAC,QAAQ,CAAC;IAgBd,iBAAiB,CACrB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EACD,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAQzB,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAQlC"}
|
|
@@ -85,14 +85,6 @@ export class GiftCardRepository {
|
|
|
85
85
|
.returning();
|
|
86
86
|
return rows[0];
|
|
87
87
|
}
|
|
88
|
-
async adjustBalance(orgId, id, delta, tx) {
|
|
89
|
-
const card = await this.findByIdForUpdate(orgId, id, tx);
|
|
90
|
-
if (!card)
|
|
91
|
-
throw new Error("Gift card not found");
|
|
92
|
-
const newBalance = Math.max(0, Math.min(card.initialAmount, card.balance + delta));
|
|
93
|
-
const newStatus = newBalance === 0 ? "exhausted" : "active";
|
|
94
|
-
return this.updateBalance(orgId, id, newBalance, newStatus, card.version, tx);
|
|
95
|
-
}
|
|
96
88
|
// ─── Transactions ───────────────────────────────────────────────────
|
|
97
89
|
async recordTransaction(data, ctx) {
|
|
98
90
|
const rows = await this.getDb(ctx)
|
|
@@ -108,11 +100,4 @@ export class GiftCardRepository {
|
|
|
108
100
|
.where(eq(giftCardTransactions.giftCardId, giftCardId))
|
|
109
101
|
.orderBy(desc(giftCardTransactions.createdAt));
|
|
110
102
|
}
|
|
111
|
-
async findTransactionsByOrderId(orderId, ctx) {
|
|
112
|
-
return this.getDb(ctx)
|
|
113
|
-
.select()
|
|
114
|
-
.from(giftCardTransactions)
|
|
115
|
-
.where(eq(giftCardTransactions.orderId, orderId))
|
|
116
|
-
.orderBy(desc(giftCardTransactions.createdAt));
|
|
117
|
-
}
|
|
118
103
|
}
|
|
@@ -16,7 +16,6 @@ export declare class GiftCardService {
|
|
|
16
16
|
metadata?: Record<string, unknown>;
|
|
17
17
|
}): Promise<PluginResult<GiftCard>>;
|
|
18
18
|
getById(orgId: string, id: string): Promise<PluginResult<GiftCard>>;
|
|
19
|
-
getByCode(orgId: string, code: string): Promise<PluginResult<GiftCard>>;
|
|
20
19
|
list(orgId: string, filters?: {
|
|
21
20
|
status?: GiftCardStatus;
|
|
22
21
|
purchaserId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gift-card-service.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EACV,EAAE,EACF,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAOxB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAyD;gBAG1E,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQ5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAuD7B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,
|
|
1
|
+
{"version":3,"file":"gift-card-service.d.ts","sourceRoot":"","sources":["../../src/services/gift-card-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,KAAK,EACV,EAAE,EACF,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAOxB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAyD;gBAG1E,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7D,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQ5C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAuD7B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAClC,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAK/B,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAOzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAaH;;;OAGG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAwC3C;;;OAGG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsC5C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAMnE,MAAM,CACV,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CAqCnC"}
|
|
@@ -65,12 +65,6 @@ export class GiftCardService {
|
|
|
65
65
|
return Err("Gift card not found");
|
|
66
66
|
return Ok(card);
|
|
67
67
|
}
|
|
68
|
-
async getByCode(orgId, code) {
|
|
69
|
-
const card = await this.repo.findByCode(orgId, normalizeCode(code));
|
|
70
|
-
if (!card)
|
|
71
|
-
return Err("Gift card not found");
|
|
72
|
-
return Ok(card);
|
|
73
|
-
}
|
|
74
68
|
async list(orgId, filters) {
|
|
75
69
|
const cards = await this.repo.list(orgId, filters);
|
|
76
70
|
return Ok(cards);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@porulle/plugin-giftcards",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.65.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@hono/zod-openapi": "^1.2.2",
|
|
21
21
|
"hono": "^4.12.5",
|
|
22
|
-
"@porulle/core": "0.
|
|
22
|
+
"@porulle/core": "0.65.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/node": "^24.5.2",
|
|
26
26
|
"eslint": "^9.39.1",
|
|
27
27
|
"typescript": "5.9.2",
|
|
28
28
|
"vitest": "^3.2.4",
|
|
29
|
-
"@porulle/
|
|
30
|
-
"@porulle/
|
|
29
|
+
"@porulle/eslint-config": "0.1.0",
|
|
30
|
+
"@porulle/typescript-config": "0.1.0"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
@@ -105,21 +105,6 @@ export class GiftCardRepository {
|
|
|
105
105
|
return rows[0]!;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
async adjustBalance(
|
|
109
|
-
orgId: string,
|
|
110
|
-
id: string,
|
|
111
|
-
delta: number,
|
|
112
|
-
tx: Db,
|
|
113
|
-
): Promise<GiftCard> {
|
|
114
|
-
const card = await this.findByIdForUpdate(orgId, id, tx);
|
|
115
|
-
if (!card) throw new Error("Gift card not found");
|
|
116
|
-
|
|
117
|
-
const newBalance = Math.max(0, Math.min(card.initialAmount, card.balance + delta));
|
|
118
|
-
const newStatus: GiftCardStatus = newBalance === 0 ? "exhausted" : "active";
|
|
119
|
-
|
|
120
|
-
return this.updateBalance(orgId, id, newBalance, newStatus, card.version, tx);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
108
|
// ─── Transactions ───────────────────────────────────────────────────
|
|
124
109
|
|
|
125
110
|
async recordTransaction(
|
|
@@ -151,14 +136,4 @@ export class GiftCardRepository {
|
|
|
151
136
|
.orderBy(desc(giftCardTransactions.createdAt));
|
|
152
137
|
}
|
|
153
138
|
|
|
154
|
-
async findTransactionsByOrderId(
|
|
155
|
-
orderId: string,
|
|
156
|
-
ctx?: { tx?: Db },
|
|
157
|
-
): Promise<GiftCardTransaction[]> {
|
|
158
|
-
return this.getDb(ctx)
|
|
159
|
-
.select()
|
|
160
|
-
.from(giftCardTransactions)
|
|
161
|
-
.where(eq(giftCardTransactions.orderId, orderId))
|
|
162
|
-
.orderBy(desc(giftCardTransactions.createdAt));
|
|
163
|
-
}
|
|
164
139
|
}
|
|
@@ -97,12 +97,6 @@ export class GiftCardService {
|
|
|
97
97
|
return Ok(card);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
async getByCode(orgId: string, code: string): Promise<PluginResult<GiftCard>> {
|
|
101
|
-
const card = await this.repo.findByCode(orgId, normalizeCode(code));
|
|
102
|
-
if (!card) return Err("Gift card not found");
|
|
103
|
-
return Ok(card);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
100
|
async list(orgId: string, filters?: {
|
|
107
101
|
status?: GiftCardStatus;
|
|
108
102
|
purchaserId?: string;
|