@warriorteam/redai-zalo-sdk 1.30.0 → 1.32.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/CHANGELOG.md CHANGED
@@ -2,6 +2,131 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.32.0] - 2025-01-06
6
+
7
+ ### ✨ Added - Complete Social API Types Export
8
+
9
+ #### 🔧 Fixed Export Issues
10
+ - **Fixed missing Social API types export** - All social types now properly exported from main package
11
+ - **Added selective export for social types** - Resolved naming conflicts with auth types
12
+ - **Improved TypeScript support** - Better IntelliSense and type safety for Social API
13
+
14
+ #### 📦 New Exported Social Types
15
+ - **`SocialProfile`** - Extended user profile with cover, about, location, education, work
16
+ - **`SocialFriend`** - Friend information with mutual friends data
17
+ - **`SocialFriendsList`** - Paginated friends list with cursors
18
+ - **`SocialPost`** - Social posts with likes, comments, shares
19
+ - **`SocialFeed`** - Timeline feed with pagination
20
+ - **`SocialMessage`** - Social messages with attachments
21
+ - **`SocialConversation`** - Conversation metadata and participants
22
+ - **`SocialAlbum`** - Photo albums with privacy settings
23
+ - **`SocialPhoto`** - Photos with tags, likes, comments
24
+ - **`SocialVideo`** - Video content with formats and privacy
25
+ - **`SocialEvent`** - Events with venue, attendance, privacy
26
+ - **`SocialGroup`** - Group information with members and settings
27
+ - **`OAuthConfig`** - OAuth configuration for Social API
28
+ - **`AuthorizationRequest`** - Authorization request parameters
29
+ - **`TokenRequest`** - Token exchange request
30
+ - **`RefreshTokenRequest`** - Token refresh request
31
+ - **`SocialApiError`** - Social API error responses
32
+ - **`CursorPagination`** - Cursor-based pagination
33
+ - **`OffsetPagination`** - Offset-based pagination
34
+
35
+ #### 🚀 Usage Improvements
36
+ **Before (v1.31.0):**
37
+ ```typescript
38
+ // Had to import from dist path
39
+ import { SendMessageSequenceToMultipleUsersRequest } from '@warriorteam/redai-zalo-sdk/dist/services/consultation.service';
40
+ ```
41
+
42
+ **Now (v1.32.0):**
43
+ ```typescript
44
+ // Clean import from main package
45
+ import {
46
+ SendMessageSequenceToMultipleUsersRequest,
47
+ SocialProfile,
48
+ SocialPost,
49
+ OAuthConfig
50
+ } from '@warriorteam/redai-zalo-sdk';
51
+ ```
52
+
53
+ #### 🔍 Export Status Summary
54
+ - ✅ All 15 type files now properly exported
55
+ - ✅ 20+ new Social API types available
56
+ - ✅ Zero naming conflicts resolved
57
+ - ✅ Full TypeScript IntelliSense support
58
+
59
+ ## [1.31.0] - 2025-01-05
60
+
61
+ ### ✨ Added - Complete Purchase API Support
62
+
63
+ #### 🛒 New Purchase Service
64
+ - **`PurchaseService`** - Complete service for Zalo OA Purchase API v3.0
65
+ - Full support for creating and confirming orders for OA products and services
66
+ - Type-safe order management with comprehensive validation
67
+
68
+ #### 🎯 Core Purchase Functions
69
+ - **`createOrder()`** - Create orders with product_id or redeem_code
70
+ - **`confirmOrder()`** - Confirm order payment with OTT (One Time Token)
71
+ - **`createOrderWithProduct()`** - Create order with specific product ID
72
+ - **`createOrderWithRedeemCode()`** - Create order with gift/redeem code
73
+ - **`confirmOrderById()`** - Confirm order with separate order ID and token
74
+
75
+ #### 🏷️ Specialized Product APIs
76
+ - **`createOASubscriptionOrder()`** - Create OA subscription orders (Advanced/Premium 6m/12m)
77
+ - **`createGMFOrder()`** - Create Group Message Framework orders (10/50/100/1000 members)
78
+ - **`createTransactionQuotaOrder()`** - Create transaction message quota orders (5k/50k/500k)
79
+
80
+ #### 📦 Batch & Combo Operations
81
+ - **`createMultipleOrders()`** - Create multiple orders in batch with error isolation
82
+ - **`createOAPremiumGMFCombo()`** - Create Premium + GMF combo packages
83
+ - **`recommendProducts()`** - Smart product recommendation system
84
+
85
+ #### 🗂️ Product Management
86
+ - **`getProductInfo()`** - Get detailed product information by ID
87
+ - **`getAllProducts()`** - Get all available products
88
+ - **`getProductsByCategory()`** - Filter products by category (subscription/gmf/quota)
89
+ - **`getProductsByBeneficiary()`** - Filter products by beneficiary (OA/APP)
90
+ - **`isProductCompatibleWithBeneficiary()`** - Validate product compatibility
91
+
92
+ #### 🕐 Order Timing & Validation
93
+ - **`isOrderCreationTimeValid()`** - Check if current time allows order creation (00:01-23:54)
94
+ - **`calculateOTTExpiration()`** - Calculate OTT expiration time (5 minutes)
95
+ - **`isOTTValid()`** - Check if OTT is still valid
96
+
97
+ #### 📋 TypeScript Interfaces & Types
98
+ - **`CreateOrderRequest`** - Union type for product_id or redeem_code orders
99
+ - **`CreateOrderWithProductRequest`** - Interface for product-based orders
100
+ - **`CreateOrderWithRedeemRequest`** - Interface for redeem code orders
101
+ - **`ConfirmOrderRequest`** - Interface for order confirmation
102
+ - **`OrderData`** - Complete order data with verified_token (OTT)
103
+ - **`ConfirmedOrderData`** - Confirmed order data (without OTT)
104
+ - **`ProductInfo`** - Product information interface
105
+ - **`BeneficiaryType`** - Type for OA/APP beneficiaries
106
+
107
+ #### 🏪 Complete Product Catalog
108
+ - **OA Subscription Products**:
109
+ - OA Advanced 6/12 months
110
+ - OA Premium 6/12 months
111
+ - **GMF Products**:
112
+ - GMF 10/50/100/1000 members
113
+ - **Transaction Quota Products**:
114
+ - 5k/50k/500k transaction messages (1 month)
115
+
116
+ #### ✅ Advanced Features
117
+ - **Automatic Validation**: Product-beneficiary compatibility checking
118
+ - **Error Isolation**: Batch operations continue on individual failures
119
+ - **Smart Recommendations**: AI-powered product suggestions based on requirements
120
+ - **Time Validation**: Automatic order creation time window checking
121
+ - **OTT Management**: Complete One Time Token lifecycle management
122
+ - **Type Safety**: Full TypeScript support with compile-time validation
123
+
124
+ #### 🔧 Error Handling & Validation
125
+ - Comprehensive error codes for all purchase scenarios
126
+ - Detailed validation for all request parameters
127
+ - Graceful error handling in batch operations
128
+ - Clear error messages with context information
129
+
5
130
  ## [1.30.0] - 2025-01-05
