@managesome/knotr-toolkit 0.1.1
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/constants/index.d.ts +103 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +92 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/marketplace.d.ts +130 -0
- package/dist/constants/marketplace.d.ts.map +1 -0
- package/dist/constants/marketplace.js +195 -0
- package/dist/constants/marketplace.js.map +1 -0
- package/dist/i18n/ar.json +368 -0
- package/dist/i18n/en.json +369 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +22 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/ur.json +368 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types/account.d.ts +55 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/account.js +3 -0
- package/dist/types/account.js.map +1 -0
- package/dist/types/admin.d.ts +70 -0
- package/dist/types/admin.d.ts.map +1 -0
- package/dist/types/admin.js +117 -0
- package/dist/types/admin.js.map +1 -0
- package/dist/types/api.d.ts +210 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +5 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/chat.d.ts +92 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.js +8 -0
- package/dist/types/chat.js.map +1 -0
- package/dist/types/common.d.ts +50 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +3 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/company.d.ts +110 -0
- package/dist/types/company.d.ts.map +1 -0
- package/dist/types/company.js +3 -0
- package/dist/types/company.js.map +1 -0
- package/dist/types/flag.d.ts +67 -0
- package/dist/types/flag.d.ts.map +1 -0
- package/dist/types/flag.js +3 -0
- package/dist/types/flag.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/marketplace.d.ts +583 -0
- package/dist/types/marketplace.d.ts.map +1 -0
- package/dist/types/marketplace.js +3 -0
- package/dist/types/marketplace.js.map +1 -0
- package/dist/types/match.d.ts +71 -0
- package/dist/types/match.d.ts.map +1 -0
- package/dist/types/match.js +8 -0
- package/dist/types/match.js.map +1 -0
- package/dist/types/payment.d.ts +176 -0
- package/dist/types/payment.d.ts.map +1 -0
- package/dist/types/payment.js +112 -0
- package/dist/types/payment.js.map +1 -0
- package/dist/types/policy.d.ts +347 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +52 -0
- package/dist/types/policy.js.map +1 -0
- package/dist/types/profile.d.ts +196 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +3 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/types/verification.d.ts +57 -0
- package/dist/types/verification.d.ts.map +1 -0
- package/dist/types/verification.js +3 -0
- package/dist/types/verification.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export * from './marketplace';
|
|
2
|
+
export declare const APP_NAME = "QalbMatch";
|
|
3
|
+
export declare const APP_TAGLINE = "Halal Connections, Blessed Unions";
|
|
4
|
+
export declare const MAX_FREE_PROFILES = 3;
|
|
5
|
+
export declare const MAX_FLAGS_BEFORE_BLOCK = 3;
|
|
6
|
+
export declare const ACTIVE_HOURS_START = 9;
|
|
7
|
+
export declare const ACTIVE_HOURS_END = 24;
|
|
8
|
+
export declare const MAX_RESPONSE_HOURS = 18;
|
|
9
|
+
export declare const GRACE_HOURS_NEXT_DAY = 12;
|
|
10
|
+
export declare const MIN_AGE = 18;
|
|
11
|
+
export declare const MAX_AGE = 70;
|
|
12
|
+
export declare const MIN_HEIGHT_CM = 120;
|
|
13
|
+
export declare const MAX_HEIGHT_CM = 220;
|
|
14
|
+
export declare const MIN_WEIGHT_KG = 30;
|
|
15
|
+
export declare const MAX_WEIGHT_KG = 200;
|
|
16
|
+
export declare const MAX_PHOTOS_PER_PROFILE = 6;
|
|
17
|
+
export declare const MAX_PHOTO_SIZE_MB = 5;
|
|
18
|
+
export declare const ALLOWED_IMAGE_TYPES: string[];
|
|
19
|
+
export declare const THUMBNAIL_SIZE = 200;
|
|
20
|
+
export declare const MIN_ABOUT_LENGTH = 50;
|
|
21
|
+
export declare const MAX_ABOUT_LENGTH = 2000;
|
|
22
|
+
export declare const MIN_EXPECTATIONS_LENGTH = 30;
|
|
23
|
+
export declare const MAX_EXPECTATIONS_LENGTH = 1000;
|
|
24
|
+
export declare const MAX_MESSAGE_LENGTH = 2000;
|
|
25
|
+
export declare const CHAT_PAGE_SIZE = 50;
|
|
26
|
+
export declare const DEFAULT_PAGE_SIZE = 20;
|
|
27
|
+
export declare const MAX_PAGE_SIZE = 100;
|
|
28
|
+
export declare const TRIAL_DAYS = 30;
|
|
29
|
+
export declare const DEFAULT_MALE_TO_FEMALE_RATIO = 2;
|
|
30
|
+
export declare const HOLD_THRESHOLD_RATIO = 1.5;
|
|
31
|
+
export declare const AGE_PRIORITY_RANGES: {
|
|
32
|
+
min: number;
|
|
33
|
+
max: number;
|
|
34
|
+
priority: number;
|
|
35
|
+
}[];
|
|
36
|
+
export declare const VERIFICATION_EXPIRY_DAYS = 365;
|
|
37
|
+
export declare const MIN_FACE_MATCH_SCORE = 70;
|
|
38
|
+
export declare const MIN_NAME_MATCH_SCORE = 80;
|
|
39
|
+
export declare const TRUST_LEVEL_THRESHOLDS: {
|
|
40
|
+
verified: {
|
|
41
|
+
minMatches: number;
|
|
42
|
+
minRating: number;
|
|
43
|
+
};
|
|
44
|
+
trusted: {
|
|
45
|
+
minMatches: number;
|
|
46
|
+
minRating: number;
|
|
47
|
+
};
|
|
48
|
+
premium: {
|
|
49
|
+
minMatches: number;
|
|
50
|
+
minRating: number;
|
|
51
|
+
};
|
|
52
|
+
elite: {
|
|
53
|
+
minMatches: number;
|
|
54
|
+
minRating: number;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
export declare const RATE_LIMITS: {
|
|
58
|
+
auth: {
|
|
59
|
+
windowMs: number;
|
|
60
|
+
max: number;
|
|
61
|
+
};
|
|
62
|
+
search: {
|
|
63
|
+
windowMs: number;
|
|
64
|
+
max: number;
|
|
65
|
+
};
|
|
66
|
+
interest: {
|
|
67
|
+
windowMs: number;
|
|
68
|
+
max: number;
|
|
69
|
+
};
|
|
70
|
+
message: {
|
|
71
|
+
windowMs: number;
|
|
72
|
+
max: number;
|
|
73
|
+
};
|
|
74
|
+
upload: {
|
|
75
|
+
windowMs: number;
|
|
76
|
+
max: number;
|
|
77
|
+
};
|
|
78
|
+
general: {
|
|
79
|
+
windowMs: number;
|
|
80
|
+
max: number;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
export declare const CACHE_TTL: {
|
|
84
|
+
profile: number;
|
|
85
|
+
profileList: number;
|
|
86
|
+
account: number;
|
|
87
|
+
company: number;
|
|
88
|
+
stats: number;
|
|
89
|
+
session: number;
|
|
90
|
+
};
|
|
91
|
+
export declare const FIREBASE_COLLECTIONS: {
|
|
92
|
+
users: string;
|
|
93
|
+
profiles: string;
|
|
94
|
+
chats: string;
|
|
95
|
+
messages: string;
|
|
96
|
+
};
|
|
97
|
+
export declare const STORAGE_PATHS: {
|
|
98
|
+
profilePhotos: string;
|
|
99
|
+
verificationDocs: string;
|
|
100
|
+
companyDocs: string;
|
|
101
|
+
chatImages: string;
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAE9B,eAAO,MAAM,QAAQ,cAAc,CAAC;AACpC,eAAO,MAAM,WAAW,sCAAsC,CAAC;AAG/D,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAGxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,aAAa,MAAM,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,UAA4C,CAAC;AAC7E,eAAO,MAAM,cAAc,MAAM,CAAC;AAGlC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAG5C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,UAAU,KAAK,CAAC;AAG7B,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAGxC,eAAO,MAAM,mBAAmB;;;;GAM/B,CAAC;AAGF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CAKlC,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CAOvB,CAAC;AAGF,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// Shared constants
|
|
2
|
+
export * from './marketplace';
|
|
3
|
+
export const APP_NAME = 'QalbMatch';
|
|
4
|
+
export const APP_TAGLINE = 'Halal Connections, Blessed Unions';
|
|
5
|
+
// Account limits
|
|
6
|
+
export const MAX_FREE_PROFILES = 3;
|
|
7
|
+
export const MAX_FLAGS_BEFORE_BLOCK = 3;
|
|
8
|
+
// Response windows
|
|
9
|
+
export const ACTIVE_HOURS_START = 9; // 9 AM
|
|
10
|
+
export const ACTIVE_HOURS_END = 24; // 12 AM (midnight)
|
|
11
|
+
export const MAX_RESPONSE_HOURS = 18;
|
|
12
|
+
export const GRACE_HOURS_NEXT_DAY = 12;
|
|
13
|
+
// Profile constraints
|
|
14
|
+
export const MIN_AGE = 18;
|
|
15
|
+
export const MAX_AGE = 70;
|
|
16
|
+
export const MIN_HEIGHT_CM = 120;
|
|
17
|
+
export const MAX_HEIGHT_CM = 220;
|
|
18
|
+
export const MIN_WEIGHT_KG = 30;
|
|
19
|
+
export const MAX_WEIGHT_KG = 200;
|
|
20
|
+
// Photos
|
|
21
|
+
export const MAX_PHOTOS_PER_PROFILE = 6;
|
|
22
|
+
export const MAX_PHOTO_SIZE_MB = 5;
|
|
23
|
+
export const ALLOWED_IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/webp'];
|
|
24
|
+
export const THUMBNAIL_SIZE = 200;
|
|
25
|
+
// Bio/description limits
|
|
26
|
+
export const MIN_ABOUT_LENGTH = 50;
|
|
27
|
+
export const MAX_ABOUT_LENGTH = 2000;
|
|
28
|
+
export const MIN_EXPECTATIONS_LENGTH = 30;
|
|
29
|
+
export const MAX_EXPECTATIONS_LENGTH = 1000;
|
|
30
|
+
// Chat
|
|
31
|
+
export const MAX_MESSAGE_LENGTH = 2000;
|
|
32
|
+
export const CHAT_PAGE_SIZE = 50;
|
|
33
|
+
// Pagination
|
|
34
|
+
export const DEFAULT_PAGE_SIZE = 20;
|
|
35
|
+
export const MAX_PAGE_SIZE = 100;
|
|
36
|
+
// Trial
|
|
37
|
+
export const TRIAL_DAYS = 30;
|
|
38
|
+
// Gender balance thresholds (configurable later)
|
|
39
|
+
export const DEFAULT_MALE_TO_FEMALE_RATIO = 2; // 2 females per male
|
|
40
|
+
export const HOLD_THRESHOLD_RATIO = 1.5; // Start holding males when ratio drops below this
|
|
41
|
+
// Age priority ranges for queue processing
|
|
42
|
+
export const AGE_PRIORITY_RANGES = [
|
|
43
|
+
{ min: 18, max: 25, priority: 1 }, // Highest priority
|
|
44
|
+
{ min: 26, max: 30, priority: 2 },
|
|
45
|
+
{ min: 31, max: 35, priority: 3 },
|
|
46
|
+
{ min: 36, max: 40, priority: 4 },
|
|
47
|
+
{ min: 41, max: 100, priority: 5 }, // Lowest priority
|
|
48
|
+
];
|
|
49
|
+
// Verification
|
|
50
|
+
export const VERIFICATION_EXPIRY_DAYS = 365;
|
|
51
|
+
export const MIN_FACE_MATCH_SCORE = 70;
|
|
52
|
+
export const MIN_NAME_MATCH_SCORE = 80;
|
|
53
|
+
// Company trust levels
|
|
54
|
+
export const TRUST_LEVEL_THRESHOLDS = {
|
|
55
|
+
verified: { minMatches: 5, minRating: 3.5 },
|
|
56
|
+
trusted: { minMatches: 20, minRating: 4.0 },
|
|
57
|
+
premium: { minMatches: 50, minRating: 4.3 },
|
|
58
|
+
elite: { minMatches: 100, minRating: 4.5 },
|
|
59
|
+
};
|
|
60
|
+
// API rate limits
|
|
61
|
+
export const RATE_LIMITS = {
|
|
62
|
+
auth: { windowMs: 15 * 60 * 1000, max: 10 }, // 10 per 15 min
|
|
63
|
+
search: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
|
|
64
|
+
interest: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
|
|
65
|
+
message: { windowMs: 60 * 1000, max: 60 }, // 60 per minute
|
|
66
|
+
upload: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
|
|
67
|
+
general: { windowMs: 60 * 1000, max: 100 }, // 100 per minute
|
|
68
|
+
};
|
|
69
|
+
// Cache TTLs (seconds)
|
|
70
|
+
export const CACHE_TTL = {
|
|
71
|
+
profile: 300, // 5 minutes
|
|
72
|
+
profileList: 60, // 1 minute
|
|
73
|
+
account: 600, // 10 minutes
|
|
74
|
+
company: 600, // 10 minutes
|
|
75
|
+
stats: 300, // 5 minutes
|
|
76
|
+
session: 86400, // 24 hours
|
|
77
|
+
};
|
|
78
|
+
// Firebase collections (for reference)
|
|
79
|
+
export const FIREBASE_COLLECTIONS = {
|
|
80
|
+
users: 'users',
|
|
81
|
+
profiles: 'profiles',
|
|
82
|
+
chats: 'chats',
|
|
83
|
+
messages: 'messages',
|
|
84
|
+
};
|
|
85
|
+
// Storage paths
|
|
86
|
+
export const STORAGE_PATHS = {
|
|
87
|
+
profilePhotos: 'profiles/{profileId}/photos',
|
|
88
|
+
verificationDocs: 'verifications/{verificationId}',
|
|
89
|
+
companyDocs: 'companies/{companyId}/documents',
|
|
90
|
+
chatImages: 'chats/{chatId}/images',
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
export declare const PLATFORM_FEE_PERCENTAGE = 5;
|
|
2
|
+
export declare const TMC_MAX_PROFIT_SHARE_PERCENTAGE = 5;
|
|
3
|
+
export declare const TMC_DEFAULT_PROFIT_SHARE_PERCENTAGE = 3;
|
|
4
|
+
export declare const MIN_PROFIT_SHARE_AMOUNT = 1;
|
|
5
|
+
export declare const DISCUSSION_PHASE_DAYS = 3;
|
|
6
|
+
export declare const DISCUSSION_PHASE_HOURS: number;
|
|
7
|
+
export declare const MEDIATION_PHASE_DAYS = 4;
|
|
8
|
+
export declare const MEDIATION_PHASE_HOURS: number;
|
|
9
|
+
export declare const EVIDENCE_SUBMISSION_DEADLINE_HOURS = 72;
|
|
10
|
+
export declare const ADMIN_REVIEW_TARGET_HOURS = 48;
|
|
11
|
+
export declare const MAX_DISPUTE_DURATION_DAYS: number;
|
|
12
|
+
export declare const TMC_AUTO_APPROVAL_CRITERIA: {
|
|
13
|
+
minYearsInBusiness: number;
|
|
14
|
+
minSuccessfulMatches: number;
|
|
15
|
+
minTrustLevel: "elite";
|
|
16
|
+
minRating: number;
|
|
17
|
+
minActiveContracts: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const TMC_TIER_LIMITS: {
|
|
20
|
+
standard: {
|
|
21
|
+
maxManagedCompanies: number;
|
|
22
|
+
profitShareCap: number;
|
|
23
|
+
featuredListings: boolean;
|
|
24
|
+
prioritySupport: boolean;
|
|
25
|
+
};
|
|
26
|
+
gold: {
|
|
27
|
+
maxManagedCompanies: number;
|
|
28
|
+
profitShareCap: number;
|
|
29
|
+
featuredListings: boolean;
|
|
30
|
+
prioritySupport: boolean;
|
|
31
|
+
};
|
|
32
|
+
platinum: {
|
|
33
|
+
maxManagedCompanies: number;
|
|
34
|
+
profitShareCap: number;
|
|
35
|
+
featuredListings: boolean;
|
|
36
|
+
prioritySupport: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export declare const MAX_PENDING_PROPOSALS_PER_COMPANY = 20;
|
|
40
|
+
export declare const MAX_ACTIVE_PROPOSALS_PER_COMPANY = 20;
|
|
41
|
+
export declare const MAX_PROPOSALS_PER_REQUIREMENT = 50;
|
|
42
|
+
export declare const PROPOSAL_EXPIRY_DAYS = 14;
|
|
43
|
+
export declare const PROPOSAL_VALIDITY_DAYS = 14;
|
|
44
|
+
export declare const MAX_SHORTLISTED_PROPOSALS = 5;
|
|
45
|
+
export declare const MAX_ACTIVE_CONTRACTS_PER_FAMILY = 3;
|
|
46
|
+
export declare const MAX_ACTIVE_CONTRACTS_BY_TRUST_LEVEL: {
|
|
47
|
+
new: number;
|
|
48
|
+
verified: number;
|
|
49
|
+
trusted: number;
|
|
50
|
+
premium: number;
|
|
51
|
+
elite: number;
|
|
52
|
+
};
|
|
53
|
+
export declare const CONTRACT_FUNDING_DEADLINE_HOURS = 72;
|
|
54
|
+
export declare const MIN_CONTRACT_DURATION_DAYS = 7;
|
|
55
|
+
export declare const MAX_CONTRACT_DURATION_DAYS = 365;
|
|
56
|
+
export declare const MIN_MILESTONES_PER_CONTRACT = 1;
|
|
57
|
+
export declare const MAX_MILESTONES_PER_CONTRACT = 10;
|
|
58
|
+
export declare const MILESTONE_APPROVAL_DEADLINE_HOURS = 72;
|
|
59
|
+
export declare const MILESTONE_AUTO_APPROVE_HOURS = 168;
|
|
60
|
+
export declare const MAX_PACKAGES_PER_LISTING = 5;
|
|
61
|
+
export declare const MAX_ACTIVE_LISTINGS_PER_COMPANY = 10;
|
|
62
|
+
export declare const FEATURED_LISTING_DURATION_DAYS = 30;
|
|
63
|
+
export declare const MAX_ACTIVE_REQUIREMENTS_PER_FAMILY = 3;
|
|
64
|
+
export declare const REQUIREMENT_EXPIRY_DAYS = 60;
|
|
65
|
+
export declare const REQUIREMENT_VISIBILITY_DAYS = 30;
|
|
66
|
+
export declare const MAX_INVITED_COMPANIES_PER_REQUIREMENT = 10;
|
|
67
|
+
export declare const BADGE_EXPIRY_DAYS: {
|
|
68
|
+
verified: number;
|
|
69
|
+
endorsed: number;
|
|
70
|
+
premium_partner: number;
|
|
71
|
+
top_performer: number;
|
|
72
|
+
founding_partner: number;
|
|
73
|
+
};
|
|
74
|
+
export declare const MAX_DISPLAYED_BADGES = 5;
|
|
75
|
+
export declare const DEFAULT_COLLABORATION_REVENUE_SHARE = 50;
|
|
76
|
+
export declare const MAX_PENDING_COLLABORATION_REQUESTS = 10;
|
|
77
|
+
export declare const COLLABORATION_REQUEST_EXPIRY_DAYS = 7;
|
|
78
|
+
export declare const REVIEW_SUBMISSION_WINDOW_DAYS = 30;
|
|
79
|
+
export declare const MIN_RATING = 1;
|
|
80
|
+
export declare const MAX_RATING = 5;
|
|
81
|
+
export declare const MIN_REVIEW_CONTENT_LENGTH = 50;
|
|
82
|
+
export declare const MAX_REVIEW_CONTENT_LENGTH = 2000;
|
|
83
|
+
export declare const MIN_ESCROW_AMOUNT = 10;
|
|
84
|
+
export declare const MAX_ESCROW_AMOUNT = 50000;
|
|
85
|
+
export declare const ESCROW_RELEASE_HOLD_HOURS = 24;
|
|
86
|
+
export declare const REFUND_PROCESSING_DAYS = 5;
|
|
87
|
+
export declare const MIN_PAYOUT_AMOUNT = 25;
|
|
88
|
+
export declare const PAYOUT_SCHEDULES: {
|
|
89
|
+
instant: {
|
|
90
|
+
minAmount: number;
|
|
91
|
+
fee: number;
|
|
92
|
+
};
|
|
93
|
+
daily: {
|
|
94
|
+
minAmount: number;
|
|
95
|
+
fee: number;
|
|
96
|
+
};
|
|
97
|
+
weekly: {
|
|
98
|
+
minAmount: number;
|
|
99
|
+
fee: number;
|
|
100
|
+
};
|
|
101
|
+
monthly: {
|
|
102
|
+
minAmount: number;
|
|
103
|
+
fee: number;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
export declare const DEFAULT_CURRENCY = "USD";
|
|
107
|
+
export declare const SUPPORTED_CURRENCIES: string[];
|
|
108
|
+
export declare const MARKETPLACE_RATE_LIMITS: {
|
|
109
|
+
createListing: {
|
|
110
|
+
windowMs: number;
|
|
111
|
+
max: number;
|
|
112
|
+
};
|
|
113
|
+
createRequirement: {
|
|
114
|
+
windowMs: number;
|
|
115
|
+
max: number;
|
|
116
|
+
};
|
|
117
|
+
submitProposal: {
|
|
118
|
+
windowMs: number;
|
|
119
|
+
max: number;
|
|
120
|
+
};
|
|
121
|
+
searchListings: {
|
|
122
|
+
windowMs: number;
|
|
123
|
+
max: number;
|
|
124
|
+
};
|
|
125
|
+
searchRequirements: {
|
|
126
|
+
windowMs: number;
|
|
127
|
+
max: number;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/constants/marketplace.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAGzC,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAGrD,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAOzC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,sBAAsB,QAA6B,CAAC;AAGjE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAA4B,CAAC;AAG/D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAGrD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,yBAAyB,QAAmD,CAAC;AAM1F,eAAO,MAAM,0BAA0B;;;;;;CAMtC,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAOF,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAEpD,eAAO,MAAM,gCAAgC,KAAoC,CAAC;AAGlF,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,sBAAsB,KAAuB,CAAC;AAG3D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAO3C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAGjD,eAAO,MAAM,mCAAmC;;;;;;CAM/C,CAAC;AAGF,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAGlD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAO9C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAG7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,iCAAiC,KAAK,CAAC;AAGpD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAOhD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAG1C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAGlD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAOjD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAG9C,eAAO,MAAM,qCAAqC,KAAK,CAAC;AAOxD,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAGF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAOtC,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAGtD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAGrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAGhD,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,UAAU,IAAI,CAAC;AAG5B,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAO9C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAOxC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAGpC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAK5B,CAAC;AAMF,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,oBAAoB,UAAkE,CAAC;AAMpG,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAC"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
// Marketplace Constants
|
|
2
|
+
// ============================================
|
|
3
|
+
// Platform Fees
|
|
4
|
+
// ============================================
|
|
5
|
+
// QalbMatch takes 5% from each contract payment
|
|
6
|
+
export const PLATFORM_FEE_PERCENTAGE = 5;
|
|
7
|
+
// TMCs can take up to 5% from their managed companies
|
|
8
|
+
export const TMC_MAX_PROFIT_SHARE_PERCENTAGE = 5;
|
|
9
|
+
// Default TMC profit share for new memberships
|
|
10
|
+
export const TMC_DEFAULT_PROFIT_SHARE_PERCENTAGE = 3;
|
|
11
|
+
// Minimum transaction amount for profit sharing (USD)
|
|
12
|
+
export const MIN_PROFIT_SHARE_AMOUNT = 1;
|
|
13
|
+
// ============================================
|
|
14
|
+
// Dispute Auto-Escalation Timers
|
|
15
|
+
// ============================================
|
|
16
|
+
// Discussion phase: 3 days for parties to resolve
|
|
17
|
+
export const DISCUSSION_PHASE_DAYS = 3;
|
|
18
|
+
export const DISCUSSION_PHASE_HOURS = DISCUSSION_PHASE_DAYS * 24;
|
|
19
|
+
// Mediation phase: 4 days for evidence submission
|
|
20
|
+
export const MEDIATION_PHASE_DAYS = 4;
|
|
21
|
+
export const MEDIATION_PHASE_HOURS = MEDIATION_PHASE_DAYS * 24;
|
|
22
|
+
// Evidence submission deadline during mediation
|
|
23
|
+
export const EVIDENCE_SUBMISSION_DEADLINE_HOURS = 72; // 3 days into mediation
|
|
24
|
+
// Admin review target SLA
|
|
25
|
+
export const ADMIN_REVIEW_TARGET_HOURS = 48;
|
|
26
|
+
// Total max dispute duration
|
|
27
|
+
export const MAX_DISPUTE_DURATION_DAYS = DISCUSSION_PHASE_DAYS + MEDIATION_PHASE_DAYS + 7; // +7 for admin review
|
|
28
|
+
// ============================================
|
|
29
|
+
// TMC Criteria (for automatic approval)
|
|
30
|
+
// ============================================
|
|
31
|
+
export const TMC_AUTO_APPROVAL_CRITERIA = {
|
|
32
|
+
minYearsInBusiness: 2,
|
|
33
|
+
minSuccessfulMatches: 50,
|
|
34
|
+
minTrustLevel: 'elite',
|
|
35
|
+
minRating: 4.5,
|
|
36
|
+
minActiveContracts: 10,
|
|
37
|
+
};
|
|
38
|
+
// TMC Tier Limits
|
|
39
|
+
export const TMC_TIER_LIMITS = {
|
|
40
|
+
standard: {
|
|
41
|
+
maxManagedCompanies: 10,
|
|
42
|
+
profitShareCap: 3, // Max 3%
|
|
43
|
+
featuredListings: false,
|
|
44
|
+
prioritySupport: false,
|
|
45
|
+
},
|
|
46
|
+
gold: {
|
|
47
|
+
maxManagedCompanies: 25,
|
|
48
|
+
profitShareCap: 4, // Max 4%
|
|
49
|
+
featuredListings: true,
|
|
50
|
+
prioritySupport: true,
|
|
51
|
+
},
|
|
52
|
+
platinum: {
|
|
53
|
+
maxManagedCompanies: 100,
|
|
54
|
+
profitShareCap: 5, // Max 5%
|
|
55
|
+
featuredListings: true,
|
|
56
|
+
prioritySupport: true,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
// ============================================
|
|
60
|
+
// Proposal Limits
|
|
61
|
+
// ============================================
|
|
62
|
+
// Max proposals a company can have pending at once
|
|
63
|
+
export const MAX_PENDING_PROPOSALS_PER_COMPANY = 20;
|
|
64
|
+
// Alias for backward compatibility
|
|
65
|
+
export const MAX_ACTIVE_PROPOSALS_PER_COMPANY = MAX_PENDING_PROPOSALS_PER_COMPANY;
|
|
66
|
+
// Max proposals per requirement
|
|
67
|
+
export const MAX_PROPOSALS_PER_REQUIREMENT = 50;
|
|
68
|
+
// Proposal expiry (days)
|
|
69
|
+
export const PROPOSAL_EXPIRY_DAYS = 14;
|
|
70
|
+
// Alias for backward compatibility
|
|
71
|
+
export const PROPOSAL_VALIDITY_DAYS = PROPOSAL_EXPIRY_DAYS;
|
|
72
|
+
// Shortlist limit for families
|
|
73
|
+
export const MAX_SHORTLISTED_PROPOSALS = 5;
|
|
74
|
+
// ============================================
|
|
75
|
+
// Contract Limits
|
|
76
|
+
// ============================================
|
|
77
|
+
// Max active contracts per family
|
|
78
|
+
export const MAX_ACTIVE_CONTRACTS_PER_FAMILY = 3;
|
|
79
|
+
// Max active contracts per company (based on tier)
|
|
80
|
+
export const MAX_ACTIVE_CONTRACTS_BY_TRUST_LEVEL = {
|
|
81
|
+
new: 5,
|
|
82
|
+
verified: 15,
|
|
83
|
+
trusted: 30,
|
|
84
|
+
premium: 50,
|
|
85
|
+
elite: 100,
|
|
86
|
+
};
|
|
87
|
+
// Contract auto-cancellation if not funded (hours)
|
|
88
|
+
export const CONTRACT_FUNDING_DEADLINE_HOURS = 72;
|
|
89
|
+
// Minimum contract duration (days)
|
|
90
|
+
export const MIN_CONTRACT_DURATION_DAYS = 7;
|
|
91
|
+
// Maximum contract duration (days)
|
|
92
|
+
export const MAX_CONTRACT_DURATION_DAYS = 365;
|
|
93
|
+
// ============================================
|
|
94
|
+
// Milestone Settings
|
|
95
|
+
// ============================================
|
|
96
|
+
// Minimum milestones per contract
|
|
97
|
+
export const MIN_MILESTONES_PER_CONTRACT = 1;
|
|
98
|
+
// Maximum milestones per contract
|
|
99
|
+
export const MAX_MILESTONES_PER_CONTRACT = 10;
|
|
100
|
+
// Milestone approval deadline (hours)
|
|
101
|
+
export const MILESTONE_APPROVAL_DEADLINE_HOURS = 72;
|
|
102
|
+
// Auto-approve milestone if no response (hours)
|
|
103
|
+
export const MILESTONE_AUTO_APPROVE_HOURS = 168; // 7 days
|
|
104
|
+
// ============================================
|
|
105
|
+
// Service Listing Settings
|
|
106
|
+
// ============================================
|
|
107
|
+
// Max packages per listing
|
|
108
|
+
export const MAX_PACKAGES_PER_LISTING = 5;
|
|
109
|
+
// Max active listings per company
|
|
110
|
+
export const MAX_ACTIVE_LISTINGS_PER_COMPANY = 10;
|
|
111
|
+
// Featured listing duration (days)
|
|
112
|
+
export const FEATURED_LISTING_DURATION_DAYS = 30;
|
|
113
|
+
// ============================================
|
|
114
|
+
// Requirement Post Settings
|
|
115
|
+
// ============================================
|
|
116
|
+
// Max active requirements per family
|
|
117
|
+
export const MAX_ACTIVE_REQUIREMENTS_PER_FAMILY = 3;
|
|
118
|
+
// Requirement expiry if no activity (days)
|
|
119
|
+
export const REQUIREMENT_EXPIRY_DAYS = 60;
|
|
120
|
+
// Alias - visibility period before auto-hide
|
|
121
|
+
export const REQUIREMENT_VISIBILITY_DAYS = 30;
|
|
122
|
+
// Max invited companies for private requirements
|
|
123
|
+
export const MAX_INVITED_COMPANIES_PER_REQUIREMENT = 10;
|
|
124
|
+
// ============================================
|
|
125
|
+
// Trust Badge Settings
|
|
126
|
+
// ============================================
|
|
127
|
+
// Badge expiry (days) - 0 means never expires
|
|
128
|
+
export const BADGE_EXPIRY_DAYS = {
|
|
129
|
+
verified: 365,
|
|
130
|
+
endorsed: 180,
|
|
131
|
+
premium_partner: 365,
|
|
132
|
+
top_performer: 90,
|
|
133
|
+
founding_partner: 0, // Never expires
|
|
134
|
+
};
|
|
135
|
+
// Max badges displayed on profile
|
|
136
|
+
export const MAX_DISPLAYED_BADGES = 5;
|
|
137
|
+
// ============================================
|
|
138
|
+
// Collaboration Settings
|
|
139
|
+
// ============================================
|
|
140
|
+
// Default revenue share for collaborations
|
|
141
|
+
export const DEFAULT_COLLABORATION_REVENUE_SHARE = 50;
|
|
142
|
+
// Max pending collaboration requests
|
|
143
|
+
export const MAX_PENDING_COLLABORATION_REQUESTS = 10;
|
|
144
|
+
// Collaboration request expiry (days)
|
|
145
|
+
export const COLLABORATION_REQUEST_EXPIRY_DAYS = 7;
|
|
146
|
+
// ============================================
|
|
147
|
+
// Review Settings
|
|
148
|
+
// ============================================
|
|
149
|
+
// Review submission window after contract completion (days)
|
|
150
|
+
export const REVIEW_SUBMISSION_WINDOW_DAYS = 30;
|
|
151
|
+
// Min rating (1-5)
|
|
152
|
+
export const MIN_RATING = 1;
|
|
153
|
+
export const MAX_RATING = 5;
|
|
154
|
+
// Min review content length
|
|
155
|
+
export const MIN_REVIEW_CONTENT_LENGTH = 50;
|
|
156
|
+
export const MAX_REVIEW_CONTENT_LENGTH = 2000;
|
|
157
|
+
// ============================================
|
|
158
|
+
// Escrow Settings
|
|
159
|
+
// ============================================
|
|
160
|
+
// Minimum escrow funding amount (USD)
|
|
161
|
+
export const MIN_ESCROW_AMOUNT = 10;
|
|
162
|
+
// Maximum escrow amount (USD)
|
|
163
|
+
export const MAX_ESCROW_AMOUNT = 50000;
|
|
164
|
+
// Escrow release hold period after milestone approval (hours)
|
|
165
|
+
export const ESCROW_RELEASE_HOLD_HOURS = 24;
|
|
166
|
+
// Refund processing time (business days)
|
|
167
|
+
export const REFUND_PROCESSING_DAYS = 5;
|
|
168
|
+
// ============================================
|
|
169
|
+
// Payout Settings
|
|
170
|
+
// ============================================
|
|
171
|
+
// Minimum payout amount (USD)
|
|
172
|
+
export const MIN_PAYOUT_AMOUNT = 25;
|
|
173
|
+
// Payout schedules
|
|
174
|
+
export const PAYOUT_SCHEDULES = {
|
|
175
|
+
instant: { minAmount: 100, fee: 1.5 }, // 1.5% for instant
|
|
176
|
+
daily: { minAmount: 50, fee: 0 },
|
|
177
|
+
weekly: { minAmount: 25, fee: 0 },
|
|
178
|
+
monthly: { minAmount: 25, fee: 0 },
|
|
179
|
+
};
|
|
180
|
+
// ============================================
|
|
181
|
+
// Currency Settings
|
|
182
|
+
// ============================================
|
|
183
|
+
export const DEFAULT_CURRENCY = 'USD';
|
|
184
|
+
export const SUPPORTED_CURRENCIES = ['USD', 'EUR', 'GBP', 'AED', 'SAR', 'PKR', 'INR', 'CAD', 'AUD'];
|
|
185
|
+
// ============================================
|
|
186
|
+
// Rate Limits (per minute unless specified)
|
|
187
|
+
// ============================================
|
|
188
|
+
export const MARKETPLACE_RATE_LIMITS = {
|
|
189
|
+
createListing: { windowMs: 60 * 60 * 1000, max: 5 }, // 5 per hour
|
|
190
|
+
createRequirement: { windowMs: 60 * 60 * 1000, max: 10 }, // 10 per hour
|
|
191
|
+
submitProposal: { windowMs: 60 * 60 * 1000, max: 20 }, // 20 per hour
|
|
192
|
+
searchListings: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
|
|
193
|
+
searchRequirements: { windowMs: 60 * 1000, max: 30 }, // 30 per minute
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/constants/marketplace.ts"],"names":[],"mappings":"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"}
|