@duvdu-v1/duvdu 1.1.264 → 1.1.266

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 (56) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +1 -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/copyrights-booking.model.d.ts +2 -2
  19. package/build/models/copyrights.model.d.ts +2 -2
  20. package/build/models/coupon.model.d.ts +2 -2
  21. package/build/models/favourites.model.d.ts +2 -2
  22. package/build/models/follow.model.d.ts +2 -2
  23. package/build/models/messages.model.d.ts +2 -2
  24. package/build/models/notification.model.d.ts +2 -2
  25. package/build/models/portfolio-post.model.d.ts +2 -2
  26. package/build/models/producer.model.d.ts +2 -2
  27. package/build/models/producerPlatform.model.d.ts +1 -1
  28. package/build/models/producer_contracts.model.d.ts +2 -2
  29. package/build/models/projectContract.model.d.ts +2 -2
  30. package/build/models/projectViews.model.d.ts +1 -1
  31. package/build/models/ranks.model.d.ts +1 -1
  32. package/build/models/rental-contracts.model.d.ts +2 -2
  33. package/build/models/rental.model.d.ts +2 -2
  34. package/build/models/report.model.d.ts +2 -2
  35. package/build/models/session.model.d.ts +2 -2
  36. package/build/models/settings.model.d.ts +1 -1
  37. package/build/models/studio-booking-book.model.d.ts +2 -2
  38. package/build/models/studio-booking.model.d.ts +3 -3
  39. package/build/models/teamProject.model.d.ts +3 -3
  40. package/build/models/transactions.model.d.ts +2 -2
  41. package/build/models/userSession.model.d.ts +2 -2
  42. package/build/models/withdrawMethods.model.d.ts +2 -2
  43. package/build/models/withdrawMethods.model.js +3 -3
  44. package/build/services/paymob.service.d.ts +203 -0
  45. package/build/services/paymob.service.js +346 -0
  46. package/build/services/rank.service.d.ts +2 -2
  47. package/build/types/Bookmarks.d.ts +1 -1
  48. package/build/types/Plan.d.ts +1 -1
  49. package/build/types/Projects.d.ts +1 -1
  50. package/build/types/Rate.d.ts +1 -1
  51. package/build/types/Ticket.d.ts +1 -1
  52. package/build/types/User.d.ts +1 -1
  53. package/build/types/copyrights-order.d.ts +2 -2
  54. package/build/types/portfolio-post-order.d.ts +2 -2
  55. package/build/utils/api-feature.d.ts +3 -3
  56. package/package.json +2 -1
@@ -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;
@@ -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,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,203 @@
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: 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
+ }
90
+ interface TransactionData {
91
+ orderId: number;
92
+ amount: number;
93
+ success: boolean;
94
+ currency: string;
95
+ transactionId: number;
96
+ createdAt: string;
97
+ isRefunded: boolean;
98
+ isCaptured: boolean;
99
+ isVoided: boolean;
100
+ metadata: Record<string, any>;
101
+ }
102
+ interface WebhookQueryTransactionData extends TransactionData {
103
+ isAuth: boolean;
104
+ isStandalone: boolean;
105
+ is3dSecure: boolean;
106
+ sourceData: {
107
+ type: string;
108
+ pan: string;
109
+ subType: string;
110
+ };
111
+ responseCode: string;
112
+ message: string;
113
+ }
114
+ interface WebhookQueryWithItemsTransactionData extends WebhookQueryTransactionData {
115
+ items: PaymobOrderItem[];
116
+ }
117
+ interface WebhookResult<T> {
118
+ isValid: boolean;
119
+ transactionData: T | null;
120
+ }
121
+ interface TransactionStatusResult {
122
+ success: boolean;
123
+ status: string;
124
+ amount: number;
125
+ currency: string;
126
+ }
127
+ interface OrderDetailsResult {
128
+ id: number;
129
+ amount_cents: number;
130
+ currency: string;
131
+ items: PaymobOrderItem[];
132
+ created_at: string;
133
+ merchant_order_id: string;
134
+ }
135
+ /**
136
+ * Paymob Service Configuration for Flash Integration
137
+ *
138
+ * Required Keys:
139
+ * - secretKey: Your Paymob Secret Key (for API authentication)
140
+ * - publicKey: Your Paymob Public Key (for client-side)
141
+ * - integrationId: Your Paymob Integration ID
142
+ * - hmacSecret: Your Paymob HMAC Secret (for webhook verification)
143
+ */
144
+ export declare class PaymobService {
145
+ private readonly secretKey;
146
+ private readonly publicKey;
147
+ private readonly integrationId;
148
+ private readonly baseUrl;
149
+ private readonly hmacSecret;
150
+ constructor();
151
+ /**
152
+ * Creates a payment intention using the Flash API
153
+ * @param amount The payment amount
154
+ * @param billingData The user data for billing
155
+ * @param items The order items
156
+ * @param currency The currency code (default: EGP)
157
+ * @param extras Custom metadata
158
+ * @returns The payment URL and client secret
159
+ */
160
+ createPaymentIntention(amount: number, billingData: PaymobBillingData, items: PaymobOrderItem[], currency?: string, extras?: Record<string, any>): Promise<{
161
+ paymentUrl: string;
162
+ clientSecret: string;
163
+ }>;
164
+ /**
165
+ * Creates a payment URL with user data and custom metadata
166
+ * @param amount The payment amount
167
+ * @param userId The user ID
168
+ * @param contractId The contract ID
169
+ * @param userData The user data for billing
170
+ * @param serviceType The service type identifier
171
+ * @returns The payment URL and related data
172
+ */
173
+ createPaymentUrlWithUserData(amount: number, userId: string, contractId: string, userData: {
174
+ firstName: string;
175
+ lastName: string;
176
+ email: string;
177
+ phone: string;
178
+ }, serviceType: string): Promise<{
179
+ paymentUrl: string;
180
+ }>;
181
+ verifyPayment(hmac: string, data: Record<string, any>): Promise<boolean>;
182
+ /**
183
+ * Verify webhook HMAC signature for query parameters
184
+ * Uses the correct field order as per Paymob documentation
185
+ */
186
+ verifyWebhookHmac(queryParams: Record<string, string>): boolean;
187
+ handleWebhook(webhookData: PaymobWebhookData): Promise<WebhookResult<TransactionData>>;
188
+ /**
189
+ * Handle webhook with query parameters (GET request)
190
+ * This is for webhooks that come as URL query parameters instead of JSON body
191
+ */
192
+ handleWebhookQuery(queryParams: Record<string, string>): WebhookResult<WebhookQueryTransactionData>;
193
+ getTransactionStatus(transactionId: number): Promise<TransactionStatusResult>;
194
+ /**
195
+ * Get order details including metadata
196
+ */
197
+ getOrderDetails(orderId: number): Promise<OrderDetailsResult>;
198
+ /**
199
+ * Handle webhook query and fetch items from order
200
+ */
201
+ handleWebhookQueryWithItems(queryParams: Record<string, string>): Promise<WebhookResult<WebhookQueryWithItemsTransactionData>>;
202
+ }
203
+ export {};