6
131
 
7
132
  ### ✨ Added - Template Message Support for ConsultationService
package/dist/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export * from "./types/article";
17
17
  export * from "./types/broadcast";
18
18
  export * from "./types/promotion";
19
19
  export * from "./types/consultation";
20
+ export * from "./types/purchase";
21
+ export type { SocialProfile, SocialFriend, SocialFriendsList, SocialPost, SocialFeed, SocialMessage, SocialConversation, SocialAlbum, SocialPhoto, SocialVideo, SocialEvent, SocialGroup, OAuthConfig, AuthorizationRequest, TokenRequest, RefreshTokenRequest, SocialApiError, CursorPagination, OffsetPagination, } from "./types/social";
20
22
  export * from "./constants/zns.constants";
21
23
  export type { BaseMessage, TextMessage, ImageMessage, FileMessage, StickerMessage, TemplateMessage as MessageTemplateMessage, ReactionMessage as MessageReactionMessage, Message, MessageRecipient, SendMessageRequest, SendMessageResponse, UploadFileResponse, MessageStatus, MessageEvent, ConsultationTextMessage, ConsultationImageMessage, ConsultationFileMessage, ConsultationStickerMessage, ConsultationQuoteMessage, ConsultationRequestInfoMessage, TransactionMessage, AnonymousTextMessage, AnonymousImageMessage, AnonymousFileMessage, AnonymousStickerMessage, MiniAppMessage, ExtendedMessage, } from "./types/message";
