@duvdu-v1/duvdu 1.1.263 → 1.1.265

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.
Files changed (62) hide show
  1. package/build/index.d.ts +2 -0
  2. package/build/index.js +2 -0
  3. package/build/models/Bookmark-projects.model.d.ts +2 -2
  4. package/build/models/Bookmark.model.d.ts +1 -1
  5. package/build/models/Plan.model.d.ts +1 -1
  6. package/build/models/Review.model.d.ts +2 -2
  7. package/build/models/Role.model.d.ts +1 -1
  8. package/build/models/Term.model.d.ts +3 -3
  9. package/build/models/Ticket.model.d.ts +3 -3
  10. package/build/models/User.model.d.ts +1 -1
  11. package/build/models/all-contracts.model.d.ts +2 -2
  12. package/build/models/allProjects.model.d.ts +1 -1
  13. package/build/models/category.model.d.ts +3 -3
  14. package/build/models/contractCancel.model.d.ts +2 -2
  15. package/build/models/contractCancel.model.js +4 -4
  16. package/build/models/contracts.model.d.ts +2 -2
  17. package/build/models/copyright-contract.model.d.ts +2 -2
  18. package/build/models/copyright-contract.model.js +5 -1
  19. package/build/models/copyrights-booking.model.d.ts +2 -2
  20. package/build/models/copyrights.model.d.ts +2 -2
  21. package/build/models/coupon.model.d.ts +2 -2
  22. package/build/models/favourites.model.d.ts +2 -2
  23. package/build/models/follow.model.d.ts +2 -2
  24. package/build/models/messages.model.d.ts +2 -2
  25. package/build/models/notification.model.d.ts +2 -2
  26. package/build/models/portfolio-post.model.d.ts +2 -2
  27. package/build/models/producer.model.d.ts +2 -2
  28. package/build/models/producerPlatform.model.d.ts +1 -1
  29. package/build/models/producer_contracts.model.d.ts +2 -2
  30. package/build/models/projectContract.model.d.ts +2 -2
  31. package/build/models/projectContract.model.js +5 -1
  32. package/build/models/projectViews.model.d.ts +1 -1
  33. package/build/models/ranks.model.d.ts +1 -1
  34. package/build/models/rental-contracts.model.d.ts +2 -2
  35. package/build/models/rental.model.d.ts +2 -2
  36. package/build/models/report.model.d.ts +2 -2
  37. package/build/models/session.model.d.ts +2 -2
  38. package/build/models/settings.model.d.ts +1 -1
  39. package/build/models/studio-booking-book.model.d.ts +2 -2
  40. package/build/models/studio-booking.model.d.ts +3 -3
  41. package/build/models/teamProject.model.d.ts +3 -3
  42. package/build/models/teamProject.model.js +6 -1
  43. package/build/models/transactions.model.d.ts +42 -0
  44. package/build/models/transactions.model.js +20 -0
  45. package/build/models/userSession.model.d.ts +2 -2
  46. package/build/models/withdrawMethods.model.d.ts +2 -2
  47. package/build/models/withdrawMethods.model.js +3 -3
  48. package/build/services/paymob.service.d.ts +202 -0
  49. package/build/services/paymob.service.js +374 -0
  50. package/build/services/rank.service.d.ts +2 -2
  51. package/build/types/Bookmarks.d.ts +1 -1
  52. package/build/types/Plan.d.ts +1 -1
  53. package/build/types/Projects.d.ts +1 -1
  54. package/build/types/Rate.d.ts +1 -1
  55. package/build/types/Ticket.d.ts +1 -1
  56. package/build/types/User.d.ts +1 -1
  57. package/build/types/copyrights-order.d.ts +2 -2
  58. package/build/types/model-names.d.ts +2 -1
  59. package/build/types/model-names.js +1 -0
  60. package/build/types/portfolio-post-order.d.ts +2 -2
  61. package/build/utils/api-feature.d.ts +3 -3
  62. package/package.json +2 -1
@@ -1,9 +1,9 @@
1
- /// <reference types="mongoose/types/document" />
2
1
  /// <reference types="mongoose/types/aggregate" />
3
2
  /// <reference types="mongoose/types/callback" />
4
3
  /// <reference types="mongoose/types/collection" />
5
4
  /// <reference types="mongoose/types/connection" />
6
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
7
  /// <reference types="mongoose/types/error" />
8
8
  /// <reference types="mongoose/types/expressions" />
9
9
  /// <reference types="mongoose/types/helpers" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,9 @@
1
- /// <reference types="mongoose/types/document" />
2
1
  /// <reference types="mongoose/types/aggregate" />
3
2
  /// <reference types="mongoose/types/callback" />
