tt-entities 0.1.2 → 0.1.4
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/libs/tatayab-entities-library/entities/PasswordResetOtp.d.ts +7 -0
- package/dist/libs/tatayab-entities-library/entities/PasswordResetOtp.js +33 -0
- package/dist/libs/tatayab-entities-library/entities/PasswordResetOtp.js.map +1 -0
- package/dist/libs/tatayab-entities-library/entities/order.entity.d.ts +1 -0
- package/dist/libs/tatayab-entities-library/entities/order.entity.js +4 -0
- package/dist/libs/tatayab-entities-library/entities/order.entity.js.map +1 -1
- package/dist/libs/tatayab-entities-library/index.d.ts +1 -0
- package/dist/libs/tatayab-entities-library/index.js +6 -2
- package/dist/libs/tatayab-entities-library/index.js.map +1 -1
- package/libs/tatayab-entities-library/src/entities/PasswordResetOtp.ts +16 -0
- package/libs/tatayab-entities-library/src/entities/order.entity.ts +3 -0
- package/libs/tatayab-entities-library/src/index.ts +3 -0
- package/package.json +1 -1
- package/src/database/migrations/20260627000000-add-catalog-search-fulltext-indexes.js +89 -0
- package/src/database/migrations/20260627120000-add-gateway-payment-id-to-orders.js +38 -0
- package/src/database/migrations/20260704100000-create-password-reset-otps.ts.js +54 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PasswordResetOtp = void 0;
|
|
13
|
+
const sequelize_typescript_1 = require("sequelize-typescript");
|
|
14
|
+
class PasswordResetOtp extends sequelize_typescript_1.Model {
|
|
15
|
+
}
|
|
16
|
+
exports.PasswordResetOtp = PasswordResetOtp;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.STRING, allowNull: false }),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], PasswordResetOtp.prototype, "email", void 0);
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.STRING(6), allowNull: false }),
|
|
23
|
+
__metadata("design:type", String)
|
|
24
|
+
], PasswordResetOtp.prototype, "otp", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.DATE, allowNull: false }),
|
|
27
|
+
__metadata("design:type", Date)
|
|
28
|
+
], PasswordResetOtp.prototype, "expiresAt", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.DATE, allowNull: true }),
|
|
31
|
+
__metadata("design:type", Date)
|
|
32
|
+
], PasswordResetOtp.prototype, "usedAt", void 0);
|
|
33
|
+
//# sourceMappingURL=PasswordResetOtp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasswordResetOtp.js","sourceRoot":"","sources":["../../../../libs/tatayab-entities-library/src/entities/PasswordResetOtp.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+DAA+D;AAE/D,MAAa,gBAAiB,SAAQ,4BAAK;CAY1C;AAZD,4CAYC;AAVC;IADC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;+CACtC;AAGd;IADC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;6CAC3C;AAGZ;IADC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;8BACvC,IAAI;mDAAC;AAGhB;IADC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;8BACzC,IAAI;gDAAQ"}
|
|
@@ -152,6 +152,10 @@ __decorate([
|
|
|
152
152
|
(0, sequelize_typescript_1.Column)({ allowNull: true }),
|
|
153
153
|
__metadata("design:type", String)
|
|
154
154
|
], Order.prototype, "paymentReference", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
(0, sequelize_typescript_1.Column)({ allowNull: true }),
|
|
157
|
+
__metadata("design:type", String)
|
|
158
|
+
], Order.prototype, "gatewayPaymentId", void 0);
|
|
155
159
|
__decorate([
|
|
156
160
|
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.DATE, allowNull: true }),
|
|
157
161
|
__metadata("design:type", Date)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.entity.js","sourceRoot":"","sources":["../../../../libs/tatayab-entities-library/src/entities/order.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAQ8B;AAC9B,+CAAqC;AACrC,iDAAuC;AACvC,qDAA2C;AAC3C,+DAAoD;AACpD,2DAAgD;AAChD,+EAAmE;AACnE,uEAA4D;AAC5D,iFAAoE;AACpE,iEAAsD;AACtD,2EAA+D;AAGxD,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAK;
|
|
1
|
+
{"version":3,"file":"order.entity.js","sourceRoot":"","sources":["../../../../libs/tatayab-entities-library/src/entities/order.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ export { RunSheet, RunSheetStatus } from './entities/run-sheet.entity';
|
|
|
15
15
|
export { RunSheetOrder, RunSheetOrderStatus, } from './entities/run-sheet-order.entity';
|
|
16
16
|
export { Refund, RefundMethod, RefundStatus } from './entities/refund.entity';
|
|
17
17
|
export { UserWalletBalance } from './entities/user-wallet-balance.entity';
|
|
18
|
+
export { PasswordResetOtp } from './entities/PasswordResetOtp';
|
|
18
19
|
export { Category } from './entities/category.entity';
|
|
19
20
|
export { Brand } from './entities/brand.entity';
|
|
20
21
|
export { VariantType } from './entities/variant-type.entity';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.StockMovementType = exports.PurchaseOrderStatus = exports.Gender = exports.Status = exports.Language = exports.VersionType = exports.ProductApp = exports.OsName = exports.MarketingFeed = exports.OrderEditItem = exports.OrderEditSession = exports.OrderPaymentType = exports.OrderPaymentStatus = exports.OrderPayment = exports.OrderEditScenario = exports.OrderItemChangeLog = exports.PurchaseOrderReceiptItem = exports.PurchaseOrderReceipt = exports.PurchaseOrderOrderItem = exports.TransactionCategory = exports.TransactionType = exports.UserTransaction = exports.OrderStatusHistory = exports.OrderItemBundleSelection = exports.OrderItemFulfillmentStatus = exports.OrderItemType = exports.OrderItem = exports.Order = exports.OrderStatusCode = exports.OrderStatus = exports.CouponUser = exports.CouponProduct = exports.CouponStore = exports.CouponOsTarget = exports.CouponAppliesTo = exports.CouponDiscountType = exports.Coupon = exports.CartItemBundleSelection = exports.CartItemType = exports.CartItem = exports.CartStatus = exports.Cart = exports.StorePaymentMethod = exports.PaymentMethodCountry = exports.PaymentMethodType = exports.PaymentMethod = exports.PaymentGatewayType = exports.PaymentGateway = exports.RolePermission = void 0;
|
|
3
|
+
exports.PurchaseOrderItemStatus = exports.PurchaseOrderItem = exports.PurchaseOrder = exports.VendorProduct = exports.Vendor = exports.ShippingRule = exports.StockMovement = exports.InventoryStock = exports.StoreInventory = exports.Inventory = exports.ProductStore = exports.Store = exports.BundleStore = exports.BundleProduct = exports.Bundle = exports.ProductTag = exports.Tag = exports.ProductVariantOption = exports.ProductVariant = exports.MediaType = exports.ProductMedia = exports.Product = exports.VariantOption = exports.VariantType = exports.Brand = exports.Category = exports.PasswordResetOtp = exports.UserWalletBalance = exports.RefundStatus = exports.RefundMethod = exports.Refund = exports.RunSheetOrderStatus = exports.RunSheetOrder = exports.RunSheetStatus = exports.RunSheet = exports.AppConfig = exports.BannerStatus = exports.BannerPlacement = exports.Banner = exports.FavoriteCatalogItemType = exports.UserFavoriteCatalog = exports.UserFavorite = exports.UserAddress = exports.UserDevice = exports.User = exports.SysUser = exports.SysRole = exports.Area = exports.Country = exports.ApiKey = void 0;
|
|
4
|
+
exports.StockMovementType = exports.PurchaseOrderStatus = exports.Gender = exports.Status = exports.Language = exports.VersionType = exports.ProductApp = exports.OsName = exports.MarketingFeed = exports.OrderEditItem = exports.OrderEditSession = exports.OrderPaymentType = exports.OrderPaymentStatus = exports.OrderPayment = exports.OrderEditScenario = exports.OrderItemChangeLog = exports.PurchaseOrderReceiptItem = exports.PurchaseOrderReceipt = exports.PurchaseOrderOrderItem = exports.TransactionCategory = exports.TransactionType = exports.UserTransaction = exports.OrderStatusHistory = exports.OrderItemBundleSelection = exports.OrderItemFulfillmentStatus = exports.OrderItemType = exports.OrderItem = exports.Order = exports.OrderStatusCode = exports.OrderStatus = exports.CouponUser = exports.CouponProduct = exports.CouponStore = exports.CouponOsTarget = exports.CouponAppliesTo = exports.CouponDiscountType = exports.Coupon = exports.CartItemBundleSelection = exports.CartItemType = exports.CartItem = exports.CartStatus = exports.Cart = exports.StorePaymentMethod = exports.PaymentMethodCountry = exports.PaymentMethodType = exports.PaymentMethod = exports.PaymentGatewayType = exports.PaymentGateway = exports.RolePermission = exports.Permission = void 0;
|
|
5
5
|
exports.getDbModels = getDbModels;
|
|
6
6
|
const country_entity_1 = require("./entities/country.entity");
|
|
7
7
|
const area_entity_1 = require("./entities/area.entity");
|
|
@@ -70,6 +70,7 @@ const order_payment_entity_1 = require("./entities/order-payment.entity");
|
|
|
70
70
|
const order_edit_session_entity_1 = require("./entities/order-edit-session.entity");
|
|
71
71
|
const order_edit_item_entity_1 = require("./entities/order-edit-item.entity");
|
|
72
72
|
const marketing_feed_entity_1 = require("./entities/marketing-feed.entity");
|
|
73
|
+
const PasswordResetOtp_1 = require("@app/tatayab-entities-library/entities/PasswordResetOtp");
|
|
73
74
|
var apikey_entity_2 = require("./entities/apikey.entity");
|
|
74
75
|
Object.defineProperty(exports, "ApiKey", { enumerable: true, get: function () { return apikey_entity_2.ApiKey; } });
|
|
75
76
|
var country_entity_2 = require("./entities/country.entity");
|
|
@@ -109,6 +110,8 @@ Object.defineProperty(exports, "RefundMethod", { enumerable: true, get: function
|
|
|
109
110
|
Object.defineProperty(exports, "RefundStatus", { enumerable: true, get: function () { return refund_entity_2.RefundStatus; } });
|
|
110
111
|
var user_wallet_balance_entity_2 = require("./entities/user-wallet-balance.entity");
|
|
111
112
|
Object.defineProperty(exports, "UserWalletBalance", { enumerable: true, get: function () { return user_wallet_balance_entity_2.UserWalletBalance; } });
|
|
113
|
+
var PasswordResetOtp_2 = require("./entities/PasswordResetOtp");
|
|
114
|
+
Object.defineProperty(exports, "PasswordResetOtp", { enumerable: true, get: function () { return PasswordResetOtp_2.PasswordResetOtp; } });
|
|
112
115
|
var category_entity_2 = require("./entities/category.entity");
|
|
113
116
|
Object.defineProperty(exports, "Category", { enumerable: true, get: function () { return category_entity_2.Category; } });
|
|
114
117
|
var brand_entity_2 = require("./entities/brand.entity");
|
|
@@ -313,6 +316,7 @@ function getDbModels() {
|
|
|
313
316
|
order_edit_session_entity_1.OrderEditSession,
|
|
314
317
|
order_edit_item_entity_1.OrderEditItem,
|
|
315
318
|
marketing_feed_entity_1.MarketingFeed,
|
|
319
|
+
PasswordResetOtp_1.PasswordResetOtp,
|
|
316
320
|
];
|
|
317
321
|
}
|
|
318
322
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/tatayab-entities-library/src/index.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/tatayab-entities-library/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// tt-entities/src/models/PasswordResetOtp.ts
|
|
2
|
+
import { Column, Model, DataType } from 'sequelize-typescript';
|
|
3
|
+
|
|
4
|
+
export class PasswordResetOtp extends Model {
|
|
5
|
+
@Column({ type: DataType.STRING, allowNull: false })
|
|
6
|
+
email: string;
|
|
7
|
+
|
|
8
|
+
@Column({ type: DataType.STRING(6), allowNull: false })
|
|
9
|
+
otp: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: DataType.DATE, allowNull: false })
|
|
12
|
+
expiresAt: Date;
|
|
13
|
+
|
|
14
|
+
@Column({ type: DataType.DATE, allowNull: true })
|
|
15
|
+
usedAt: Date | null;
|
|
16
|
+
}
|
|
@@ -129,6 +129,9 @@ export class Order extends Model {
|
|
|
129
129
|
@Column({ allowNull: true })
|
|
130
130
|
declare paymentReference?: string; // Gateway transaction ID
|
|
131
131
|
|
|
132
|
+
@Column({ allowNull: true })
|
|
133
|
+
declare gatewayPaymentId?: string;
|
|
134
|
+
|
|
132
135
|
@Column({ type: DataType.DATE, allowNull: true })
|
|
133
136
|
declare paidAt?: Date;
|
|
134
137
|
|
|
@@ -86,6 +86,7 @@ import { OrderPayment } from './entities/order-payment.entity';
|
|
|
86
86
|
import { OrderEditSession } from './entities/order-edit-session.entity';
|
|
87
87
|
import { OrderEditItem } from './entities/order-edit-item.entity';
|
|
88
88
|
import { MarketingFeed } from './entities/marketing-feed.entity';
|
|
89
|
+
import { PasswordResetOtp } from '@app/tatayab-entities-library/entities/PasswordResetOtp';
|
|
89
90
|
|
|
90
91
|
// =============================================================================
|
|
91
92
|
// EXPORTS
|
|
@@ -120,6 +121,7 @@ export {
|
|
|
120
121
|
|
|
121
122
|
export { Refund, RefundMethod, RefundStatus } from './entities/refund.entity';
|
|
122
123
|
export { UserWalletBalance } from './entities/user-wallet-balance.entity';
|
|
124
|
+
export { PasswordResetOtp } from './entities/PasswordResetOtp';
|
|
123
125
|
|
|
124
126
|
// ─── Catalogue ────────────────────────────────────────────────────────────────
|
|
125
127
|
export { Category } from './entities/category.entity';
|
|
@@ -334,5 +336,6 @@ export function getDbModels(): ModelCtor[] {
|
|
|
334
336
|
OrderEditItem,
|
|
335
337
|
|
|
336
338
|
MarketingFeed,
|
|
339
|
+
PasswordResetOtp,
|
|
337
340
|
];
|
|
338
341
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Migration: add-catalog-search-fulltext-indexes
|
|
5
|
+
*
|
|
6
|
+
* Adds FULLTEXT indexes on all columns searched by the catalog list service,
|
|
7
|
+
* plus a B-tree index on ProductVariants.sku for variant SKU lookup.
|
|
8
|
+
*
|
|
9
|
+
* Aurora MySQL (InnoDB) supports FULLTEXT natively.
|
|
10
|
+
* These are all additive — no existing column or index is modified/dropped.
|
|
11
|
+
*
|
|
12
|
+
* Filename convention: 20260627000000-add-catalog-search-fulltext-indexes.js
|
|
13
|
+
*
|
|
14
|
+
* Apply: npx sequelize-cli db:migrate
|
|
15
|
+
* Revert: npx sequelize-cli db:migrate:undo
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
module.exports = {
|
|
19
|
+
up: async (queryInterface, Sequelize) => {
|
|
20
|
+
// ── 1. Products: name (EN + AR) + SKU ────────────────────────────────
|
|
21
|
+
// Covers: product name search, product SKU search
|
|
22
|
+
await queryInterface.sequelize.query(`
|
|
23
|
+
ALTER TABLE \`Products\`
|
|
24
|
+
ADD FULLTEXT INDEX \`ft_products_name_sku\` (\`nameEn\`, \`nameAr\`, \`sku\`)
|
|
25
|
+
`);
|
|
26
|
+
|
|
27
|
+
// ── 2. Brands: name (EN + AR) ────────────────────────────────────────
|
|
28
|
+
// Covers: brand name search (e.g. "Chanel", "شانيل")
|
|
29
|
+
await queryInterface.sequelize.query(`
|
|
30
|
+
ALTER TABLE \`Brands\`
|
|
31
|
+
ADD FULLTEXT INDEX \`ft_brands_name\` (\`nameEn\`, \`nameAr\`)
|
|
32
|
+
`);
|
|
33
|
+
|
|
34
|
+
// ── 3. Categories: name (EN + AR) ────────────────────────────────────
|
|
35
|
+
// Covers: category name search → BFS expansion to child categories
|
|
36
|
+
await queryInterface.sequelize.query(`
|
|
37
|
+
ALTER TABLE \`Categories\`
|
|
38
|
+
ADD FULLTEXT INDEX \`ft_categories_name\` (\`nameEn\`, \`nameAr\`)
|
|
39
|
+
`);
|
|
40
|
+
|
|
41
|
+
// ── 4. VariantOptions: name (EN + AR) ────────────────────────────────
|
|
42
|
+
// Covers: variant option name search (e.g. "100ml", "أحمر")
|
|
43
|
+
// Joined via ProductVariantOptions → ProductVariants → Products
|
|
44
|
+
await queryInterface.sequelize.query(`
|
|
45
|
+
ALTER TABLE \`VariantOptions\`
|
|
46
|
+
ADD FULLTEXT INDEX \`ft_variant_options_name\` (\`nameEn\`, \`nameAr\`)
|
|
47
|
+
`);
|
|
48
|
+
|
|
49
|
+
// ── 5. ProductVariants: SKU ───────────────────────────────────────────
|
|
50
|
+
// Covers: variant-level SKU search (e.g. "PROD-001-100ML")
|
|
51
|
+
// B-tree index is the right choice here: FULLTEXT on a single short
|
|
52
|
+
// column has no advantage over a regular index for SKU prefix/exact lookups.
|
|
53
|
+
// Skip if index already exists (e.g. added manually earlier).
|
|
54
|
+
await queryInterface.sequelize.query(`
|
|
55
|
+
ALTER TABLE \`ProductVariants\`
|
|
56
|
+
ADD INDEX \`idx_product_variants_sku\` (\`sku\`)
|
|
57
|
+
`);
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
down: async (queryInterface) => {
|
|
61
|
+
// Drop in reverse order — safe even if some were never created
|
|
62
|
+
// (Aurora ignores DROP INDEX on non-existent indexes when using IF EXISTS)
|
|
63
|
+
|
|
64
|
+
await queryInterface.sequelize.query(`
|
|
65
|
+
ALTER TABLE \`ProductVariants\`
|
|
66
|
+
DROP INDEX IF EXISTS \`idx_product_variants_sku\`
|
|
67
|
+
`);
|
|
68
|
+
|
|
69
|
+
await queryInterface.sequelize.query(`
|
|
70
|
+
ALTER TABLE \`VariantOptions\`
|
|
71
|
+
DROP INDEX IF EXISTS \`ft_variant_options_name\`
|
|
72
|
+
`);
|
|
73
|
+
|
|
74
|
+
await queryInterface.sequelize.query(`
|
|
75
|
+
ALTER TABLE \`Categories\`
|
|
76
|
+
DROP INDEX IF EXISTS \`ft_categories_name\`
|
|
77
|
+
`);
|
|
78
|
+
|
|
79
|
+
await queryInterface.sequelize.query(`
|
|
80
|
+
ALTER TABLE \`Brands\`
|
|
81
|
+
DROP INDEX IF EXISTS \`ft_brands_name\`
|
|
82
|
+
`);
|
|
83
|
+
|
|
84
|
+
await queryInterface.sequelize.query(`
|
|
85
|
+
ALTER TABLE \`Products\`
|
|
86
|
+
DROP INDEX IF EXISTS \`ft_products_name_sku\`
|
|
87
|
+
`);
|
|
88
|
+
},
|
|
89
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Migration: add-gateway-payment-id-to-orders
|
|
5
|
+
*
|
|
6
|
+
* Adds `gatewayPaymentId` (nullable VARCHAR 255) to the Orders table.
|
|
7
|
+
*
|
|
8
|
+
* This is a generic column — each payment gateway stores its own
|
|
9
|
+
* payment/session identifier here at order placement time:
|
|
10
|
+
*
|
|
11
|
+
* tabby → payment.id UUID from /api/v2/checkout response
|
|
12
|
+
* taly → can store their order token when needed
|
|
13
|
+
* knet/cc → can store UPayments charge ID when needed
|
|
14
|
+
*
|
|
15
|
+
* Used in confirmPayment() to call gateway-specific post-payment APIs
|
|
16
|
+
* (e.g. Tabby capture) without requiring the frontend to pass it.
|
|
17
|
+
*
|
|
18
|
+
* Filename: 20260627120000-add-gateway-payment-id-to-orders.js
|
|
19
|
+
*
|
|
20
|
+
* Apply: npx sequelize-cli db:migrate
|
|
21
|
+
* Revert: npx sequelize-cli db:migrate:undo
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
up: async (queryInterface, Sequelize) => {
|
|
26
|
+
await queryInterface.addColumn('Orders', 'gatewayPaymentId', {
|
|
27
|
+
type: Sequelize.STRING(255),
|
|
28
|
+
allowNull: true,
|
|
29
|
+
defaultValue: null,
|
|
30
|
+
comment: 'Gateway-specific payment/session ID stored at order placement. Tabby: payment UUID for capture API. Taly/UPayments: extensible for future use.',
|
|
31
|
+
after: 'paymentReference',
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
down: async (queryInterface) => {
|
|
36
|
+
await queryInterface.removeColumn('Orders', 'gatewayPaymentId');
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
up: async (queryInterface, Sequelize) => {
|
|
5
|
+
await queryInterface.createTable('PasswordResetOtps', {
|
|
6
|
+
id: {
|
|
7
|
+
type: Sequelize.INTEGER,
|
|
8
|
+
autoIncrement: true,
|
|
9
|
+
primaryKey: true,
|
|
10
|
+
allowNull: false,
|
|
11
|
+
},
|
|
12
|
+
email: {
|
|
13
|
+
type: Sequelize.STRING(255),
|
|
14
|
+
allowNull: false,
|
|
15
|
+
},
|
|
16
|
+
otp: {
|
|
17
|
+
type: Sequelize.STRING(8),
|
|
18
|
+
allowNull: false,
|
|
19
|
+
},
|
|
20
|
+
expires_at: {
|
|
21
|
+
type: Sequelize.DATE,
|
|
22
|
+
allowNull: false,
|
|
23
|
+
},
|
|
24
|
+
used_at: {
|
|
25
|
+
type: Sequelize.DATE,
|
|
26
|
+
allowNull: true,
|
|
27
|
+
},
|
|
28
|
+
createdAt: {
|
|
29
|
+
type: Sequelize.DATE,
|
|
30
|
+
allowNull: false,
|
|
31
|
+
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
32
|
+
},
|
|
33
|
+
updatedAt: {
|
|
34
|
+
type: Sequelize.DATE,
|
|
35
|
+
allowNull: false,
|
|
36
|
+
defaultValue: Sequelize.literal(
|
|
37
|
+
'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
|
|
38
|
+
),
|
|
39
|
+
},
|
|
40
|
+
deletedAt: {
|
|
41
|
+
type: Sequelize.DATE,
|
|
42
|
+
allowNull: true,
|
|
43
|
+
defaultValue: null,
|
|
44
|
+
comment: 'Soft delete',
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
await queryInterface.addIndex('PasswordResetOtps', ['email']);
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
down: async (queryInterface) => {
|
|
52
|
+
await queryInterface.dropTable('PasswordResetOtps');
|
|
53
|
+
},
|
|
54
|
+
};
|