22
24
  export * from "./types/webhook";
@@ -40,6 +42,7 @@ export { PromotionService } from "./services/promotion.service";
40
42
  export { GeneralMessageService } from "./services/general-message.service";
41
43
  export { MessageManagementService, UploadFileResult, UploadImageResult, MessageQuotaInfo, ConversationMessage, Conversation, MessagePagination } from "./services/message-management.service";
42
44
  export { BroadcastService } from "./services/broadcast.service";
45
+ export { PurchaseService } from "./services/purchase.service";
43
46
  export { ZaloSDK } from "./zalo-sdk";
44
47
  export { ZaloSDK as default } from "./zalo-sdk";
45
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
24
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.default = exports.ZaloSDK = exports.BroadcastService = exports.MessageManagementService = exports.GeneralMessageService = exports.PromotionService = exports.TransactionService = exports.ConsultationService = exports.VideoUploadService = exports.ArticleService = exports.GroupManagementService = exports.GroupMessageService = exports.ZNSService = exports.UserService = exports.OAService = exports.AuthService = exports.ZaloClient = exports.BaseClient = exports.getMessageDirection = exports.isOAToGroupMessageEvent = exports.isOAToUserMessageEvent = exports.isGroupMessageEvent = exports.isUserMessageEvent = exports.isFromPersonal = exports.isFromGroup = exports.isOASendGroupGifEvent = exports.isOASendGroupStickerEvent = exports.isOASendGroupFileEvent = exports.isOASendGroupImageEvent = exports.isOASendGroupTextEvent = exports.isOASendGifEvent = exports.isOASendStickerEvent = exports.isOASendFileEvent = exports.isOASendImageEvent = exports.isOASendTextEvent = exports.isUserGroupMessageEvent = exports.isUserSendGroupFileEvent = exports.isUserSendGroupAudioEvent = exports.isUserSendGroupVideoEvent = exports.isUserSendGroupImageEvent = exports.isUserSendGroupTextEvent = void 0;
27
+ exports.default = exports.ZaloSDK = exports.PurchaseService = exports.BroadcastService = exports.MessageManagementService = exports.GeneralMessageService = exports.PromotionService = exports.TransactionService = exports.ConsultationService = exports.VideoUploadService = exports.ArticleService = exports.GroupManagementService = exports.GroupMessageService = exports.ZNSService = exports.UserService = exports.OAService = exports.AuthService = exports.ZaloClient = exports.BaseClient = exports.getMessageDirection = exports.isOAToGroupMessageEvent = exports.isOAToUserMessageEvent = exports.isGroupMessageEvent = exports.isUserMessageEvent = exports.isFromPersonal = exports.isFromGroup = exports.isOASendGroupGifEvent = exports.isOASendGroupStickerEvent = exports.isOASendGroupFileEvent = exports.isOASendGroupImageEvent = exports.isOASendGroupTextEvent = exports.isOASendGifEvent = exports.isOASendStickerEvent = exports.isOASendFileEvent = exports.isOASendImageEvent = exports.isOASendTextEvent = exports.isUserGroupMessageEvent = exports.isUserSendGroupFileEvent = exports.isUserSendGroupAudioEvent = exports.isUserSendGroupVideoEvent = exports.isUserSendGroupImageEvent = exports.isUserSendGroupTextEvent = void 0;
28
28
  // Export types