4
3
  /// <reference types="mongoose/types/collection" />
5
4
  /// <reference types="mongoose/types/connection" />
6
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
7
  /// <reference types="mongoose/types/error" />
8
8
  /// <reference types="mongoose/types/expressions" />
9
9
  /// <reference types="mongoose/types/helpers" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,16 +1,15 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
- /// <reference types="mongoose/types/models" />
4
1
  /// <reference types="mongoose/types/aggregate" />
5
2
  /// <reference types="mongoose/types/callback" />
6
3
  /// <reference types="mongoose/types/collection" />
7
4
  /// <reference types="mongoose/types/connection" />
8
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
9
7
  /// <reference types="mongoose/types/error" />
10
8
  /// <reference types="mongoose/types/expressions" />
11
9
  /// <reference types="mongoose/types/helpers" />
12
10
  /// <reference types="mongoose/types/middlewares" />
13
11
  /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
14
13
  /// <reference types="mongoose/types/mongooseoptions" />
15
14
  /// <reference types="mongoose/types/pipelinestage" />
16
15
  /// <reference types="mongoose/types/populate" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,13 +17,14 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
- import { Icategory } from '@duvdu-v1/duvdu';
26
25
  import { Types } from 'mongoose';
27
26
  import { IprojectContract } from './projectContract.model';
27
+ import { Icategory } from '../types/Category';
28
28
  import { Iuser } from '../types/User';