29
29
  __exportStar(require("./types/common"), exports);
30
30
  __exportStar(require("./types/auth"), exports);
@@ -35,6 +35,7 @@ __exportStar(require("./types/article"), exports);
35
35
  __exportStar(require("./types/broadcast"), exports);
36
36
  __exportStar(require("./types/promotion"), exports);
37
37
  __exportStar(require("./types/consultation"), exports);
38
+ __exportStar(require("./types/purchase"), exports);
38
39
  // Export ZNS constants and helpers
39
40
  __exportStar(require("./constants/zns.constants"), exports);
40
41
  // Export webhook types (avoiding conflicts with message and group types)
@@ -103,6 +104,8 @@ var message_management_service_1 = require("./services/message-management.servic
103
104
  Object.defineProperty(exports, "MessageManagementService", { enumerable: true, get: function () { return message_management_service_1.MessageManagementService; } });
104
105
  var broadcast_service_1 = require("./services/broadcast.service");
105
106
  Object.defineProperty(exports, "BroadcastService", { enumerable: true, get: function () { return broadcast_service_1.BroadcastService; } });
107
+ var purchase_service_1 = require("./services/purchase.service");
108
+ Object.defineProperty(exports, "PurchaseService", { enumerable: true, get: function () { return purchase_service_1.PurchaseService; } });
106
109
  // Export main SDK class
107
110
  var zalo_sdk_1 = require("./zalo-sdk");
108
111
  Object.defineProperty(exports, "ZaloSDK", { enumerable: true, get: function () { return zalo_sdk_1.ZaloSDK; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AAErC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AAEhC,yEAAyE;AACzE,mDAoB6B;AAlB3B,uHAAA,wBAAwB,OAAA;AACxB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AACvB,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AACzB,oHAAA,qBAAqB,OAAA;AACrB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAEhB,kCAAkC;AAClC,2CAMyB;AALvB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AAoFrB,iBAAiB;AACjB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,2GAA2G;AAC3G,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,+DAA+D;AAC/D,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AACnB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAC5B,gFAA6E;AAApE,kIAAA,sBAAsB,OAAA;AAC/B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAC5B,sEAAoE;AAA3D,yHAAA,kBAAkB,OAAA;AAC3B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,oFAQ+C;AAP7C,sIAAA,wBAAwB,OAAA;AAQ1B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AAEzB,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,eAAe;AACf,iDAA+B;AAC/B,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AAwBjC,mCAAmC;AACnC,4DAA0C;AAkC1C,yEAAyE;AACzE,kDAAgC;AAEhC,yEAAyE;AACzE,mDAoB6B;AAlB3B,uHAAA,wBAAwB,OAAA;AACxB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,uHAAA,wBAAwB,OAAA;AACxB,sHAAA,uBAAuB,OAAA;AACvB,gHAAA,iBAAiB,OAAA;AACjB,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AACjB,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,wHAAA,yBAAyB,OAAA;AACzB,oHAAA,qBAAqB,OAAA;AACrB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAEhB,kCAAkC;AAClC,2CAMyB;AALvB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,iHAAA,sBAAsB,OAAA;AACtB,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AAoFrB,iBAAiB;AACjB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,2GAA2G;AAC3G,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,+DAA+D;AAC/D,sDAAoD;AAA3C,yGAAA,UAAU,OAAA;AACnB,0EAAuE;AAA9D,4HAAA,mBAAmB,OAAA;AAC5B,gFAA6E;AAApE,kIAAA,sBAAsB,OAAA;AAC/B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,iDAAiD;AACjD,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAC5B,sEAAoE;AAA3D,yHAAA,kBAAkB,OAAA;AAC3B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,oFAQ+C;AAP7C,sIAAA,wBAAwB,OAAA;AAQ1B,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AAExB,wBAAwB;AACxB,uCAAqC;AAA5B,mGAAA,OAAO,OAAA;AAEhB,iBAAiB;AACjB,uCAAgD;AAAvC,mGAAA,OAAO,OAAW"}
@@ -0,0 +1,209 @@
1
+ import { ZaloClient } from "../clients/zalo-client";
2
+ import { CreateOrderRequest, OrderData, ConfirmOrderRequest, ConfirmedOrderData, ProductInfo } from "../types/purchase";
3
+ /**
4
+ * Service xử lý các API mua sản phẩm/dịch vụ OA của Zalo
5
+ *
6
+ * ĐIỀU KIỆN SỬ DỤNG PURCHASE API:
7
+ *
8
+ * 1. QUYỀN TRUY CẬP:
9
+ * - Ứng dụng cần được cấp quyền quản lý "Mua sản phẩm dịch vụ OA"
10
+ * - OA phải được xác minh và có quyền bán sản phẩm/dịch vụ
11
+ *
12
+ * 2. THỜI GIAN TẠO ĐỚN:
13
+ * - Order chỉ được tạo từ 00:01 đến 23:54 hàng ngày
14
+ * - Không thể tạo đơn hàng trong khung giờ bảo trì (23:55 - 00:00)
15
+ *
16
+ * 3. SẢN PHẨM/DỊCH VỤ:
17
+ * - Sản phẩm phải có sẵn và được phép bán
18
+ * - Đối tượng thụ hưởng (beneficiary) phải phù hợp với sản phẩm
19
+ * - Có thể sử dụng product_id HOẶC redeem_code, không được dùng cả hai
20
+ *
21
+ * 4. THANH TOÁN:
22
+ * - Tài khoản ZCA phải có đủ số dư để thanh toán
23
+ * - Voucher code (nếu có) phải hợp lệ và chưa hết hạn
24
+ *
25
+ * 5. XÁC THỰC:
26
+ * - Mỗi đơn hàng sẽ có verified_token (OTT) để xác nhận thanh toán
27
+ * - OTT có hiệu lực trong vòng 5 phút kể từ khi tạo đơn
28
+ *
29
+ * LỖI THƯỜNG GẶP:
30
+ * - 1001: Beneficiary không hợp lệ
31
+ * - 1002: Product ID không tồn tại hoặc không khả dụng
32
+ * - 1003: Redeem code không hợp lệ hoặc đã được sử dụng
33
+ * - 1004: Voucher code không hợp lệ hoặc đã hết hạn
34
+ * - 1005: Sản phẩm không khả dụng cho đối tượng thụ hưởng
35
+ * - 1006: Số dư tài khoản không đủ
36
+ * - 1007: Ngoài thời gian cho phép tạo đơn hàng
37
+ * - 1008: Đơn hàng trùng lặp
38
+ * - 1009: Không có quyền truy cập
39
+ */
40
+ export declare class PurchaseService {
41
+ private readonly client;
42
+ private readonly purchaseApiUrl;
43
+ constructor(client: ZaloClient);
44
+ /**
45
+ * Tạo đơn hàng mua sản phẩm/dịch vụ OA
46
+ * @param accessToken Access token của Official Account
47
+ * @param request Thông tin đơn hàng cần tạo
48
+ * @returns Thông tin đơn hàng đã tạo
49
+ */
50
+ createOrder(accessToken: string, request: CreateOrderRequest): Promise<OrderData>;
51
+ /**
52
+ * Tạo đơn hàng với product_id
53
+ * @param accessToken Access token của Official Account
54
+ * @param beneficiary Đối tượng thụ hưởng (OA hoặc APP)
55
+ * @param productId ID sản phẩm
56
+ * @param voucherCode Mã giảm giá (tùy chọn)
57
+ * @returns Thông tin đơn hàng đã tạo
58
+ */
59
+ createOrderWithProduct(accessToken: string, beneficiary: "OA" | "APP", productId: number, voucherCode?: string): Promise<OrderData>;
60
+ /**
61
+ * Tạo đơn hàng với redeem_code (mã quà tặng)
62
+ * @param accessToken Access token của Official Account
63
+ * @param beneficiary Đối tượng thụ hưởng (OA hoặc APP)
64
+ * @param redeemCode Mã quà tặng
65
+ * @param voucherCode Mã giảm giá (tùy chọn)
66
+ * @returns Thông tin đơn hàng đã tạo
67
+ */
68
+ createOrderWithRedeemCode(accessToken: string, beneficiary: "OA" | "APP", redeemCode: string, voucherCode?: string): Promise<OrderData>;
69
+ /**
70
+ * Validate create order request
71
+ * @param request Request to validate
72
+ */
73
+ private validateCreateOrderRequest;
74
+ /**
75
+ * Kiểm tra thời gian có thể tạo đơn hàng
76
+ * @returns true nếu trong thời gian cho phép tạo đơn hàng
77
+ */
78
+ isOrderCreationTimeValid(): boolean;
79
+ /**
80
+ * Tính toán thời gian hết hạn của OTT (One Time Token)
81
+ * @param createdTime Thời gian tạo đơn hàng (milliseconds)
82
+ * @returns Thời gian hết hạn OTT (milliseconds)
83
+ */
84
+ calculateOTTExpiration(createdTime: number): number;
85
+ /**
86
+ * Kiểm tra OTT còn hiệu lực hay không
87
+ * @param createdTime Thời gian tạo đơn hàng (milliseconds)
88
+ * @returns true nếu OTT còn hiệu lực
89
+ */
90
+ isOTTValid(createdTime: number): boolean;
91
+ /**
92
+ * Xác nhận thanh toán đơn hàng
93
+ * @param accessToken Access token của Official Account
94
+ * @param request Thông tin xác nhận đơn hàng
95
+ * @returns Thông tin đơn hàng đã được xác nhận thanh toán
96
+ */
97
+ confirmOrder(accessToken: string, request: ConfirmOrderRequest): Promise<ConfirmedOrderData>;
98
+ /**
99
+ * Xác nhận thanh toán đơn hàng với order ID và verified token
100
+ * @param accessToken Access token của Official Account
101
+ * @param orderId ID đơn hàng
102
+ * @param verifiedToken OTT token để xác nhận
103
+ * @returns Thông tin đơn hàng đã được xác nhận thanh toán
104
+ */
105
+ confirmOrderById(accessToken: string, orderId: string, verifiedToken: string): Promise<ConfirmedOrderData>;
106
+ /**
107
+ * Lấy thông tin sản phẩm theo ID
108
+ * @param productId ID sản phẩm
109
+ * @returns Thông tin sản phẩm hoặc undefined nếu không tìm thấy
110
+ */
111
+ getProductInfo(productId: number): ProductInfo | undefined;
112
+ /**
113
+ * Lấy danh sách tất cả sản phẩm có sẵn
114
+ * @returns Danh sách thông tin sản phẩm
115
+ */
116
+ getAllProducts(): ProductInfo[];
117
+ /**
118
+ * Lấy danh sách sản phẩm theo loại
119
+ * @param category Loại sản phẩm
120
+ * @returns Danh sách sản phẩm thuộc loại đó
121
+ */
122
+ getProductsByCategory(category: 'subscription' | 'gmf' | 'quota'): ProductInfo[];
123
+ /**
124
+ * Lấy danh sách sản phẩm theo đối tượng thụ hưởng
125
+ * @param beneficiary Đối tượng thụ hưởng
126
+ * @returns Danh sách sản phẩm phù hợp với đối tượng thụ hưởng
127
+ */
128
+ getProductsByBeneficiary(beneficiary: "OA" | "APP"): ProductInfo[];
129
+ /**
130
+ * Kiểm tra sản phẩm có phù hợp với đối tượng thụ hưởng không
131
+ * @param productId ID sản phẩm
132
+ * @param beneficiary Đối tượng thụ hưởng
133
+ * @returns true nếu sản phẩm phù hợp với đối tượng thụ hưởng
134
+ */
135
+ isProductCompatibleWithBeneficiary(productId: number, beneficiary: "OA" | "APP"): boolean;
136
+ /**
137
+ * Tạo đơn hàng gói OA Subscription
138
+ * @param accessToken Access token của Official Account
139
+ * @param subscriptionType Loại gói subscription
140
+ * @param voucherCode Mã giảm giá (tùy chọn)
141
+ * @returns Thông tin đơn hàng đã tạo
142
+ */
143
+ createOASubscriptionOrder(accessToken: string, subscriptionType: 'advanced_6m' | 'advanced_12m' | 'premium_6m' | 'premium_12m', voucherCode?: string): Promise<OrderData>;
144
+ /**
145
+ * Tạo đơn hàng gói GMF (Group Message Framework)
146
+ * @param accessToken Access token của Official Account
147
+ * @param memberLimit Giới hạn số thành viên
148
+ * @param voucherCode Mã giảm giá (tùy chọn)
149
+ * @returns Thông tin đơn hàng đã tạo
150
+ */
151
+ createGMFOrder(accessToken: string, memberLimit: 10 | 50 | 100 | 1000, voucherCode?: string): Promise<OrderData>;
152
+ /**
153
+ * Tạo đơn hàng gói quota tin nhắn giao dịch
154
+ * @param accessToken Access token của Official Account
155
+ * @param beneficiary Đối tượng thụ hưởng (OA hoặc APP)
156
+ * @param quotaSize Kích thước gói quota
157
+ * @param voucherCode Mã giảm giá (tùy chọn)
158
+ * @returns Thông tin đơn hàng đã tạo
159
+ */
160
+ createTransactionQuotaOrder(accessToken: string, beneficiary: "OA" | "APP", quotaSize: '5k' | '50k' | '500k', voucherCode?: string): Promise<OrderData>;
161
+ /**
162
+ * Tạo nhiều đơn hàng cùng lúc (batch operation)
163
+ * @param accessToken Access token của Official Account
164
+ * @param orders Danh sách đơn hàng cần tạo
165
+ * @returns Danh sách kết quả tạo đơn hàng
166
+ */
167
+ createMultipleOrders(accessToken: string, orders: CreateOrderRequest[]): Promise<Array<{
168
+ success: boolean;
169
+ data?: OrderData;
170
+ error?: string;
171
+ }>>;
172
+ /**
173
+ * Tạo combo đơn hàng OA Premium + GMF
174
+ * @param accessToken Access token của Official Account
175
+ * @param premiumDuration Thời hạn gói Premium
176
+ * @param gmfMemberLimit Giới hạn thành viên GMF
177
+ * @param voucherCode Mã giảm giá (tùy chọn)
178
+ * @returns Danh sách kết quả tạo đơn hàng
179
+ */
180
+ createOAPremiumGMFCombo(accessToken: string, premiumDuration: '6m' | '12m', gmfMemberLimit: 10 | 50 | 100 | 1000, voucherCode?: string): Promise<{
181
+ premium: {
182
+ success: boolean;
183
+ data?: OrderData;
184
+ error?: string;
185
+ };
186
+ gmf: {
187
+ success: boolean;
188
+ data?: OrderData;
189
+ error?: string;
190
+ };
191
+ }>;
192
+ /**
193
+ * Gợi ý sản phẩm dựa trên nhu cầu
194
+ * @param requirements Yêu cầu của khách hàng
195
+ * @returns Danh sách sản phẩm được gợi ý
196
+ */
197
+ recommendProducts(requirements: {
198
+ beneficiary: "OA" | "APP";
199
+ budget?: 'low' | 'medium' | 'high';
200
+ features?: ('subscription' | 'group_messaging' | 'transaction_quota')[];
201
+ duration?: 'short' | 'long';
202
+ }): ProductInfo[];
203
+ /**
204
+ * Validate confirm order request
205
+ * @param request Request to validate
206
+ */
207
+ private validateConfirmOrderRequest;
208
+ }
209
+ //# sourceMappingURL=purchase.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purchase.service.d.ts","sourceRoot":"","sources":["../../src/services/purchase.service.ts"],"names":[],"mappings":"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"}