29
29
  export interface ITeamProject {
30
30
  user: Types.ObjectId | Iuser;
@@ -11,7 +11,12 @@ exports.TeamProject = (0, mongoose_1.model)(model_names_1.MODELS.teamProject, ne
11
11
  desc: { type: String, default: null },
12
12
  location: { lat: { type: Number, default: null }, lng: { type: Number, default: null } },
13
13
  address: { type: String, default: null },
14
- relatedContracts: [{ category: { type: mongoose_1.Types.ObjectId, ref: model_names_1.MODELS.category }, contracts: [{ contract: { type: mongoose_1.Types.ObjectId, ref: model_names_1.MODELS.projectContract } }] }],
14
+ relatedContracts: [
15
+ {
16
+ category: { type: mongoose_1.Types.ObjectId, ref: model_names_1.MODELS.category },
17
+ contracts: [{ contract: { type: mongoose_1.Types.ObjectId, ref: model_names_1.MODELS.projectContract } }],
18
+ },
19
+ ],
15
20
  isDeleted: { type: Boolean, default: false },
16
21
  cycle: { type: String, default: cycles_1.CYCLES.teamProject },
17
22
  }, {
@@ -0,0 +1,42 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ import { Types } from 'mongoose';
26
+ export declare enum TransactionStatus {
27
+ PENDING = "pending",
28
+ SUCCESS = "success",
29
+ FAILED = "failed"
30
+ }
31
+ export interface ITransaction {
32
+ currency: string;
33
+ amount: number;
34
+ user: Types.ObjectId;
35
+ contract: Types.ObjectId;
36
+ status: string;
37
+ timeStamp: Date;
38
+ model: string;
39
+ }
40
+ export declare const Transaction: import("mongoose").Model<ITransaction, {}, {}, {}, import("mongoose").Document<unknown, {}, ITransaction> & ITransaction & {
41
+ _id: Types.ObjectId;
42
+ }, any>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transaction = exports.TransactionStatus = void 0;
4
+ const mongoose_1 = require("mongoose");
5
+ const model_names_1 = require("../types/model-names");
6
+ var TransactionStatus;
7
+ (function (TransactionStatus) {
8
+ TransactionStatus["PENDING"] = "pending";
9
+ TransactionStatus["SUCCESS"] = "success";
10
+ TransactionStatus["FAILED"] = "failed";
11
+ })(TransactionStatus || (exports.TransactionStatus = TransactionStatus = {}));
12
+ exports.Transaction = (0, mongoose_1.model)(model_names_1.MODELS.transaction, new mongoose_1.Schema({
13
+ currency: { type: String, default: 'EGP' },
14
+ amount: { type: Number, default: 0 },
15
+ user: { type: mongoose_1.Schema.Types.ObjectId, ref: model_names_1.MODELS.user },
16
+ contract: { type: mongoose_1.Schema.Types.ObjectId, ref: model_names_1.MODELS.contracts },
17
+ status: { type: String, default: TransactionStatus.PENDING },
18
+ timeStamp: { type: Date, default: Date.now },
19
+ model: { type: String, default: null },
20
+ }));
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,10 +1,9 @@
1
- /// <reference types="mongoose/types/types" />
2
- /// <reference types="mongoose/types/document" />
3
1
  /// <reference types="mongoose/types/aggregate" />
4
2
  /// <reference types="mongoose/types/callback" />
5
3
  /// <reference types="mongoose/types/collection" />
6
4
  /// <reference types="mongoose/types/connection" />
7
5
  /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
8
7
  /// <reference types="mongoose/types/error" />
9
8
  /// <reference types="mongoose/types/expressions" />
10
9
  /// <reference types="mongoose/types/helpers" />
@@ -18,6 +17,7 @@
18
17
  /// <reference types="mongoose/types/schemaoptions" />
19
18
  /// <reference types="mongoose/types/schematypes" />
20
19
  /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WithdrawMethodModel = exports.WithdrawMethod = void 0;
4
- const duvdu_1 = require("@duvdu-v1/duvdu");
5
4
  const mongoose_1 = require("mongoose");
5
+ const model_names_1 = require("../types/model-names");
6
6
  var WithdrawMethod;
7
7
  (function (WithdrawMethod) {
8
8
  WithdrawMethod["WALLET"] = "wallet";
9
9
  WithdrawMethod["BANK"] = "bank";
10
10
  })(WithdrawMethod || (exports.WithdrawMethod = WithdrawMethod = {}));
11
- exports.WithdrawMethodModel = (0, mongoose_1.model)(duvdu_1.MODELS.withdrawMethod, new mongoose_1.Schema({
12
- user: { type: mongoose_1.Schema.Types.ObjectId, ref: duvdu_1.MODELS.user },
11
+ exports.WithdrawMethodModel = (0, mongoose_1.model)(model_names_1.MODELS.withdrawMethod, new mongoose_1.Schema({
12
+ user: { type: mongoose_1.Schema.Types.ObjectId, ref: model_names_1.MODELS.user },
13
13
  method: { type: String, enum: WithdrawMethod },
14
14
  name: { type: String, default: null },
15
15
  number: { type: String, default: null },
@@ -0,0 +1,202 @@
1
+ interface PaymobMerchant {
2
+ id: number;
3
+ created_at: string;
4
+ phones: string[];
5
+ company_emails: string[];
6
+ company_name: string;
7
+ state: string;
8
+ country: string;
9
+ city: string;
10
+ postal_code: string;
11
+ street: string;
12
+ }
13
+ interface PaymobOrder {
14
+ id: number;
15
+ created_at: string;
16
+ delivery_needed: boolean;
17
+ merchant: PaymobMerchant;
18
+ collector: null;
19
+ amount_cents: number;
20
+ shipping_data: null;
21
+ currency: string;
22
+ is_payment_locked: boolean;
23
+ is_return: boolean;
24
+ is_cancel: boolean;
25
+ is_returned: boolean;
26
+ is_canceled: boolean;
27
+ merchant_order_id: string;
28
+ wallet_notification: null;
29
+ paid_amount_cents: number;
30
+ notify_user_with_email: boolean;
31
+ items: PaymobOrderItem[];
32
+ order_url: string;
33
+ commission_fee: number;
34
+ delivery_fee_cents: number;
35
+ delivery_voucher_cost: number;
36
+ discount: number;
37
+ metadata: Record<string, any>;
38
+ }
39
+ interface PaymobOrderItem {
40
+ name: string;
41
+ description: string;
42
+ amount_cents: number;
43
+ quantity: number;
44
+ }
45
+ interface PaymobSourceData {
46
+ type: string;
47
+ pan: string;
48
+ sub_type: string;
49
+ }
50
+ interface PaymobWebhookData {
51
+ obj: {
52
+ id: number;
53
+ amount_cents: number;
54
+ success: boolean;
55
+ is_refunded: boolean;
56
+ is_captured: boolean;
57
+ is_voided: boolean;
58
+ is_standalone_payment: boolean;
59
+ is_void: boolean;
60
+ is_refund: boolean;
61
+ is_3d_secure: boolean;
62
+ integration_id: number;
63
+ profile_id: number;
64
+ has_parent_transaction: boolean;
65
+ order: PaymobOrder;
66
+ created_at: string;
67
+ transaction_processed_callback_responses: null;
68
+ currency: string;
69
+ source_data: PaymobSourceData;
70
+ api_source: string;
71
+ terminal_id: string;
72
+ merchant_commission: number;
73
+ merchant_staff_tag: null;
74
+ hmac: string;
75
+ };
76
+ }
77
+ interface PaymobBillingData {
78
+ first_name: string;
79
+ last_name: string;
80
+ email: string;
81
+ phone_number: string;
82
+ apartment: string;
83
+ floor: string;
84
+ street: string;
85
+ building: string;
86
+ city: string;
87
+ state: string;
88
+ country: string;
89
+ postal_code: string;
90
+ }
91
+ interface CreateOrderResult {
92
+ orderId: number;
93
+ token: string;
94
+ }
95
+ interface TransactionData {
96
+ orderId: number;
97
+ amount: number;
98
+ success: boolean;
99
+ currency: string;
100
+ transactionId: number;
101
+ createdAt: string;
102
+ isRefunded: boolean;
103
+ isCaptured: boolean;
104
+ isVoided: boolean;
105
+ metadata: Record<string, any>;
106
+ }
107
+ interface WebhookQueryTransactionData extends TransactionData {
108
+ isAuth: boolean;
109
+ isStandalone: boolean;
110
+ is3dSecure: boolean;
111
+ sourceData: {
112
+ type: string;
113
+ pan: string;
114
+ subType: string;
115
+ };
116
+ responseCode: string;
117
+ message: string;
118
+ }
119
+ interface WebhookQueryWithItemsTransactionData extends WebhookQueryTransactionData {
120
+ items: PaymobOrderItem[];
121
+ }
122
+ interface WebhookResult<T> {
123
+ isValid: boolean;
124
+ transactionData: T | null;
125
+ }
126
+ interface TransactionStatusResult {
127
+ success: boolean;
128
+ status: string;
129
+ amount: number;
130
+ currency: string;
131
+ }
132
+ interface OrderDetailsResult {
133
+ id: number;
134
+ amount_cents: number;
135
+ currency: string;
136
+ items: PaymobOrderItem[];
137
+ created_at: string;
138
+ merchant_order_id: string;
139
+ }
140
+ /**
141
+ * Paymob Service Configuration
142
+ *
143
+ * Required Keys:
144
+ * - apiKey: Your Paymob API Key (used for authentication)
145
+ * - integrationId: Your Paymob Integration ID (found in your Paymob dashboard)
146
+ * - iframeId: Your Paymob Iframe ID (found in your Paymob dashboard)
147
+ *
148
+ * Note:
149
+ * - Public Key: Used for client-side encryption (not needed for this service)
150
+ * - Secret Key: Used for webhook signature verification (handled internally)
151
+ */
152
+ export declare class PaymobService {
153
+ private readonly apiKey;
154
+ private readonly integrationId;
155
+ private readonly iframeId;
156
+ private readonly baseUrl;
157
+ private readonly hmacSecret;
158
+ constructor();
159
+ getAuthToken(): Promise<string>;
160
+ createOrder(amount: number, currency?: string, items?: PaymobOrderItem[], merchant_order_id?: string): Promise<CreateOrderResult>;
161
+ getPaymentKey(orderId: number, token: string, amount: number, billingData: PaymobBillingData): Promise<string>;
162
+ createPaymentUrl(paymentKey: string): string;
163
+ /**
164
+ * Creates a payment URL with user data and custom metadata
165
+ * @param amount The payment amount
166
+ * @param userId The user ID
167
+ * @param contractId The contract ID
168
+ * @param userData The user data for billing
169
+ * @param serviceType The service type identifier
170
+ * @returns The payment URL and related data
171
+ */
172
+ createPaymentUrlWithUserData(amount: number, userId: string, contractId: string, userData: {
173
+ firstName: string;
174
+ lastName: string;
175
+ email: string;
176
+ phone: string;
177
+ }, serviceType: string): Promise<{
178
+ paymentUrl: string;
179
+ }>;
180
+ verifyPayment(hmac: string, data: Record<string, any>): Promise<boolean>;
181
+ /**
182
+ * Verify webhook HMAC signature for query parameters
183
+ * Uses the correct field order as per Paymob documentation
184
+ */
185
+ verifyWebhookHmac(queryParams: Record<string, string>): boolean;
186
+ handleWebhook(webhookData: PaymobWebhookData): Promise<WebhookResult<TransactionData>>;
187
+ /**
188
+ * Handle webhook with query parameters (GET request)
189
+ * This is for webhooks that come as URL query parameters instead of JSON body
190
+ */
191
+ handleWebhookQuery(queryParams: Record<string, string>): WebhookResult<WebhookQueryTransactionData>;
192
+ getTransactionStatus(transactionId: number): Promise<TransactionStatusResult>;
193
+ /**
194
+ * Get order details including metadata
195
+ */
196
+ getOrderDetails(orderId: number): Promise<OrderDetailsResult>;
197
+ /**
198
+ * Handle webhook query and fetch items from order
199
+ */
200
+ handleWebhookQueryWithItems(queryParams: Record<string, string>): Promise<WebhookResult<WebhookQueryWithItemsTransactionData>>;
201
+ }
202
+ export {};